可以自己写个bootload程序
我的策略是这样的:
BL把自己模拟一个U盘,开辟一个空间用来保存文件。
USB断开连接后,去检查是否存在HEX文件,文件是否合法。
然后把文件内容写入Flash,删掉原文件。
从程序区启动
----------------------
HEX文件是有格式的,不能直接写入Flash,还需要解码。如果传的是BIN文件就简单了。
你说的这种方式是ARM推的MBED开发方式。安装驱动后,STM32板子会被识别成U盘,在MBED在线开发后,将生成的文件放入U盘,然后就运行了。
还是检测是否有hex文件,然后加载这个文件到程序区。
这个只是一种烧录方式,ST 的官方的板子,板载 st link,是 st link 虚拟的一个U盘,你把 hex 文件复制到u盘上,相当于你把 hex 文件给了 st link,st link 用这个文件又去烧录单片机,跟 keil 直接编译烧录是一眼的,keil 是先编译出文件,然后也是用 st link 把这个文件烧录进去。
定位主要靠 hex 文件,hex 文件自带定位信息,可以百度 hex 文件就知道了
bin 文件就不行,bin 只有代码信息,没有定位信息
就是通过bootload虚拟成u盘
开机时自动加载程序到内存里