导航:首页 > 源码编译 > sdcc编译多个文件

sdcc编译多个文件

发布时间:2022-12-17 20:28:37

⑴ stc8h8k64u在keil选什么

stc8h8k64u在keil选MCU
为避免之前STC12封装库存在的问题, 这个封装库在以下方面进行了改进
兼容SDCC和Keil C51
FwLib_STC12封装库只支持SDCC编译, 并且寄存器命名与官方不同, 使得基于FwLib_STC12的项目代码与其他Keil开发的项目代码无法兼容.
在FwLib_STC8的开发上, 采用了与官方库文件一致的命名, 并且增加了对Keil C51和SDCC的适配. 基于FwLib_STC8的项目, 可以在linux下使用SDCC编译, 也可以在Windows下使用Keil C51环境进行编译.
减小代码尺寸
FwLib_STC12封装库较多使用函数的方式对寄存器进行封装, 而函数与函数间的层级调用都会增加栈开支, 这样一方面8位MCU本来就不多的内存更加捉襟见肘, 另一方面增加了生成的固件尺寸.
在FwLib_STC8封装库中, 大量使用宏语句对寄存器操作进行封装, 并且控制方法间的层级调用深度, 有效节省了固件体积和堆栈占用。

⑵ 51单片机用什么软件编程

开源软件mcu8051ide 功能不是一般的强,用c语言编程,界面不输给商业软件,而且提供多种模拟器件如:led 数码管,矩阵数码管(8×8)按键,矩阵按键,甚至温度传感器。开源的没有任何限制,完全免费,自动生成多种烧录文件(我们一般就用.HEX的)感觉keil c弱爆了。
安装方法,下载sdcc(mcu8051ide是基于sdcc的)和mcu 8051 ide都安装好就可以啦,头文件在sdcc的安装文件夹内(include)有些关键字要加两个连在一起的下划线比如 __interrup, __code.
头文件与keil的不通用,比如定义P0口
在keil下是: sfr P0=0x80; 在sdcc下是: __sfr __at P0 0x80; 这个P0^1的不行,但sdcc里面有很多头文件8051.h 80c51.h 80c52.h等等 基本满足要求,给stc单片机编程不用改,加一点特殊的就可以。这样优秀的开源软件不用真的是白不用啊。

⑶ gcc编译器可以用于单片机的开发吗

可以的,需要交叉编译。我们公司就在做这个。原来使用sdcc做的编译器,现在改为gcc了。

⑷ sdcc 编译器错误不能打开

点击详细编辑器输出,查看具体的原因,在服务器中找到这个文件。
不是叫做:编译器错误,而是应该叫做:编译错误。如果说真的是编译器内部本身(例如:C语言编译器、或者是别的各种编程语言的编译器)出现了bug的话,那么任何人也没有办法。
只有开发编译器软件的软件开发人员才能够解决这样的问题;如果是在你的源程序中产生的各种编译错误(例如:语法错误、语义错误等),那么你只能够仔细地检查、编译、调试你的源程序了。

⑸ sdcc版是啥意思

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。

(5)sdcc编译多个文件扩展阅读:


交叉编译出现和流行是和嵌入式系统的广泛发展同步的。常用的计算机软件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如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),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。

⑹ linux下怎么编译单片机c代码,怎么下载到51单片机上呢

1.编译软件用sdcc
2.sdcc不支持keil51c 的一些语法。要做以下修改:
sbitled1=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 目标文件

⑺ 单片机xdata变量超过256居然会重启非看门狗问题。MCU:C8051F930 SDCC编译

我在用C8051F系列单片机的时候也遇到类似问题,大都出现在编译器和仿真软件上。咨询供应商,要他们解决这个问题。

⑻ SDCC编译器警告问题,怎么解决

编译器的警告要认真对待,应该尽量编写没有警告的代码,除非你确切的知道编译器为什么产生警告,以及后果

阅读全文

与sdcc编译多个文件相关的资料

热点内容
文件如何上传到自己的服务器 浏览:399
你用什么app 浏览:224
安卓平板用什么优化软件 浏览:747
centos重新编译程序 浏览:335
cocoapods命令 浏览:906
androidusb卸载 浏览:143
linux解压缩软件 浏览:143
ppt及备注转pdf 浏览:564
ssh下载文件命令 浏览:821
程序员考MBA 浏览:265
国外加密锁是什么样子 浏览:229
linuxhosts重启 浏览:168
c语言编译正确但是不能执行 浏览:856
编程素质教育代理 浏览:908
渴望力量程序员 浏览:370
app页面拆解拆到什么程度 浏览:152
如何建立备份服务器 浏览:595
python与计算机编程语言 浏览:46
ac压缩机 浏览:957
linux磁盘id 浏览:660