sdcc版是啥意思

sdcc版是啥意思,第1张

SDCC(Small Device C Compiler)是一个优化的 ANSI - C交叉编译器,目标CPU为基于Intel 8051, Maxim 80DS390, Zilog Z80 和Motorola 68HC08 的单片机。

SDCC同时带有一个源代码级调试工具SDCDB,使用的是Daniel's s51 仿真器当前版本。SDCC是由Sandeep Dutta 所写的,并依据GPL license 发行。

sdcc的特点:

1、SDCC的sdas和sdld 是基于ASXXXX的交叉编译工具和链接工具,他们都是免费开源的软件,依据GNU General Public License (GPL) 发布。

2、有针对特定MCU的编程语言扩展,可以高效的使用基本的硬件资源。

3、有大量的标准优化,如全局字表达式削减,循环优化(无任何 *** 作的循环优化,归纳变量循环优化,逆循环优化), 常量合并的传播,复制传播,死代码删除, 'switch'语句的转移表优化。

4、针对特定MCU的优化,包括全局寄存器分配算法。

5、特定MCU后端适应能力,能够很好的适配其他的8位的MCU。

扩展资料:

交叉编译出现和流行是和嵌入式系统的广泛发展同步的。常用的计算机软件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码)编译(compile)成计算机可以识别和执行的二进制代码。

比如,在Windows平台上,可使用Visual C++开发环境,编写程序并编译成可执行程序。这种方式下,我们使用PC平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为native compilation,中文可理解为本机编译。

然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的 ARM 平台,其一般的静态存储空间大概是16到32MB,而CPU的主频大概在100MHz到500MHz之间。

这种情况下,在ARM平台上进行本机编译就不太可能了,这是因为一般的编译工具链(compilation tool chain)需要很大的存储空间,并需要很强的CPU运算能力。

为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,我们就可以在CPU能力很强、存储空间足够的主机平台上(比如PC上)编译出针对其他平台的可执行程序。

要进行交叉编译,要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。

参考资料来源:

百度百科-sdcc

百度百科-交叉编译器

该只能支持stc89c52rc。

sudo python :

sbit led1=P1^0 改为 #define led1 P1_0

中断函数interrupt改为__interrupt

单个位 P1^0 改为P1_0

若vim安装插件YCM的话usr/shareǘsdcc/include/mcs51

没创建一个工程都要拷贝一份.ycm_extra_conf.py到该工程的目录下。我自己亲自试过。

3.编译用命令

` sdcc 目标文件

4.烧录用stcflash.py,不支持stc89c52./stcflash,要在.ycm_extra_confinclude

47.py加入以下两个路径

/usr/share/sdcc47

1.编译软件用sdcc

2.sdcc不支持keil51c 的一些语法。要做以下修改:

sbit led1=P1^0 改为 #define led1 P1_0

中断函数interrupt改为__interrupt

单个位 P1^0 改为P1_0

若vim安装插件YCM的话,要在.ycm_extra_conf.py加入以下两个路径

/usr/share/sdcc/include

/usr/share/sdcc/include/mcs51

没创建一个工程都要拷贝一份.ycm_extra_conf.py到该工程的目录下。

3.编译用命令

` sdcc 目标文件

4.烧录软件用stcflash.py,该软件只能支持stc89c52rc,不支持stc89c52。我自己亲自试过。

sudo python ./stcflash.py 目标文件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6238644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存