bin包制作
bin文件前添加16个字节,只用到了前4个字节,用于存放bin文件长度,如何添加这16个字节呢,见下图
下面就是输入的16个字符,我输入的是a
下图长度就填充好了
使用ESP官方工具把这个bin文件烧写到你代码定义的区域就好了,远程升级就是把8266升级文件和单片机升级文件打包到一个文件发布就好了,注意偏移就好了,单片机的代码一般不是太大,stc的代码顶多64k,8266起码有400k空间给单片机的bin使用。
stm的isp比stc简单些,配置项少些。原理都是一样。
关于8266如何读取bin文件然后烧写到单片机下面介绍,
大致思路就是,先读flash固定位置的数据,也就是bin文件前16个字节,获取到bin文件大小,然后开始读写,直到isp完成。
上述操作有点,繁琐直接使用python脚本好了
file_name = “stm.bin”
def Big_little_endian():
binfile = open(file_name, ‘rb’) #打开二进制文件
size = os.path.getsize(file_name) #获得文件大小
data = binfile.read()
binfile = open(file_name,‘wb’) #打开二进制文件
a = struct.pack(’>IIII’,size,size,size,size) #四字节存入,按大端存储
binfile.write(a)
binfile.write(data)
binfile.close()
if name == ‘main’:
#WriteFile()
#ReadFile()
Big_little_endian()