vscode 使用 SDCC 开发 STM8
本文介绍如何在 EIDE 上将 STM8 标准库移植到 SDCC 工具链,并完成测试
以 STM8S105K4T6 为例,其他的库过程大都相同
1. 创建 STM8 项目
- 打开 EIDE, 新建项目,类型选择 C51,注意:路径里最好不要有中文空格,在编译器里会出错
- 切换工具链至 SDCC, 打开编译选项,设置 device 为 stm8
- 设置宏,本项目为:STM8S105,USE_STDPERIPH_DRIVER
- 新建一个目录,将复制外设库到里面,并去除掉芯片不支持的外设源文件
2. 移植过程:主要针对 stm8s.h, 其他文件基本不用动
移植的过程并不复杂,就是参照其他编译器的定义,查询 SDCC 手册,写出适合 SDCC 的定义
注:以下对比图,左图为原文件,右图为修改后的
- 定义编译器宏:查阅 SDCC 手册,SDCC 编译器定义的宏为: __SDCC
- 重定义关键字,SDCC 手册中不支持的就设置为空,编译时将会忽略这些关键字
- 重定义内嵌汇编指令,SDCC 格式为 __asm__(x)
- 重定义 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相关推荐
- 【VSCode PlatformIO】开发STC单片机头文件和常用外设驱动头文件获取方式
[VSCode PlatformIO]开发STC单片机头文件和常用外设驱动头文件获取方式 相关篇<[VSCode PlatformIO] STC单片机开发头文件制作与添加方法> 相关篇&l ...
- VSCode打造成为开发神器-插件篇
VSCode打造成为开发神器-插件篇 1. 编程语言类 下面的几个插件根据情况安装. C/C++ Dart dart-import Go Go Doc ** Python** 2. 代码风格类 Bea ...
- vscode中装js解释器_h5学习记录(1)--vscode配置js开发环境
文笔不是很好,第一次写东西,主要为了记录h5的学习过程.今天记录的是vscode配置js开发环境. 什么是VSCode Visual Studio Code (简称VS Code/VSC) 是一款于2 ...
- win10+vscode部署java开发环境
目录 Java开发插件配置: 调试: 快捷键: 启动配置文件launch.json: 启动配置说明: Launch: Attach: User Setting: 遇到的问题: 参考: Java开发插件 ...
- macos安装vscode_如何使用VSCode进行PostgreSQL开发及调试
Visual Studio Code (VSCode)是一个轻量级但功能强大的源代码编辑器,可在桌面上运行,适用于Windows,macOS和Linux. 它内置了对JavaScript,TypeSc ...
- 使用Vscode进行Python开发环境配置
Vscode是是一个强大的跨平台工具,我自己电脑是mac,公司电脑是win而且是内部环境,导致公司安装软件很费劲.好在vscode许多插件能直接离线安装,省去了很多麻烦. 很多人学习python,不知 ...
- 用VScode配置Python开发环境引用
引用:用VScode配置Python开发环境 - 简书 前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生 ...
- VSCode配置JAVA开发环境,java初级面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- vscode 文件夹中查找_真香!使用 VSCode 进行远程开发调试
对于大型的 Golang 项目往往我都会使用 Goland 这样的专业 IDE,但是由于我本地开发环境硬件资源偏低,不能很顺畅的使用 Goland,这个时候我们可以考虑使用 VSCode 来代替 Go ...
- vscode二次开发_vscode 扩展开发从入门到颈椎病康复
笔者从业以来,各路插件开发无算,而 vscode 把插件开发体验做到了极致.其开发体验,如沐春风,如丝般顺滑,经常写完了还想删掉再写一遍! vscode 扩展的内置脚手架细心且精致,一键生成后即可运行 ...
最新文章
- windows下如何正确使用Jconsole远程连接linux主机上的JVM
- Educational Codeforces Round 41(已补D,E)
- 直播开发项目发展下半场,转战AI直播开启全新模式
- button的图文设置
- LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)
- epp是什么意思_什么是1K/2K/3K注塑?
- 类创建几种java_Java创建对象的几种方式
- 从零开始搭建webpack+react开发环境
- 关于机械硬盘坏道(超时无响应、低速区域、掉盘)的修复尝试
- Facebook Google广告开户流程
- Java语言,基于TCP编写一个简单的Client/Server 网络应用程序。
- RPG Maker mv框架代码解析之窗口图片显示
- CF 1300.B——Assigning to Classes【思维】
- mysql日期对应java类型_Mysql与Java日期类型
- Java中,amp;amp;amp;amp;与amp;amp;,||与|的区别
- VMware 15 上Mac虚拟机不能全屏问题的解决
- Linux 视频剪辑与录音
- 转:腾讯4亿元投资KakaoTalk(韩国微信) 后者去年亏损7600万元
- html中轮播图跳转,纯 CSS 实现轮播图
- 当安全遇上AI 阿里聚安全算法挑战赛 队伍经验分享
热门文章
- failed to create symbolic link ‘/usr/bin/mysql’: File exists
- 目前最为出色的Wii模拟器,可以在电脑上运行绝大多数Wii游戏,对低端配置完美支持,绝对的神器
- 文件描述符 fd 究竟是什么?
- java基础面经--下
- 我在华为的十年(转)
- ORACLE学习笔记-CentOS 7.2 Oracle 12C R2安装部署
- 目标检测---教你利用yolov5训练自己的目标检测模型
- BZOJ 2429: [HAOI2006]聪明的猴子|最小生成树kruskal
- 快过年了,用五种不同的JS特效带你看烟花(包邮送元宇宙图书)
- 解决克隆RHEL7后网络无法启动问题