历史上的今天

今天是:2024年10月18日(星期五)

正在发生

2021年10月18日 | 使用 SDCC 开发 STM8

发布者:荒火 来源: eefocus关键字:SDCC  STM8  标准库 手机看文章 扫描二维码
随时随地手机看文章

本文介绍如何在 EIDE 上将 STM8 标准库移植到 SDCC 工具链,并完成测试

以 STM8S105K4T6 为例,其他的库过程大都相同


1. 创建 STM8 项目

  1. 打开 EIDE, 新建项目,类型选择 C51,注意:路径里最好不要有中文空格,在编译器里会出错

  2. 切换工具链至 SDCC, 打开编译选项,设置 device 为 stm8

  3. 设置宏,本项目为:STM8S105,USE_STDPERIPH_DRIVER

  4. 新建一个目录,将复制外设库到里面,并去除掉芯片不支持的外设源文件


2. 移植过程:主要针对 stm8s.h, 其他文件基本不用动

移植的过程并不复杂,就是参照其他编译器的定义,查询 SDCC 手册,写出适合 SDCC 的定义

注:以下对比图,左图为原文件,右图为修改后的

  1. 定义编译器宏:查阅 SDCC 手册,SDCC 编译器定义的宏为: __SDCC
    在这里插入图片描述

  2. 重定义关键字,SDCC 手册中不支持的就设置为空,编译时将会忽略这些关键字
    在这里插入图片描述

  3. 重定义内嵌汇编指令,SDCC 格式为 __asm__(x)
    在这里插入图片描述

  4. 重定义 interrupt ,trap 关键字, SDCC 格式为: __interrupt(x), __trap
    在这里插入图片描述


3. 开始项目

在 main.c 中写好闪烁LED 的示例


注意:SDCC 要求含有 main() 函数的源文件必须处于链接的第一个位置;如果你的 main() 函数不是在默认的 main.c 中,务必到编译选项中更改 “$mainFileName” 字段为 main() 实际所处的源文件名
在这里插入图片描述

开始编译,发现出现了错误,直接跳转到出错的源文件
在这里插入图片描述
发现是这个函数是用的内联汇编实现的,于是用 SDCC 也实现一下
框出的部分即为加上去的 SDCC 实现
在这里插入图片描述
再启动编译,成功
出现了两个警告,第一个提示函数没返回值,来自上一步,但注释中说可以直接忽略。第二个查看了一下也没影响
在这里插入图片描述


4. 下载到开发板

安装好 STVP, 并设置好 STVP_CmdLine.exe 的路径,连接 ST-LINK,点击下载

提示下载成功
在这里插入图片描述
板子上 LED 正常闪烁
在这里插入图片描述


关键字:SDCC  STM8  标准库 引用地址:使用 SDCC 开发 STM8

上一篇:STM8看门狗(1)
下一篇:IAR新建STM8工程

推荐阅读

中国已连续多年成为全球最大的工业机器人市场,而另一方面,中国市场主要被国外品牌占有,尤其是中高端市场,据CRIA统计,2017年中国工业机器人需求量最大的汽车行业,外资品牌的占有率约为90%。 近些年,在政策导向、资本助推和市场快速崛起下,本土工业机器人公司获得了快速增长。然而国产工业机器人在核心零部件、机器人本体等方面,都与国外有较大...
一年一度的亚洲最大物流技术与装备展——CeMATASIA2019亚洲国际物流技术与运输系统展览会又将在上海新国际博览中心隆重启幕。作为一站式移动机器人方案专家,仙知机器人将再次亮相物流展现场,现场呈现如何打造移动机器人。现场操作台示意图在物流展现场,将会有仙知工程师现场讲解与演示。如果您想亲自体验打造移动机器人的乐趣,还可以现场参与互动演示...
知名手机评测机构DXOMARK在昨天发微博批评iPhone 12 Pro Max的拍照不行。DXOMARK称他们对于刚刚发布的新款iPhone 12 Pro Max的第一印象是该设备的长焦镜头从iPhone 11 Pro Max的等效52mm升级到了等效65mm,支持5倍光学变焦,虽然有所升级,但还是不及一些友商的100+mm镜头。可能是该言论有点不符合手机评测机构的身份,也容易引发争议,因此DXOMARK...
Nordic Semiconductor发布nRF Connect for VS Code全新 nRF Connect 扩展包奠定坚实基础,促进简化且快速的无线产品开发体验Nordic Semiconductor宣布推出“nRF Connect for VS Code”,这款nRF Connect扩展包可让开发人员使用流行的 Visual Studio Code集成开发环境 (VS Code IDE),开发、构建、测试和部署基于 Nordic 的 nRF Co...

