谷动谷力

 找回密码
 立即注册
查看: 2340|回复: 0
打印 上一主题 下一主题
收起左侧

【单片机开发环境】SDCC Linux开发环境搭建在ubuntun下安装sdcc

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-3 22:36:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sunsili 于 2021-12-25 00:31 编辑

【单片机开发环境】SDCC Linux开发环境搭建在ubuntun下安装sdcc


前言
最近打算写一些单片机程序,因此买了一块开发板,打算写一些代码来复习相关的知识。第一块开发板是普通的stc90c51,出于将学习和娱乐分开的目的,我把编码工作放在linux下来进行。

在linux下进行单片机的软件开发,要先安装专用的交叉编译器sdcc。接下来我会阅读sdcc的man文档,再结合一些简单的实验,来了解一下这款编译器。其目的有三,一是复习一些单片机的知识,二是理清sdcc的编译选项,好用来写makefile,三是弄明白sdcc和keil编译器的不同,这样可以把keil c的代码移植过来直接使用。

一、sdcc的安装
1.1 在ubuntun下安装sdcc
由于我的系统是ubuntun,因此可以直接使用apt-get命令来进行安装

$sudo apt-get install sdcc

1.2 用其他方式安装sdcc
最原始的方式是下载源码并编译,这样可以得到目前的最高版本。sdcc源码的下载地址是 http://sdcc.sourceforge.net/snap.php 。下载好后用tar解包,用./configure检查编译环境,然后用make编译sdcc,再用make install复制sdcc的bin文件的lib文件和头文件到相应的目录。

$tar -xvjf sdcc-src-yyyymmdd-rrrr.tar.bz2

$cd sdcc
$./configure
$make
$make install

sdcc man文件下载地址 http://sdcc.sourceforge.net/doc/sdccman.pdf

二、sdcc包含的内容
安装完sdcc后可以分析一下sdcc一共包含哪些组成部分。

2.1 头文件和库文件
sdcc会自动链接的头文件和库文件在安装目录的 /share/sdcc 下,默认的值为/usr,而接下来的bin文件全都包含在安装目录的/bin下。

<installdir>/share/sdcc/include
<installdir>/share/sdcc/lib

2.2 编译程序sdcc
编译程序sdcc,最常用到的命令,它所做的其实就是轮流调用预处理器、汇编器、连接器来完成编译工作。

2.3 预处理程序sdccp
这个预编译程序sdccp是直接用gcc的预编译程序的源码修改而来的,它被用来在编译前处理#include #define 这些预编译指令。

2.4 汇编程序和链接程序sdas, sdld
sdas用来将C源码编译成汇编指令,sdld用来链接各目标文件的符号表。顺带一提man文档上说这两个程序都是基于Alan Baldwin的开源代码修改的,现在用的是它的2.0版本。Alan Baldwin已经将它的5.0版本开源,该老兄一直致力于编译器的研发工作。

2.5 仿真器
sdcc集成的仿真器包含s51, sz80 shc08 and sstm8系统,由Daniel Drotos开发,在他的网站上有详细的说明:

http://mazsola.iit.uni-miskolc.hu/~drdani/embedded/s51

2.6 debug工具 sdcdb
sdcc用Daniel Drotos的仿真器进行debug,由于我有开发板,可以直接把程序烧上去。而且该款单片机没有j-tag接口,所以等有时间再来研究这个debug工具吧。
+10

本帖被以下淘专辑推荐:

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-11-24 16:21 , Processed in 0.434451 second(s), 39 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表