最近在学51单片机,我用的是LINUX系统。是个坚定的linuxer。所以不打算换系 统。只好自己找在LINUX下能够写51单片机程序的编译器。不负苦心人,终于找到了,SDCC,在Fedora的自带的软件包中也有。^_^,OK。工 具搞定了,可以开始学习了。我是学电气的,专业也是要学单片机的,但等老师教要等到猴年马月。自学是我一向崇尚的,而且大学里最重要的就是学会怎样学习。 好了,废话不多说了。还是讲点靠谱的。
学校图书馆单片机的书还不少,但编译器都用的 Keil的。网上搜了搜,没什么sdcc的资料,:-),还不惨,官网上有文档。虽然是英文的,但最近几年坚持看英文技术书可不是盖的。用上 StarDic终于勉强弄懂。关于C51方面的就不多说了,虽然编译器不同,但基本还是可移植的。
就是Keil中的有些库SDCC中没有,貌似现在才发现一个,毕竟研究的时间还不长。就说说汇编的部分吧。
玩 单片机我还是喜欢汇编,但Keil的汇编器语法和sdcc的实在不一样。怎么办呢?sdcc文档中也未提到汇编器的解释。但我在一大堆英文中苦苦的寻找 者,终于看到SDCC的汇编器用的是ASXXXX的汇编器,而且还是个开源项目。^_^,顺藤摸瓜,找到那个网站。又是一堆的英文手册。为了技术,看 吧。。。。
看手册,并把sdcc生成的汇编代码看看,还是摸出了一点门道,只是一点点阿,以后有新的进展会写进博客的,不过最近不会啦,课程太紧。还要备考四级。
如果用sdas8051写汇编版的单片机程序。会有几个文件。
sourcefile.asm 你自己编辑的源程序文本
sourcefile.rel 汇编器生成的目标文件
sourcefile.lst 汇编器生成的列表文件 用 -l 选项
sourcefile.rst 连接器生成的更新列表文件的文件