[Share Experiences] 51单片机的烧写方法
Tofloor
poster avatar
五分皮
deepin
2021-12-10 11:09
Author

linux下用sdcc命令行下编译51的代码,直接用apt安装就行sudo apt install sdcc

编译好的代码只有个.ihx文件是烧写用的,还不能直接用,需要转换

网上的文章都是让转换为 .hex文件再转成 .bin文件进行烧写,我发现objcopy可以从ihx直接转换为bin文件进行烧写

用objcopy转换格式方法

objcopy -I ihex -O binary main.ihx main.bin

这样就得到了烧写用到的.bin格式文件。

当然,烧写用到的就是stcflash.py的脚本,这个网上到处有的下载,要使用它得有python,这个是有的,

还得把python-sireader装上:

sudo apt install python-sireader

然后就可以烧写了:

python stcflash.py main.bin

如果提示权限问题需要给USB端口加

sudo chmod 777 /dev/ttyUSB0

简单的应用应该是没有问题的,我试了流水灯。

用vscode编辑代码,然后在vscode里直接打开命令行敲命令编译还是很不错的。

最好是写个Makefile来管理,比如:

main.bin:main.c
	sdcc main.c
	objcopy -I ihex -O binary main.ihx main.bin

flash:
	python stcflash.py main.bin

clean:
	rm -f main.asm main.ihx main.lk main.lst main.map main.mem main.rel main.ret main.sym main.rst main.bin

这就简单了

编译: make

烧写:make flash (当然了,单片机需要重新上电)

清除垃圾: make clean

stcflash.py需要放到和main.c同一文件夹下。

我只试了stc的51单片机,不知道其他兼容51是否可用。

Reply Favorite View the author
All Replies
lcw0268
deepin
2021-12-11 01:15
#1
It has been deleted!
五分皮
deepin
2021-12-11 05:29
#2
lcw0268 It has been deleted!

星不了,已是落日黄昏了。

Reply View the author