SDCC:小型设备C编译器介绍
需积分: 16 38 浏览量
更新于2024-09-01
收藏 115KB PDF 举报
"Small_Device_C_Compiler.pdf 是一份关于小型设备C编译器SDCC的文档,主要讨论了这个开源工具链的特点、功能以及与其他类似工具的比较。SDCC是针对8位微控制器设计的交叉编译工具链,支持多种处理器架构,并提供了预处理器、编译器、汇编器、链接器、调试器、模拟器和库等功能。它遵循C89/C99/C11标准但不支持C++。SDCC是命令行工具,适用于生产环境,并采用GPLv2等许可证开源。
SDCC支持的目标处理器包括MCS-51/DS390/DS400、ST7/STM8、HC08/HCS08、Z80/Z180/GBZ80/R2000/R3000A、TLCS90、PIC16/PIC18(不完整)、AVR(已放弃)。此外,文档提到了与Keil、IAR、GCC、Cosmic、MPLAB和Metroworks等其他知名嵌入式开发工具的相似性。
工具链组件包括:
1. sdcpp:基于gcc-4.6的预处理器
2. sdcc:编译器本身
3. sdas:与GNU as兼容的汇编器
4. sdld:链接器
5. sdbinutils:基于较旧版本的binutils
6. ucsim:支持多种目标的模拟器
7. 库:通用库和架构相关的库
SDCC还引入了一些特定的扩展关键字,如:
1. __data, __idata, __xdata, __pdata, __bit, __code:用于内存空间的指定
- __idatainta; // 数据存储区的整型变量
- __xdatalong*__datap; // 外部数据存储区的长整型指针
- __bitc; // 位变量
- char(*__pdatafp)(void); // 数据存储区的函数指针
2. __sfr, __sfr16, __sft32, __sbit:用于定义特殊功能寄存器
- __sfr__at(0x80)P0; // 定义地址为0x80的8位特殊功能寄存器
- __sfr16__at(0x8C8A)TMR0; // 16位特殊功能寄存器
- __sbit__at(0xd7)CY; // 定义地址为0xd7的位寄存器
文档中的这些扩展关键字和功能使SDCC能够更有效地针对8位微控制器进行编程,提供了一种灵活且高效的开发环境。对于需要在有限资源的嵌入式系统上编写C代码的开发者来说,SDCC是一个强大且经济实惠的选择。"
2022-03-30 上传
2017-11-16 上传
2016-05-09 上传
2021-11-11 上传
2014-10-17 上传
2021-10-20 上传
2021-10-12 上传
2021-10-30 上传
2021-10-11 上传
ppcust
- 粉丝: 38
- 资源: 728
最新资源
- VFP命令和函数以及程序语句大全
- Jquery1.2.6源码分析.pdf
- jpg图像vc编程实现
- powerDesigner建模工具
- 如何进行软件需求分析
- 使用VB2005设计Smartphone智能手机应用程序入门
- WPF(Silverlight)+Getstarted.pdf
- Fedora下搭建FTP服务器
- 16x2字符型带背光液晶显示模块
- c语言程序设计课程(学生成绩管理系统)
- spring开发指南(夏昕)
- c#面试题及答案(二).txt
- jmail中文手册 帮助文档 pdf
- informix informix esql -c文档 c中嵌入sql esql/c总结 比较 笔记 详细
- C#语言进行编译的命名空间详解
- 华为面试题及答案.txt