1、芯片制造商一般会预留几种程序烧录的方式,其中比较常见的是串口。
2、不同芯片厂商的的烧录方式是不同的,比如STM32需要设置BOOT0和BOOT1引脚设置当前烧录的程序位置。
3、虽然不同的芯片厂商都可能使用串口下载程序,但是他们的烧录方式和命令不一定相同,主要是看芯片制造商的文档。
4、程序烧录只不过是数据流的交互,不需要使用特殊的导线,只要能导电就行。当然,如果是远距离传输,需要根据串口的阻抗进行阻抗匹配。
5、计算机输出的串口为RS232电平,单片机一般为TTL电平,需要使用电平转换器,或者使用USB转串口的硬件工具。
6、不同封装的STM32芯片引脚定义不同,接线时使用USART1引脚,具体的引脚定义在STM32的数据手册里面有。
7、HEX文件只不过是记录了程序的机器码信息的文件,是二进制文件的文本格式,烧录工具在载入这种文件时,需要进行解析,才知道那一部分的二进制代码需要写入哪一个地址(注意,代码烧录不能随便选择地址,需要由HEX文件上的地址决定。如果需要将代码转移到别的地址空间,需要对程序编译参数进行设置,然后重新编译)。
我们常用的连接方式:232转TTL电平,转换后的TX接STM32的RX,转换后的RX接STM32的TX。将BOOT0和BOOT1设置好(具体设置忘记了,请参照STM32的参考手册),接下来的通信就是看烧录工具了。
具体烧录工具的协议没有研究过,一般是读芯片ID,令芯片进入Bootloader,然后将地址和数据传输给芯片的BIOS,芯片烧录。