Chinaunix首页 | 论坛 | 博客
  • 博客访问: 542021
  • 博文数量: 102
  • 博客积分: 2146
  • 博客等级: 大尉
  • 技术积分: 1146
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-09 17:32
文章分类

全部博文(102)

文章存档

2015年(14)

2014年(24)

2013年(5)

2012年(30)

2011年(16)

2010年(13)

分类: 嵌入式

2011-03-03 16:52:46

1. 编译器 as31 + 模拟器 emu8051 + 反编译 dis51 + 程序写入 cycfx2prog

这些工具都是来自不同“牛人”的手中,当然,全都是外国人干的。这样的软件组合,自感有点山寨,不过,如果再有“牛人”把这个东西做成IDE,卡卡,那可特别壮观了。

安装非常简单(多亏debian & Ubuntu 强劲仓库):
$ sudo apt-get install as31 emu8051 dis51 cycfx2prog

呵呵,记得毛先生曾经教育我们“喝水不忘挖井人”,我们看看这些工具的开发者:

a.编译器 as31:Paul Stoffrege大师的设计,;
b.模拟器 emu8051:一名美国大学教授写的,;
c.反编译 dis51:一个单片机爱好者,;
大家慢慢参看了……(可能要翻墙)

 

2.还有一种方法,就是使用SDCC,之前也提到的:

$ sudo apt-get install gputils gputils-common gputils-doc sdcc sdcc-doc sdcc-libraries sdcc-ucsim
$ sudo apt-get install sdcc-nf    //这里它会自动依赖库,自动卸载开放的SDCC,安装SDSS-NF

 

SDCC (小型设备C编译器)是为8位微控制器开发的免费C编译器。尽管兼容多种不同体系结构,但SDCC C编译器更适合8051内核。
SDCC是命令行固件开发工具,含预处理器、编译器、汇编器、链接器和优化器。安装文件中还捆绑了SDCDB,类似于gdb (GNU 调试器)的源码级调试器。无错的程序采用SDCC编译、链接后,生成一个Intel十六进制格式的加载模块。
SDCC主要由以下各部分组成:
sdcc – 编译器
sdcpp – c 预处理器
asx8051 – 8051汇编器
aslink.exe - 8051连接器
sdcclib.exe - 库产生器
makebin.exe - 产生二进制代码器
packihx – Intel hex转换器

当对SDCC工程进行编译,汇编以及连接源文件,输出文件如下所示:
*.asm  – 由编译器产生的汇编源文件。
*.lst – 由汇编器产生的汇编列表文件。
*.rst – 由连接器产生的汇编列表文件,里面含有连接信息记录。
*.sym – 源文件的符号列表,由汇编器产生。
*.rel 或 *.o – 由汇编器产生的目标文件,供连接器来使用。
*.map – 读入模块的内存映射表,由连接器产生。
*.mem – 记录存储器使用的摘要。
*.ihx –  intel hex格式的文件(可以使用--out-fmts19选项来选择Motorola S19输出格式)。
*.adb – 一个包含调试信息的中间文件,产生.cdb文件必须依赖这些中间文件来实现(使用--debug选项)。
*.cdb – 一个可选的包含调试信息的调试文件,在链接时使用选项--debug就会产生这个文件。
– 一个可选的包含调试信息的AOMF或者AOMF51文件(由选项--debug产生)。整个目标模块格式是OMF51格式的子格式并且一般被第三方工具使用(调试器,模拟器)。
*.dump* -- 打印文件调试编译器本身(选项为 –dumpall)

阅读(9344) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2011-03-06 09:05:35

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com