SDCC, 51单片机开发工具探索-摆脱keil
背景 不管是51内核单片机还是arm内核的单片机,相信很多同学在开发的时候首先接触的就是keil。没有用过其他IDE的同学可能没有感觉,但是对于使用过IDEA或者VSCODE开发的同学就会对keil的使用感觉很不舒服:
[*]老旧的窗口形式;
[*]奇怪的工程目录;
[*]繁琐的配置;
[*]没有高亮;
[*]关键它不是免费的,虽然最近出了社区板,非盈利可以免费使用。但还是保留了代码量的限制。
以上这些问题也有相应的解决方案了,比如VSCode插件EIDE就可以使用VSCode编辑代码,然后配置插件关联到已经安装的keil上,类似的方案还有Keil uVision Assistant 。 但是当家里只有一台mac电脑时,这条路就因为keil不支持mac而不得不放弃。归根结底是编译器的问题,所以就要解决根本问题。带着问题去寻找答案。皇天不负有心人,终于还是找到了。其中编辑器就使用风靡全球的vscode。重点就是编译器,使用SDCC(Small Device C Compiler),它的主要优点就是开源,跨平台,缺点就是使用的人少,参考资料不多; 只有这两个还是不能完成开发任务的。我们还需要一个构建打包的工具,比如CMAKE大家用的比较多,但是也需要进行一系列繁琐的配置。我这里选择的是platformIO简称PIO,而且它还有VSCODE的插件。现在很多开源项目都是使用PIO开发的。 至此,摆脱keil开发51单片机的开发环境需要的内容基本就全了。这里我给他们简称VPS,V-VSCODE; P-PIO; S-SDCC;环境搭建
VSCODE 安装 这个就是安装一个软件,很简单,懒得说了。有的可能会按照中文支持,感觉非必要。PIO 安装 在写这篇文章的时候我已经用了一段时间的VPS了。环境也已经安装搭建好了,简单介绍一下步骤:
[*]step1:打开安装好的VSCODE;
[*]step2:点击左边的第四个按钮,搜索platformio,点击安装;
[*]step3:安装成功后在左侧会出现小蚂蚁图标;
[*]step4:安装platform,这里的platform可以理解成不同单片机平台;点击小蚂蚁 -> 点击Home -> 点击Platforms -> 搜索 Intel 找到Intel MCS-51 安装,这里可能会花费一些时间来安装相关的工具链,其中就包括sdcc
SDCC 安装已经在PIO 中安装了,可以到以下目录查看PIO下已经安装的工具链:C:\Users\Administrator.platformio\packagesDEMO 演示:
[*]step1:打开vscode, 点击小蚂蚁打开pio,这里启动可能有点慢,因为要加载已经安装的平台;
[*]step2:点击home,新建工程,填写工程名称,选择Board,这里填写STC,就可以显示所有已经安装的可以使用的Board;选择工程存放目录,点击创建。
[*]step3:简单介绍一下pio的工程目录;
[*]step4:编写代码,在src目录下新建文件 main.c 代码如下:
[*]#include <compiler.h>
SFR(P0, 0X80);
void Delay500ms() //@11.0592MHz
{
unsigned char __data i, j, k;
NOP();
NOP();
i = 22;
j = 3;
k = 227;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main(void)
{
// STC89C52单片机的P0口输出高电平点亮LED
P0 = 0XF0;
while (1)
{
Delay500ms();
P0 = 0X00;
Delay500ms();
P0 = 0XFF;
}
}
[*]step5:编译,生成的hex 文件在 ./pio/build/STC89C52RC 目录下
[*]step6:烧录;
效果演示:
最后:
仅仅是搭建环境是开启VPS开发51单片机的第一步,正如前文说的sdcc 是一个开源的跨平台的编译器,这是它的优点,但是关于它的资料太少了。在使用的过程中也遇到了很多问题,这些就放在后边跟大家分享。
这有 SDCC 格式头文件,IAR C++ 头文件
深圳国芯人工智能有限公司-工具软件 (stcai.com)
大家先 :
【VSCode + SDCC】;
【VSCode , IAR C++ for 51】;
【VSCode + KEIL C51】;
【VSCode + KEIL C251】
后面 51, 我们将例程翻一遍 SDCC / IAR C++, 让大家熟悉下 自由的空气
神农鼎 发表于 2023-12-31 14:55
这有 SDCC 格式头文件,IAR C++ 头文件
{:4_250:} {:4_250:} 妙啊这个,board有几种,STC8h8k、32g12k128都有吧 PIO 以前安装过, 安装时间太久了,不知道现在会不会这样。 wangxiangtan 发表于 2024-1-3 08:27
妙啊这个,board有几种,STC8h8k、32g12k128都有吧
stc32 是80251 sdcc只能支持8051. 应该是不行。 其他的stc的8051几乎全都支持。 也可以自定义 这个有时候新建工程会报错, 比如说有些单片机的型号含有特殊字符 我上次新建stc89c51rc+都失败了 赞,有机会试一下 {:4_167:}KEIL用习惯了,用其他的得适应适应
页:
[1]
2