本文介绍如何在 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 正常闪烁


此示例已上传至 EIDE 模板,可下载并安装

vscode 使用 SDCC 开发 STM8相关推荐

  1. 【VSCode PlatformIO】开发STC单片机头文件和常用外设驱动头文件获取方式

    [VSCode PlatformIO]开发STC单片机头文件和常用外设驱动头文件获取方式 相关篇<[VSCode PlatformIO] STC单片机开发头文件制作与添加方法> 相关篇&l ...

  2. VSCode打造成为开发神器-插件篇

    VSCode打造成为开发神器-插件篇 1. 编程语言类 下面的几个插件根据情况安装. C/C++ Dart dart-import Go Go Doc ** Python** 2. 代码风格类 Bea ...

  3. vscode中装js解释器_h5学习记录(1)--vscode配置js开发环境

    文笔不是很好,第一次写东西,主要为了记录h5的学习过程.今天记录的是vscode配置js开发环境. 什么是VSCode Visual Studio Code (简称VS Code/VSC) 是一款于2 ...

  4. win10+vscode部署java开发环境

    目录 Java开发插件配置: 调试: 快捷键: 启动配置文件launch.json: 启动配置说明: Launch: Attach: User Setting: 遇到的问题: 参考: Java开发插件 ...

  5. macos安装vscode_如何使用VSCode进行PostgreSQL开发及调试

    Visual Studio Code (VSCode)是一个轻量级但功能强大的源代码编辑器,可在桌面上运行,适用于Windows,macOS和Linux. 它内置了对JavaScript,TypeSc ...

  6. 使用Vscode进行Python开发环境配置

    Vscode是是一个强大的跨平台工具,我自己电脑是mac,公司电脑是win而且是内部环境,导致公司安装软件很费劲.好在vscode许多插件能直接离线安装,省去了很多麻烦. 很多人学习python,不知 ...

  7. 用VScode配置Python开发环境引用

    引用:用VScode配置Python开发环境 - 简书 前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生 ...

  8. VSCode配置JAVA开发环境,java初级面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  9. vscode 文件夹中查找_真香!使用 VSCode 进行远程开发调试

    对于大型的 Golang 项目往往我都会使用 Goland 这样的专业 IDE,但是由于我本地开发环境硬件资源偏低,不能很顺畅的使用 Goland,这个时候我们可以考虑使用 VSCode 来代替 Go ...

  10. vscode二次开发_vscode 扩展开发从入门到颈椎病康复

    笔者从业以来,各路插件开发无算,而 vscode 把插件开发体验做到了极致.其开发体验,如沐春风,如丝般顺滑,经常写完了还想删掉再写一遍! vscode 扩展的内置脚手架细心且精致,一键生成后即可运行 ...

最新文章

  1. windows下如何正确使用Jconsole远程连接linux主机上的JVM
  2. Educational Codeforces Round 41(已补D,E)
  3. 直播开发项目发展下半场,转战AI直播开启全新模式
  4. button的图文设置
  5. LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)
  6. epp是什么意思_什么是1K/2K/3K注塑?
  7. 类创建几种java_Java创建对象的几种方式
  8. 从零开始搭建webpack+react开发环境
  9. 关于机械硬盘坏道(超时无响应、低速区域、掉盘)的修复尝试
  10. Facebook Google广告开户流程
  11. Java语言,基于TCP编写一个简单的Client/Server 网络应用程序。
  12. RPG Maker mv框架代码解析之窗口图片显示
  13. CF 1300.B——Assigning to Classes【思维】
  14. mysql日期对应java类型_Mysql与Java日期类型
  15. Java中,amp;amp;amp;amp;与amp;amp;,||与|的区别
  16. VMware 15 上Mac虚拟机不能全屏问题的解决
  17. Linux 视频剪辑与录音
  18. 转:腾讯4亿元投资KakaoTalk(韩国微信) 后者去年亏损7600万元
  19. html中轮播图跳转,纯 CSS 实现轮播图
  20. 当安全遇上AI 阿里聚安全算法挑战赛 队伍经验分享

热门文章

  1. failed to create symbolic link ‘/usr/bin/mysql’: File exists
  2. 目前最为出色的Wii模拟器,可以在电脑上运行绝大多数Wii游戏,对低端配置完美支持,绝对的神器
  3. 文件描述符 fd 究竟是什么?
  4. java基础面经--下
  5. 我在华为的十年(转)
  6. ORACLE学习笔记-CentOS 7.2 Oracle 12C R2安装部署
  7. 目标检测---教你利用yolov5训练自己的目标检测模型
  8. BZOJ 2429: [HAOI2006]聪明的猴子|最小生成树kruskal
  9. 快过年了,用五种不同的JS特效带你看烟花(包邮送元宇宙图书)
  10. 解决克隆RHEL7后网络无法启动问题