单片机程序下载一般最常用的有J-LINK(或各厂商自己的裸机下载器)下载、串口ISP下载。
串口ISP下载的方式方便快捷,只要一套串口工具,一个串口下载软件即可。
设计串口ISP下载有两个方面的工作要做,1.单片机bootloader程序编写;2.上位机下载软件编写,这里的上位机可以是电脑也可以是ARM处理器。
单片机bootloader负责接收串口数据,跳转程序。
上位机软件负责将可执行文件按协议发送给单片机。
上位机与单片机通信一般采用的是XMODEM协议,首先发送连接密码连接,然后发送开始命令,接着发送XMODEM数据包,一般取128byte为一帧数据,最后一帧不满128byte的以0x1A来填充。
传输的数据可以加密也可以不加密,如果加密则上位机和单片机要采用同一套加密和解密的算法。一般的加密算法有DES算法、PC1算法、AES算法等等。
需要注意的是一般的单片机程序编译出来是.hex文件的,这个文件里面还包含了单片机的型号、flash地址等信息,而需要烧到单片机flash的是二进制的机器码,所以上位机软件还要做的工作是将.hex文件转换成.bin的二进制机器码文件。