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,等写好了在上传吧。


  • 5
    点赞
  • 12
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

baskMMU

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值