精华内容
下载资源
问答
  • SDCC软件SDCC 软件SDCC 软件SDCC 软件SDCC 软件SDCC 软件
  • SDCC编译器

    2021-02-20 09:16:26
  • SDCC brew install sdcc 科技咨询委员会 安装python,获取pip brew install python@3.9 安装stcgal pip3.9 install stcgal --user 刷程序 使用sdcc编译程序生成hex sdcc xxx.c 使用stcgal拷贝hex到串口设备中 ...
  • sdcc安装包

    2013-08-07 11:03:29
    sdcc功能强大,几乎小型编译器环境交叉编译实现了keil的功能
  • SDCC2016架构峰会

    2018-01-22 09:39:16
    SDCC2016架构峰会合集 SDCC2016架构峰会合集 SDCC2016架构峰会合集 SDCC2016架构峰会合集
  • SDCC2016技术总结

    2016-12-02 09:12:40
    SDCC2016
  • sdcc-sdb-开源

    2021-05-15 01:26:02
    基于8051的TI MSC12xxEVM的SDCC源代码级调试器,监控器和下载器。 Windows,Cygwin,Linux和BSD Macs均已在支持SDCC 2.5.0的情况下进行了测试。 尚不支持SDCC 2.6.0。
  • Question about SDCC

    2020-12-08 23:01:28
    <div><p>Why was the decision made to base CPCTelera on SDCC instead of Z88DK ? <p>Over time, I have the impression that Z88DK has evolved better and I think that they have a larger community.</p><p>该...
  • proposal: SDCC support

    2020-12-26 12:56:35
    <p>I recently found out that eclipse is missing support for <a href="http://sdcc.sourceforge.net">SDCC</a>. <p>In short SDCC is "Small Device C Compiler", AKA C compiler for most 8-bit MCU&#...
  • 本头文件专为STC15系列单片机所准备,完美兼容SDCC编译器。
  • STM8S SDCC STD LIBRARY

    2017-12-19 11:56:00
    stm8s sdcc library with code blocks project file contains.
  • sdcc-4.0.0-win64.zip

    2020-06-28 16:49:39
    windows下的sdcc, 适合64位系统, SDCC的全称是Small Device C Compiler,所以不仅仅是单片机的编译器;目前SDCC支持Intel 8051, Maxim 80DS390, Zilog Z80与Motorola 68HC08 等系列CPU的代码编译。免费、开源、跨...
  • SDCC STM8 port

    2021-01-03 11:57:21
    <div><p>It seems, currently the STM8 is supported ...The free C compiler SDCC supports STM8 since the 3.4.0 release in 2014. <p>Philipp</p><p>该提问来源于开源项目:shkolnick-kun/bugurtos</p></div>
  • SDCC-2017-PPT

    2017-03-20 09:36:40
    2017年本次SDCC大会的 PPT精选整合, 方便大家一起下载
  • sdcc手册.PDF

    2014-10-17 15:27:54
    详细的sdcc c编译器介绍文档,纯英文版
  • sdcc Small Device C Compiler

    2017-11-16 19:03:27
    SDCC(Small Device C Compiler)是一个优化的 ANSI - C交叉编译器,目标CPU为基于Intel 8051, Maxim 80DS390, Zilog Z80 和Motorola 68HC08 的单片机
  • 安装SDCC 安装stcgal 安装USB转串口驱动CH341_MAC 实例代码Demo_Cycle.c 编译代码 烧录程序 Makefile编写 搭建开发环境 Mac系统版本: MacOS Catalina USB转串口: CH340/341 单片机型号: STC90C52RC 安装SDCC 简介 ...
  • 安装后把SDCC的bin目录添加到path环境 变量使得你能在任何目录下使用SDCC,使用archlinux和debian系统的没有这一步,安装时已经自动配置好了! 源代码与Keil C的稍许不同 对于已经习惯使用Keil C的用户需要注意一下,...

    安装后把SDCC的bin目录添加到path环境 变量使得你能在任何目录下使用SDCC,使用archlinux和debian系统的没有这一步,安装时已经自动配置好了!

    源代码与Keil C的稍许不同

    对于已经习惯使用Keil C的用户需要注意一下,SDCC的源代码和Keil C有所不同,需要做一点调整才能编译通过.SDCC比较多的使用像8051.h这样的头文件(include/mcs51目录下也有reg51.h这样的头文件).

    对于一些非ANSI C的关键字,SDCC均采用双下滑线开头的方式定义,如__code,__idata,__sbit…对于单片机引脚的定义SDCC采用了 __at关键字和十六进制地址(用户对底层地址信息要弄清楚,不过我觉得__at关键字是一个比较有特色的改进),如下:

    SDCC Keil C
    __sbit __at 0x94 blackLineLeft; sbit blackLineLeft=P1^4;
    __sbit __at 0x95 blackLineRight; sbit blackLineRight=P1^5;
    __sbit __at 0x80 in1; sbit in1=P1^0;
    __sbit __at 0x81 in2; sbit in2=P1^1;
    __sbit __at 0x82 in3 sbit in3=P1^2;
    __sbit __at 0x83 in4; sbit in4=P1^3;

    更多的地址信息可以查看附录
    对于内嵌汇编代码,SDCC使用__asm和__endasm两个关键字,参考代码如下:

    void delay0_1(uint n) {
    for(i=0;i<n;++i) {="" for(j=“0;j<10000;++j)” __asm="" nop="" __endasm;="" }="" <="" pre="">

    源代码编译

    单文件项目

    对于单源文件8051项目的编译过程非常简单.用下面的命令编译你的程序

    SDCC sourcefile.c
    

    这一步将完成编译,汇编和链接的源文件.输出文件如下:

    • sourcefile.asm - 程序的汇编文件
    • sourcefile.lst - 程序的列表文件
    • sourcefile.rst - 被链接器更新的列表文件
    • sourcefile.sym - 由链接器生成的符号清单
    • sourcefile.rel - 由汇编器生成的对象文件,提供给链接器使用
    • sourcefile.map - 被链接器更新的最终存储器映射
    • sourcefile.mem - 内存的使用情况摘要
    • sourcefile.ihx - 用于生成Intel Hex格式文件模块

    可能还有一些其他文件,查看SDCC手册可以了解更多!

    在大多数情况下,下面这一步不是必须的,但是由SDCC的产生Intel HEX文件可能包括不同长度的行,并且该文件中的地址不保证是严格递增.如果您的工具链或引导器不支持这个,你可以使用packihx命令,这是SDCC的一部分:

    packihx sourcefile.ihx >sourcefile.hex
    

    然后烧录就可以了.

    多文件项目

    SDCC并不支持同时编译多个源代码文件,所以多文件项目的编译需要分步进行.假如你的项目包含foo1.c foo2.c main.c三个文件,那么编译过程如下:

    sdcc -c foo1.c
    sdcc -c foo2.c
    sdcc main.c foo1.rel foo2.rel
    

    还可以使用以下方式编译:

    sdcc -c main.c
    sdcc main.rel foo1.rel foo2.rel
    

    最后处理一下ihx文件就可以了.对于多文件项目最好是写一个makefile文件用make维护或者写一个批处理文件.

    结束了,对于初次使用SDCC这些应该够用了.高手不要见笑,新手就凑合着看看,我也是新手.欢迎大家留言,交流使人共同进步!

    附录include/mcs51/8051.h:

    /*  BYTE Register  */
    __sfr __at (0x80) P0   ;
    __sfr __at (0x81) SP   ;
    __sfr __at (0x82) DPL  ;
    __sfr __at (0x83) DPH  ;
    __sfr __at (0x87) PCON ;
    __sfr __at (0x88) TCON ;
    __sfr __at (0x89) TMOD ;
    __sfr __at (0x8A) TL0  ;
    __sfr __at (0x8B) TL1  ;
    __sfr __at (0x8C) TH0  ;
    __sfr __at (0x8D) TH1  ;
    __sfr __at (0x90) P1   ;
    __sfr __at (0x98) SCON ;
    __sfr __at (0x99) SBUF ;
    __sfr __at (0xA0) P2   ;
    __sfr __at (0xA8) IE   ;
    __sfr __at (0xB0) P3   ;
    __sfr __at (0xB8) IP   ;
    __sfr __at (0xD0) PSW  ;
    __sfr __at (0xE0) ACC  ;
    __sfr __at (0xF0) B    ;
    /*  BIT Register  */
    /* P0 */
    __sbit __at (0x80) P0_0 ;
    __sbit __at (0x81) P0_1 ;
    __sbit __at (0x82) P0_2 ;
    __sbit __at (0x83) P0_3 ;
    __sbit __at (0x84) P0_4 ;
    __sbit __at (0x85) P0_5 ;
    __sbit __at (0x86) P0_6 ;
    __sbit __at (0x87) P0_7 ;
    /*  TCON  */
    __sbit __at (0x88) IT0  ;
    __sbit __at (0x89) IE0  ;
    __sbit __at (0x8A) IT1  ;
    __sbit __at (0x8B) IE1  ;
    __sbit __at (0x8C) TR0  ;
    __sbit __at (0x8D) TF0  ;
    __sbit __at (0x8E) TR1  ;
    __sbit __at (0x8F) TF1  ;
    /* P1 */
    __sbit __at (0x90) P1_0 ;
    __sbit __at (0x91) P1_1 ;
    __sbit __at (0x92) P1_2 ;
    __sbit __at (0x93) P1_3 ;
    __sbit __at (0x94) P1_4 ;
    __sbit __at (0x95) P1_5 ;
    __sbit __at (0x96) P1_6 ;
    __sbit __at (0x97) P1_7 ;
    /*  SCON  */
    __sbit __at (0x98) RI   ;
    __sbit __at (0x99) TI   ;
    __sbit __at (0x9A) RB8  ;
    __sbit __at (0x9B) TB8  ;
    __sbit __at (0x9C) REN  ;
    __sbit __at (0x9D) SM2  ;
    __sbit __at (0x9E) SM1  ;
    __sbit __at (0x9F) SM0  ;
    /* P2 */
    __sbit __at (0xA0) P2_0 ;
    __sbit __at (0xA1) P2_1 ;
    __sbit __at (0xA2) P2_2 ;
    __sbit __at (0xA3) P2_3 ;
    __sbit __at (0xA4) P2_4 ;
    __sbit __at (0xA5) P2_5 ;
    __sbit __at (0xA6) P2_6 ;
    __sbit __at (0xA7) P2_7 ;
    /*  IE   */
    __sbit __at (0xA8) EX0  ;
    __sbit __at (0xA9) ET0  ;
    __sbit __at (0xAA) EX1  ;
    __sbit __at (0xAB) ET1  ;
    __sbit __at (0xAC) ES   ;
    __sbit __at (0xAF) EA   ;
    /*  P3  */
    __sbit __at (0xB0) P3_0 ;
    __sbit __at (0xB1) P3_1 ;
    __sbit __at (0xB2) P3_2 ;
    __sbit __at (0xB3) P3_3 ;
    __sbit __at (0xB4) P3_4 ;
    __sbit __at (0xB5) P3_5 ;
    __sbit __at (0xB6) P3_6 ;
    __sbit __at (0xB7) P3_7 ;
    __sbit __at (0xB0) RXD  ;
    __sbit __at (0xB1) TXD  ;
    __sbit __at (0xB2) INT0 ;
    __sbit __at (0xB3) INT1 ;
    __sbit __at (0xB4) T0   ;
    __sbit __at (0xB5) T1   ;
    __sbit __at (0xB6) WR   ;
    __sbit __at (0xB7) RD   ;
    /*  IP   */
    __sbit __at (0xB8) PX0  ;
    __sbit __at (0xB9) PT0  ;
    __sbit __at (0xBA) PX1  ;
    __sbit __at (0xBB) PT1  ;
    __sbit __at (0xBC) PS   ;
    /*  PSW   */
    __sbit __at (0xD0) P    ;
    __sbit __at (0xD1) F1   ;
    __sbit __at (0xD2) OV   ;
    __sbit __at (0xD3) RS0  ;
    __sbit __at (0xD4) RS1  ;
    __sbit __at (0xD5) F0   ;
    __sbit __at (0xD6) AC   ;
    __sbit __at (0xD7) CY   ;
    /* BIT definitions for bits that are not directly accessible */
    /* PCON bits */
    #define IDL             0x01
    #define PD              0x02
    #define GF0             0x04
    #define GF1             0x08
    #define SMOD            0x80
    /* TMOD bits */
    #define T0_M0           0x01
    #define T0_M1           0x02
    #define T0_CT           0x04
    #define T0_GATE         0x08
    #define T1_M0           0x10
    #define T1_M1           0x20
    #define T1_CT           0x40
    #define T1_GATE         0x80
    #define T0_MASK         0x0F
    #define T1_MASK         0xF0
    /* Interrupt numbers: address = (number * 8) + 3 */
    #define IE0_VECTOR      0       /* 0x03 external interrupt 0 */
    #define TF0_VECTOR      1       /* 0x0b timer 0 */
    #define IE1_VECTOR      2       /* 0x13 external interrupt 1 */
    #define TF1_VECTOR      3       /* 0x1b timer 1 */
    #define SI0_VECTOR      4       /* 0x23 serial port 0 */
    
    SDCC sourcefile.c 这一步将完成编译,汇编和链接的源文件.输出文件如下:

    sourcefile.asm - 程序的汇编文件
    sourcefile.lst - 程序的列表文件
    sourcefile.rst - 被链接器更新的列表文件
    sourcefile.sym - 由链接器生成的符号清单
    sourcefile.rel - 由汇编器生成的对象文件,提供给链接器使用
    sourcefile.map - 被链接器更新的最终存储器映射
    sourcefile.mem - 内存的使用情况摘要
    sourcefile.ihx - 用于生成Intel Hex格式文件模块
    可能还有一些其他文件,查看SDCC手册可以了解更多!

    在大多数情况下,下面这一步不是必须的,但是由SDCC的产生Intel HEX文件可能包括不同长度的行,并且该文件中的地址不保证是严格递增.如果您的工具链或引导器不支持这个,你可以使用packihx命令,这是SDCC的一部分:

    packihx sourcefile.ihx >sourcefile.hex
    然后烧录就可以了.

    多文件项目
    SDCC并不支持同时编译多个源代码文件,所以多文件项目的编译需要分步进行.假如你的项目包含foo1.c foo2.c main.c三个文件,那么编译过程如下:

    sdcc -c foo1.c
    sdcc -c foo2.c
    sdcc main.c foo1.rel foo2.rel
    还可以使用以下方式编译:

    sdcc -c main.c
    sdcc main.rel foo1.rel foo2.rel
    最后处理一下ihx文件就可以了.对于多文件项目最好是写一个makefile文件用make维护或者写一个批处理文件.

    结束了,对于初次使用SDCC这些应该够用了.高手不要见笑,新手就凑合着看看,我也是新手.欢迎大家留言,交流使人共同进步!

    sdcc编译器使用makefile
    环境:make(window下有mingw32-make)和sdcc
    ############################################

    主程序,根据自己程序更改

    MainFile := Demo

    所有的c文件,根据运行平台更改

    ALLC := $(shell dir /b *.c)
    ############################################
    OBJ := $(patsubst %.c, %.rel, $(ALLC))
    CC := sdcc
    tmp1 := $(strip (MainFile))(MainFile))(strip .hex)
    tmp2 := $(strip (MainFile))(MainFile))(strip .ihx)
    all: end
    $(OBJ):%.rel: %.c
    $(CC) -c $^
    ihx: $(OBJ)
    $(CC) $(OBJ)
    end: ihx
    packihx (tmp2)>(tmp2)>(tmp1)
    clean:
    del *.hex *.ihx *.map *.asm *.lk *.lst *.mem *.rel *.rst *sym

    功能快捷键

    撤销:Ctrl/Command + Z
    重做:Ctrl/Command + Y
    加粗:Ctrl/Command + B
    斜体:Ctrl/Command + I
    标题:Ctrl/Command + Shift + H
    无序列表:Ctrl/Command + Shift + U
    有序列表:Ctrl/Command + Shift + O
    检查列表:Ctrl/Command + Shift + C
    插入代码:Ctrl/Command + Shift + K
    插入链接:Ctrl/Command + Shift + L
    插入图片:Ctrl/Command + Shift + G
    查找:Ctrl/Command + F
    替换:Ctrl/Command + G

    展开全文
  • 支持SDCC编译器的自动编译。使用make或mingw32-make实现目录内全源码自动编译的Makefile。
  • SDCC compiler for STM8

    2021-01-01 22:03:33
    <div><p>Currently, atomthreads supports the STM8 via non-free compilers only. How about adding support via free SDCC? <p>Philipp</p><p>该提问来源于开源项目:kelvinlawson/atomthreads</p></div>
  • STM8/SDCC support

    2020-12-09 10:54:45
    <div><p>AFAIK nOS currently needs IAR to build for STM8. How about adding support for free SDCC? <p>Philipp</p><p>该提问来源于开源项目:jimtremblay/nOS</p></div>
  • 修改自STC官方提供的STC8Hxx.h,目前已兼容SDCC编译器。include此文件后,无需再包含SDCC官方提供的at89x52.h
  • 修改自STC官方提供的STC8Axx.h,目前已兼容SDCC编译器。include此文件后,无需再包含SDCC官方提供的at89x52.h
  • SDCC2015大会精彩演讲PPT集锦

    万人学习 2015-11-24 11:42:42
    SDCC2015中国软件开发者大会,由CSDN重磅打造,作为年度的技术盛会,邀请了近百名国内外业界领袖和知名技术讲师共论技术热点与佳实践。 本压缩包汇聚SDCC2015所有可公开的讲师演讲PPT,共计10份。已购买大会门票的...
  • SDCC 基于内容建模的推荐系统
  • sdcc编译器使用makefile

    2020-06-13 14:31:16
    sdcc编译器使用makefile 环境:make(window下有mingw32-make)和sdcc ############################################ # 主程序,根据自己主程序更改 MainFile := Demo # 所有的c文件,根据运行平台更改 ALLC := $...

    sdcc编译器使用makefile

    环境:make(window下有mingw32-make)和sdcc

    ############################################
    # 主程序,根据自己程序更改
    MainFile := Demo                   
    # 所有的c文件,根据运行平台更改
    ALLC := $(shell dir /b *.c)
    ############################################
    OBJ := $(patsubst %.c, %.rel, $(ALLC))
    CC := sdcc
    tmp1 := $(strip $(MainFile))$(strip .hex)
    tmp2 := $(strip $(MainFile))$(strip .ihx)
    all: end
    $(OBJ):%.rel: %.c
    	$(CC) -c $^
    ihx: $(OBJ)
    	$(CC) $(OBJ)
    end: ihx
    	packihx $(tmp2)>$(tmp1)
    clean: 
    	del *.hex *.ihx *.map *.asm *.lk *.lst *.mem *.rel *.rst *sym
    
    展开全文
  • sdccman手册2.9.0

    2012-12-02 13:45:55
    sdccman手册,2.9.0的,找了好久,要的那去。
  • <div><p>我希望xmake使用sdcc(<a href="sdcc">http://sdcc.sourceforge.net/</a>)作为cc编译器,但是无论如何配置都无法正确构建项目。 我使用以下命令配置xmake <code>xmake f -p sdcc -a stm8 --sdk=&#...
  • sdccman手册3.2.1

    2012-12-02 13:44:15
    sdcc的man手册,3.2.1的,要的朋友那去,找了好久。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,083
精华内容 433
热门标签
关键字:

SDCC