找回密码
 立即注册
查看: 376|回复: 0

MacOS 如何使用SDCC编译烧录51程序(完整版)

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-04-15 09:09:55

12

主题

28

回帖

246

积分

中级会员

积分
246
发表于 2024-12-27 10:34:17 | 显示全部楼层 |阅读模式

MacOS 如何使用SDCC编译烧录51程序(完整版)

(以下内容均运行在MacOS原生系统,未使用vm虚拟机。)

设备为2022air,m2芯片。


安装homebrew:

这里使用的是gitee镜像源。

打开终端输入:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

如果终端输入后,显示的是乱码,则说明终端编码没有使用unicode(utf-8)格式,按住【command+,】 打开终端设置,点击描述文件,将下方的文本编码选择utf-8格式即可。

按照提示依次操作。

用brew安装sdcc:

安装好homebrew后,在终端使用brew安装sdcc。

brew install sdcc

安装完成后查看sdcc版本信息

sdcc -v

出现以下内容说明安装成功。

SDCC : mcs51/z80/z180/r2k/r2ka/r3ka/sm83/tlcs90/ez80_z80/z80n/r800/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8/pdk13/pdk14/pdk15/mos6502/mos65c02 TD- 4.4.0 #14620 (Mac OS X ppc)
published under GNU General Public License (GPL)

安装CH34x驱动:

点击CH34x下载进入官网下载mac os版本驱动。

CH341下载链接: https://www.wch.cn/download/CH341SER_MAC_ZIP.html

打开zip后,先点dmg,再点pkg。

窗口弹出succeed就成功了。
安装完成后,打开终端,输入:

ls /dev/tty.wchusbser*

查看端口,出现以下内容,代表端口正常
/dev/tty.wchusbserial1110 1110是串口号。

如果出现 zsh: no matches found: /dev/tty.wchusbser*

不要慌,是因为你没有插上ch34x数据线,插上后再次输入 ls /dev/tty.wchusbser* 查看端口信息即可。

安装stcgal闪存烧录

提前下载好python3系列,推荐3.11万金油版本,当然也可以使用3.13最新版,不重要。

拥有python3后,使用终端下载stcgal

stcgal pip3 install stcgal

如果终端下载失败,那么就手动下载

点击stcgal下载前往github下载zip文件,打开后把文件拖动至桌面。

stcgal下载链接:https://github.com/grigorig/stcgal

打开终端输入

cd desktop
cd stcgal-master

让终端选择到解压好后的文件夹。
然后用终端运行其中的python文件。

/setup.py build
sudo ./setup.py install

就安装好stcgal了。

输入 stcgal -v可以查看版本信息。

这时候环境就搭建完成了,用vs code写入代码(默认普中A2开发板)

#include <8051.h>

void main()
{
P2 = 0x00; //led全部点亮
}

保存为main.c文件

然后打开终端(可以直接在vscode终端操作)输入

sdcc main.c

开始编译.c文件为.ihx文件。
可以选择使用cat命令在终端查看各个文件信息,例如 cat main.mem cat main.asm。这里插一嘴,如果查看.asm或.c文件内容发现注释乱码,那就将unicode(utf-8)格式换成GB2312 即可。

然后输入

stcgal -P stc89 -p /dev/tty.usbserial-刚才的串口号 main.ihx

串口号每个人可能不一样,例如我的是1110,那么我终端输入的指令就是:

stcgal -P stc89 -p /dev/tty.usbserial-1110 main.ihx

如果提示

[notice] A new release of pip is available: 24.0 -> 24.3.1
[notice] To update, run: pip3 install --upgrade pip

说明缺少upgrade库,那就在终端输入

pip3 install --upgrade pip

安装好upgrade库后,再次输入

stcgal -P stc89 -p /dev/tty.usbserial-串口号 main.ihx

即可开始烧录.ihx文件。

(第一部分-p是选择mcu型号,第二部分-p是选择串口,第三部分是选择烧录的文件。)

出现

Waiting for MCU, please cycle power:

则需要重新上电,进行冷启动烧录。

如此就结束了我们整个流程,理工科除非是纯软,否则我还是不推荐MacOS。


在此再插一嘴,如果你的团队需要使用STC-ISP.exe烧录,但出现ihx文件打不开,报错之类的现象。可以使用SDCC自带的 packihx或者 makebin指令进行格式转换。

packihx main.ihx > main.hex不覆盖的前提下,新成成hex文件。
makebin main.hex > main.bin不覆盖的前提下,新生成bin文件。

综上所述,如有错误还请指正。

(ps:配置环境配置的我好辛苦啊??,没有一个包容度深的教程,纯靠自己踩坑得出的经验值 XP+1 HP-1,因为很少人用mac开发,就算有也是用 vs code中的Platform IO扩展开发,故此出文帮助部分少数比较喜欢SDCC这种简洁爱好的强迫症人群。)

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
LED点亮世界🇨🇳
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 21:49 , Processed in 0.109849 second(s), 47 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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