不一样的STM32“脱机”烧录器

用sbc给stm32f746discovery烧写程序。sbc就是单板电脑的意思,也可以叫卡片电脑(神奇的arm小电脑),他是一个统称;常见的sbc有树莓派、friendly arm、香橙派、栗子派、firefly等。
硬件的接法很简单,就像上面那样,把stm32discovery的板载st-link v2的usb接口接到sbc的usb接口上就好了。
过去,我们如果要给stm32单片机烧写程序,需要用到桌面电脑,或者笔记本电脑。这些都是x86平台的,非常不方便。所以,我们今天要来个骚操作,diy一个小作品,用栗子派代替传统的x86电脑,把它做成一台小型的stm32烧录器。借助linux系统的ssh服务,间接地也实现了远程烧录的功能。
大家都知道,sbc本身其实就是台完整的电脑,可以跑linux,并且带usb接口。因此,硬件上的接口,绝对是没有问题的。
唯一缺少的是软件。今天我们要解决的就是这个问题。
首先,我们去官网下载一下st-link驱动的源码包,把源码放到栗子板子上。
源码存放的路径随意,如下图所示。
然后,在sbc本地通过gcc进行编译。因为是本地编译出给自己用的可执行文件,因此,所用的makefile文件是通用的,这里并不需要设置交叉编译工具链。
直接make就行(只要不是错误,出现警告一般都不用管)。
编译完成后,进入build目录,找到编译出来的程序文件。这里其实只有那个st-flash是我们需要的,其他都没啥用。
接下来就可以把这个叫st-flash的文件放到bin目录里去。
我的这个把程序往bin目录放的操作其实并不太符合规范,大家尽量还是不要随便把程序往bin目录里塞吧。我这里只是偷了个懒,演示一下原理;就不单独放到opt目录去了,也不放/usr/bin目录了。
小朋友们不要模仿哦,叔叔有练过哦。
把st-flash文件放进去以后,记得改一下权限,为所有用户添加可执行权限(编码755)。
好了,大功告成!开始我的表演吧!
下面,我要把一个stm32f746的固件文件烧写到该单片机上。(固件文件我预先已经在桌面电脑上编译好并上传到栗子派的home/test目录了)。
进入目录,并执行烧写,如下图顶部红色线条标记处所示。
一秒钟后,就出现上图底部那个烧写验证通过的提示了。
因为st-link v2烧写完是会自动重置的,我们回过头去看stm32f746discovery,会发现程序已经跑起来了。
看到了吧!这是个显示皮卡丘3d模型的小程序
本文演示了arm cortex a平台如何编译st-link驱动并为stm32系列单片机烧写固件。技术都是通用的,大伙儿不用拘泥于某种“派”,可以推广到任何带usb接口,并且可以跑linux的小电脑上。

硬件工程师谈EMC分类及电路设计
变压器短路事故分析
Fortinet专项领域产品解决方案(上)
英国指控华为设备存在重大缺陷,华为回应:“非常重视”
5G商用有望今年全面展开
不一样的STM32“脱机”烧录器
比特币和以太坊的应用和区别是什么
音箱采用无线充电技术,实用性将大大提升
中国布局新能源汽车开放,本土化才是关键
5G工业网关助力搭建污水预处理智能化信息应用平台
数字化才是未来动力电池产业发展的方向
开关电源啸叫的原因分析
卡萨帝思享荟:舞台的主角是用户
紫光赵伟国:2020年长江科技将进入世界存储器第一梯队
虚拟串口及其在串口转以太网中的应用
关于石墨烯在传感器中的应用与展望
如何理解最新FlexRIO收发器的“支持直接RF采样”能力?
统计最受欢迎的苹果手机,你们猜猜是哪一部?
机器人促进智能家居的发展
新一代人工智能突破和应用,推动制造业发展步入新的阶段