当前位置: 首页 > 工具软件 > SDCC > 使用案例 >

SDCC教程(树莓派 Debian11 bullseye 使用官方下载源)

赵涵亮
2023-12-01

说明

SDCC:Small Device C Compiler
SDCDB:Small Device C Debugger

apt安装SDCC

  1. 下载sudo apt-get install sdcc
  2. 使用 sdcc --version查看sdcc版本号:
SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ez80_z80/ds390/TININative/ds400/hc08/s08/stm8/pdk13/pdk14/pdk15 4.0.0 #11528 (Linux)
published under GNU General Public License (GPL)

源码安装SDCC(不建议,可能报错)

  1. 下载命名为SDCC -src-yyyymmdd-rrrr.tar源码包,,也可以点击这里
  2. 解压下载的源码包tar -xvjf sdcc-src-yyyymmdd-rrrr.tar. gz
  3. 进入解压的文件夹,执行
  4. ./configure
  5. make
  6. make install

源码安装会出现的问题

  1. 见man 2.8 Install Trouble-shooting
  2. 由于使用apt进行安装所以不在赘述

SDCC文档(下载见此

  1. 下载编译好的文档
  2. 阅读文档,主要阅读sdccman.pdf就可以了,也可以进入index.html阅读

写测试程序

char test;
void main(void) {
	test=0;
}//测试普通编译
#include <string.h>
char str1[10];
void main(void) {
	strcpy(str1, "testing");
}//测试链接
  • sdcc -c test.c只进行编译和汇编,不进行连接,输出的是asm文件和rel文件
  • sdcc test.c一步到位,直接生成二进制文件

小tips

  1. 查看软件的安装目录:whereis sdcc,一般在/usr/share
  2. 查看软件的执行文件:一般在/usr/bin

SDCC结构

  1. /usr/bin:软件集
  2. /usr/share/sdcc/include :头文件
  3. /usr/share/sdcc/lib :SRC和带有预编译重定位项的目标子目录

SDCC软件集详细说明

  1. sdcc:编译器
  2. sdcpp:预编译器
  3. sdas,sdls:汇编器和链接器
  4. s51,sz80,shc08,sstm8:仿真器
  5. sdcdb:调试器

SDCC编译单个文件

sdcc source.c

SDCC编译输出文件说明

文件后缀描述
asm汇编源文件
lst汇编列表文件
rst带有linkedit更新的汇编列表文件
sym源文件的符号列表
rel目标文件
map加载模块的内存映射
mem内存使用总结文件
ihx使用intel hex格式的加载文件
adb包含着调试信息的一个中间文件
cdb包含调试信息的可选文件
omf包含调试信息的AMOF可选文件

ihx文件的后续处理

packihx sourcefile.ihx >sourcefile.hex:将ihx文件转化成hex文件

多源文件工程

比如说有三个文件 f001.c foo2.c foomain.c,就可以使用如下指令

sdcc -c foo1.c
sdcc -c foo2.c
sdcc foomain.c foo1.rel foo2.rel

# 第三步也可以拆解成为2步
#sdcc -c foomain.c
#sdcc foomain.rel foo1.rel foo2.rel
 类似资料: