|
本帖最后由 spirndai 于 2019-9-6 10:14 编辑
在windows下可能很多人开发C51程序在用keil,不过网上一堆破解/网盘下载之类的让人有点担心,谁知道里面是不是塞了私货。
有一个放心的选择,就是全部在linux下开发,全面的开源软件,这样总可以放心了吧。
前提,要有一个linux环境,里面支持docker。为什么要docker呢?这样装得比较干净,不想用的时候docker rm就直接干掉了,对于正在跑的linux毫无影响。怎么安装docker这里就不说了,不懂的建议先上网自学一些docker的基本操作指令。
首先,我们先做一个docker镜像:
- from debian:buster-slim
- RUN echo "deb http://mirrors.163.com/debian/ buster main" > /etc/apt/sources.list
- RUN apt update && apt install -y apt-transport-https ca-certificates vim procps net-tools python3-pip sdcc git minicom
- RUN apt install -y codeblocks
- COPY stc15w.h /usr/share/sdcc/include/
- RUN pip3 install stcgal
复制代码 把附件里面的stc15w.zip解压放在同一个目录下,现在可以开始构建docker镜像了,要等一阵子
- docker build . -t stc15:v0.9
复制代码 假设你的stc15 usb设备插入电脑被linux认为是 /dev/ttyUSB0,接下来
- docker run -it --device /dev/ttyUSB0:/dev/ttyUSB0 -v /tmp:/tmp -v /opt:/opt --rm --network host -e DISPLAY=$DISPLAY -v ~/.Xauthority:/root/.Xauthority stc15:v0.9 /bin/bash
复制代码 如果不是/dev/ttyUSB0,要改变上面的相关参数,现在可以运行开发环境了。
首次运行会问缺省是哪个编译器,选Small Device C Compiler,点Set as default, OK
接着新建一个mcs51项目,一定要选择在/opt下,否则会丢失。
codeblocks缺省的后缀名是.o,和sdcc的.rel冲突,要改
改变后关掉codeblocks,再启动,打开刚才的项目,用build 菜单选build 就可以编译成功。
关掉codeblocks,回到命令行界面看,可以看到test.ihx已经生成
- ls -l /opt/test/bin/Debug/
- total 80
- -rw-r--r-- 1 root root 12380 Sep 4 07:54 test.cdb
- -rw-r--r-- 1 root root 378 Sep 4 07:54 test.hex
- -rw-r--r-- 1 root root 354 Sep 4 07:54 test.ihx
- -rw-r--r-- 1 root root 306 Sep 4 07:54 test.lk
- -rw-r--r-- 1 root root 44540 Sep 4 07:54 test.map
- -rw-r--r-- 1 root root 1163 Sep 4 07:54 test.mem
- -rw-r--r-- 1 root root 2833 Sep 4 07:54 test.omf
复制代码 生成bin文件
烧录进单片机,stcgal只用于烧录stc系列文件,慢速情况下烧录成功率会高一些,这里用1200波特率。
- stcgal -b 1200 -l 1200 test.bin
复制代码 当然也可以把bin文件拷贝到windows下烧录,速度会快一些。
自此大功告成!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|