使用sdcc开发stm8项目

2020-03-11 19:37发布

准备工作:
编译器sdcc,在 http://sdcc.sourceforge.net/ 下载
学习sdcc的好处:
1、开源编译器,我用了10年了。
2、热门核基本都支持,其中包括51,pic,stm8。像低成本的国产stc,国产pic克隆核都能用,只用装一套软件。对于使用fpga软核的人,基本都是热门软核。

666.jpg



3、编译器+notepad+makefile的方式,电脑少装很多东西。减少垃圾。:)
缺点:
1、调试稍麻烦。对于使用串口调试可忽略。
2、有点硬核,刚开始丢掉ide,的确有点难受
3、经比较,sdcc代码比keilc51,iar for stm8 略大些。

 

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
叶春勇
2020-03-12 14:27

五、sdcc 常用命令
1、查看c语言生产的汇编

  1. sdcc -mstm8 -S -c main.c -o main.asm
_main:
;        main.c: 23: CLK_CKDIVR = 0;  //16MHz
        mov        0x50c6+0, #0x00
;        main.c: 24: setbit(pb.ddr,5);//设置pb5为输出
        ld        a, _pb+2
        or        a, #0x20
        ld        _pb+2, a
;        main.c: 25: setbit(pb.cr1,5);//设置pb5为推挽输出,实际不存在:)
        ld        a, _pb+3
        or        a, #0x20
        ld        _pb+3, a
;        main.c: 26: while(1)
00102$:
;        main.c: 28: setbit(pb.odr,5); //高电平灭
        ld        a, _pb+0
        or        a, #0x20
        ld        _pb+0, a
;        main.c: 29: delay(100000L);
        push        #0xa0
        push        #0x86
        push        #0x01
        push        #0x00
        call        _delay
        addw        sp, #4
;        main.c: 30: rstbit(pb.odr,5); //低电平亮
        ld        a, _pb+0
        and        a, #0xdf
        ld        _pb+0, a
;        main.c: 31: delay(300000L);
        push        #0xe0
        push        #0x93
        push        #0x04
        push        #0x00
        call        _delay
        addw        sp, #4
        jra        00102$
;        main.c: 33: }
        ret



2、查看flash使用情况
查看自动生成的.map文件,包括内存和flash使用。其中flash主要看code段

666.jpg




一周热门 更多>