一、基础编译选项
1.1 单源文件的编译
假设目前有一个源文件led.c,用来控制开发板做流水灯循环,可以用如下命令进行编译。
$sdcc led.c
编译完之后发现目录下好多生成的编译文件。其中led.rel是类似gcc中的led.o这样用于链接的对象文件,有所不同的是,led.rel中并不包含链接用的汇编代码,它包含在led.lst中。而led.ihx是用来烧写的hex文件,它的格式是intel hex规范。实际用于烧写的文件格式要根据烧写工具来定制,这一点之后再研究。
1.2 多源文件的编译
在另外一个项目中,共有4个源文件。key.c用来控制矩阵键盘,display.c用来操作点阵屏,uart.c用来实现串行通信,而main.c用来统一调用其他源文件里的函数。这几个源文件编译的方法是先将源文件编译成库,然后再统一链接。使用编译选项 -c 表示complier only,只编译不链接。
$sdcc -c key.c
$sdcc -c display.c
$sdcc -c uart.c
$sdcc main.c key