SDCC使用说明

    很苦恼,真的很苦恼。

SDCC还真的是无法逃避的问题,但是全英文。真的欲哭无泪啊。

开发环境已经定了,硬件平台是CC2530开发板,操作系统是Contiki,软件平台自然是Ubuntu了。

不管怎样,把SDCC的基础使用方法记录下来吧。也是感谢网上众多大牛的分享,我也是东找一点西找一点的拼凑出这些使用方法。因为本身英语水平没法看。。。

 

SDCC编译C文件的方法:

    命令:SDCC filename.c (是不是简单粗暴)

    生成:filename.ihx

    命令2SDCC -c filename.c

    生成:filename.rel (这是多文件编译的方式)

SDCC编译汇编文件(.asm)的方法:

    命令:sdas8051 -ols filename.asm

    生成:filename.lst filename.rel filename.sym

SDCCrel文件生成可执行文件的方法:

    命令1sdld -f filename.lk (这个连接文件需要自己写)

    命令2SDCC filename.rel (会自动生成filename.lk)

    生成文件:filename.ihx filename.map filename.mem filename.rst

ihx文件转换成hex文件和bin文件:

    转换成hex文件:packihx filename.ihx > filename.hex

    转换成bin文件:objcopy -I ihex -O binary filename.hex filename.bin

 

因为想用CC2530的平台来移植UCOS II,没办法逃过汇编这一条路。说起来都是泪啊。至于移植ContikiUCOS II有什么关联。。。纯粹是闲的,而且又不想看Contiki,因为Contiki也没有资料。

那么多文件编译的方法,这里采用Makefile

下面是Makefile的文件:

 

CC      = sdcc  

AS = sdas8051

LD = sdld

all:led.hex  

  

led.bin:led.hex  

objcopy -I ihex -O binary led.hex led.bin

 

led.hex:led.ihx  

packihx led.ihx > led.hex  

  

led.ihx:led.asm

$(AS) -o -l -s led.asm

# $(LD) -f led.lk

$(CC) led.rel

 

.PHONY:clean  

clean:  

-rm led.bin led.hex led.ihx led.cdb led.lst led.map\

led.omf led.rel led.rst led.sym

 

这是连接文件(.lk)

-myux

-i led.ihx

-Y

led.rel

-e

(对,你没看错。就是这样的几行,把它复制下来保存到.lk文件里就好。这是需要手动写连接文件时用的)


Makefile的文件这还是编译单个文件的Makefile,至于编译多文件的Makefile,等写好了在上传吧。



你可能感兴趣的:(SDCC使用说明)