miaoyahan 发表于 2023-9-12 14:56:01

如何把自己的用户区ISP固件和自己的用户区AP固件进行合并供工厂量产使用

如何把自己的用户区ISP固件和自己的用户区AP固件进行合并供工厂量产使用

使用场景:工厂大批量生产;

问题现象:
使用STC-ISP下载isp固件后,还需要再打开另外一个exe程序下载app固件,量产效率有些低;


尝试过的方案(失败):
1、使用keil自带的srec_cat.exe把hex转成bin;
2、使用C写了个脚本,把isp和app的bin文件根据偏移地址进行合并;
3、把合并后的文件使用STC-ISP下载,实测后无法运行;

咨询方案:
有没有什么方式可以把isp和app固件合并成一个bin,然后使用STC-ISP一次性下载完成的方法?

神农鼎 发表于 2024-1-21 16:59:49



www.stcai.com/zxsj

先看看我们这些程序,里面有说明文档


乘风飞扬 发表于 2024-3-8 17:43:05

本帖最后由 乘风飞扬 于 2024-3-8 18:07 编辑

用4楼(地板)提供的转换工具,配合STC-ISP软件可以一次性烧录用户ISP程序与用户APP程序。

具体操作流程:
1. 使用STC-ISP软件通过"打开程序文件"打开 hex 文件,然后通过"保存数据"保存为 bin 文件。
将生成的用户ISP.hex文件保存为"boot.bin";将用户APP.hex文件保存为"app.bin"。


2. 将"boot.bin"与"app.bin"文件拷贝到4楼(地板)提供的转换工具解压后的文件夹里面,双击"release.bat"生成"all.bin"与"update.bin":


3. STC-ISP软件选择芯片型号,设置好IRC主频与EEPROM大小(60K)。
然后通过"打开程序文件"打开"boot.bin",通过"打开EEPROM文件"打开"update.bin";
或者通过"打开程序文件"打开"all.bin",STC-ISP软件会自动将用户ISP部分放到程序文件区域,将用户APP部分放到EEPROM文件区域。
最后点击"下载/编程"按钮将用户ISP程序与用户APP程序一起烧录到芯片,或者将用户程序下载到编程器以供脱机下载:


4. 需要更新用户APP时,通过1,2两步生成"update.bin",然后使用STC-ISP(用户版)软件打开"update.bin",
拉低一次P32口触发程序进入升级流程,然后点击"下载"按钮开始更新:

miaoyahan 发表于 2023-9-13 09:32:51

本帖最后由 miaoyahan 于 2023-9-13 09:39 编辑

解决方案已找到,原来官方的程序已经把处理好的文件展示出来的,也就是图片上箭头所指的地方。

以下文件合并的思路:
1、新建一个工厂烧录文件并填充0xFF,大小根据实际的FLASH调整;
2、把ISP固件写在0地址;
3、读取AP固件前3个字节,暂存起来;
4、读取AP固件偏移后的数据,并把前面读取的3个字节赋值给缓冲;
5、把处理好的缓冲写入到工厂烧录文件中;

8051启蒙者 发表于 2023-9-13 09:33:42


自己做个上位机,先调用isp,在调用那个exe

具体步骤见手册附录O和附录Z
STC8H系列 1T 8051中文数据手册链接
http://www.stcmcudata.com/STC8F-datasheet/STC8H.pdf








miaoyahan 发表于 2023-9-13 09:44:42

本帖最后由 miaoyahan 于 2023-9-13 09:50 编辑

使用C写了个脚本文件,可以使用keil自动调用。

脚本主要有以下作用:
1、把当前目录下的boot.bin和app.bin合并成量产文件all.bin;
2、生成远程ota升级用的update.bin,即去除app.bin偏移前的数据,可直接写入flash;
3、keil每次编译的时候自动调用脚本生成:工厂量产固件、远程OTA升级固件;

miaoyahan 发表于 2023-9-13 09:51:32

8051启蒙者 发表于 2023-9-13 09:33
自己做个上位机,先调用isp,在调用那个exe

具体步骤见手册附录O和附录Z


太复杂,写了个脚本,让keil每次编译的时候自动生成量产固件

capcomsnk 发表于 2023-9-16 12:17:08

miaoyahan 发表于 2023-9-13 09:51
太复杂,写了个脚本,让keil每次编译的时候自动生成量产固件

Create_Boot_App的程序是自己写的吗?

miaoyahan 发表于 2023-9-17 21:02:37

capcomsnk 发表于 2023-9-16 12:17
Create_Boot_App的程序是自己写的吗?

是的,使用c语言,用gcc编译的

hydefee 发表于 2024-1-21 16:43:31

miaoyahan 发表于 2023-9-17 21:02
是的,使用c语言,用gcc编译的

楼主您好!我用您这个程序合并两个文件,烧录后只要触发中断程序就乱了。STC8H8K64U。是不是烧录的时候有什么要注意的? 我感觉是中断引导错误了。烧的时候我选择的是64K,整个烧录。

aw8888 发表于 2024-2-7 16:36:11

用原生stc-isp制作工厂合并烧录固件的方法步骤,请大神指点是否正确
页: [1] 2 3
查看完整版本: 如何把自己的用户区ISP固件和自己的用户区AP固件进行合并供工厂量产使用