史海拾趣

问答坊 | AI 解惑

新型ZVZCT软开关PWM变换器的研究

新型ZVZCT软开关PWM变换器的研究…

查看全部问答∨

建议:斑竹能够做个站内的高级搜索(具体)

建议:斑竹能够做个站内的高级搜索(具体) 我经常用中国知网的高级搜索, 适合我们论坛的,不一定那么全, 1.有多条件AND/OR的搜索方式,必须的; 2.还可以考虑关键词、作者搜索,更上一层楼的; 3.如果再加上点击率等排序方式, ...…

查看全部问答∨

PCB板的生产工艺问题

PCB板在生产时,有各种工艺,比如抗氧板,镀金板,还有水金板之类的,有的厂对这些中文描述还有些模糊,需要英文描述,比如水金板要称为:Gold Plated,请帮忙详细介绍一下各种制作工艺的特点。感谢!…

查看全部问答∨

飞思卡尔S08单片机的时钟模块

这是飞思卡尔提供的应用笔记,专门就S08系列单片机上的三种时钟模块做了说明,转过来供大家参考 …

查看全部问答∨

海思40亿元销售额与华为的秘密计划

临近年关,各类排名满天飞,而对于中国IC公司(也称为‘中国芯’)的排名也不例外。这里我看到不论那一个排名,海思都是名列榜首,年销售额40亿元的数据,与排名第二的公司拉开了几倍的距离。这让国人和很多官员很是兴奋,中国也有年收入超过5亿美 ...…

查看全部问答∨

数字温度计DS18B20内带原理图,程序(更新为C语言,见后面)

数字温度计DS18B20内带原理图,程序(更新为C语言,见后面)…

查看全部问答∨

这个服务器可以做视频服务器吗 ?

要做个视频网站 做到用户能自由上传,下载,实时点播,我们现在的服务器配置1.cpu:intel core2 xeon x5130双核2G 4M 1333MHZ 风扇:intel core2 xeon 2U侧吹散热器 主板:inte s5000VSA SATA服务器主板 内存:金士顿1G DDR2 FBD667 X2 显卡 ...…

查看全部问答∨

问个外扩串口的问题

我用的2440,微软自带的的16c550驱动里没见设置bank的地方 bankcon banksize这两个寄存器都没动啊,是我没找到还是根本不用说设置呢? 哪位有经验的兄弟有空回个帖子,谢谢…

查看全部问答∨

大学生申请创新项目

本人大2电子男。 学校现在搞个2年期限的国家级创新项目,申请成功的有资金支持。 可是我们专业课都刚刚起步,我想了好久没有什么好的项目,大多都有人已经做过。 求各位前辈们。给点指导,给点灵感啊。申报期限都快到了,哎。急  啊…

查看全部问答∨

能效数据采集

人们在享受经济发展及科技变革所带来的物质生活的同时,也面临着各种严峻的环境问题,全球范围内,诸如气候变暖、能源、水污染、生物多样性和空气污染等许多重大的环境问题已经开始危及到经济的可持续发展和社会生活福祉。 当今的社会共同面临的两 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved