找回密码
 立即注册
查看: 1036|回复: 18

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

[复制链接]
  • TA的每日心情
    开心
    前天 10:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    22

    回帖

    52

    积分

    注册会员

    积分
    52
    发表于 2023-9-12 14:56:01 | 显示全部楼层 |阅读模式
    如何把自己的用户区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一次性下载完成的方法?
    回复 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9235

    回帖

    1万

    积分

    管理员

    积分
    13946
    发表于 2024-1-21 16:59:49 | 显示全部楼层
    截图202401211659203273.jpg

    www.stcai.com/zxsj

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


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 127 天

    [LV.7]常住居民III

    26

    主题

    1281

    回帖

    3985

    积分

    论坛元老

    积分
    3985
    发表于 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"。
    截图202403081726367575.jpg

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

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

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

    使用道具 举报

  • TA的每日心情
    开心
    前天 10:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    22

    回帖

    52

    积分

    注册会员

    积分
    52
     楼主| 发表于 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、把处理好的缓冲写入到工厂烧录文件中;
    截图202309130927055354.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    擦汗
    7 小时前
  • 签到天数: 84 天

    [LV.6]常住居民II

    14

    主题

    608

    回帖

    2275

    积分

    超级版主

    积分
    2275
    QQ
    发表于 2023-9-13 09:33:42 | 显示全部楼层

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

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

    截图202309130930556427.jpg


    截图202309130931137384.jpg



    www.STCAI.com
    微信&手机:18106296591
    QQ:3133693787
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 10:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    22

    回帖

    52

    积分

    注册会员

    积分
    52
     楼主| 发表于 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升级固件;
    截图202309130944205203.jpg
    截图202309130950319102.jpg

    conver.rar

    21.62 KB, 下载次数: 53

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 10:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    22

    回帖

    52

    积分

    注册会员

    积分
    52
     楼主| 发表于 2023-9-13 09:51:32 | 显示全部楼层
    8051启蒙者 发表于 2023-9-13 09:33
    自己做个上位机,先调用isp,在调用那个exe

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

    太复杂,写了个脚本,让keil每次编译的时候自动生成量产固件
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-18 12:51
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    11

    主题

    14

    回帖

    137

    积分

    注册会员

    积分
    137
    发表于 2023-9-16 12:17:08 | 显示全部楼层
    miaoyahan 发表于 2023-9-13 09:51
    太复杂,写了个脚本,让keil每次编译的时候自动生成量产固件

    Create_Boot_App的程序是自己写的吗?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 10:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    22

    回帖

    52

    积分

    注册会员

    积分
    52
     楼主| 发表于 2023-9-17 21:02:37 | 显示全部楼层
    capcomsnk 发表于 2023-9-16 12:17
    Create_Boot_App的程序是自己写的吗?

    是的,使用c语言,用gcc编译的
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    回帖

    4

    积分

    新手上路

    积分
    4
    发表于 2024-1-21 16:43:31 | 显示全部楼层
    miaoyahan 发表于 2023-9-17 21:02
    是的,使用c语言,用gcc编译的

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-7 14:05
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    2

    回帖

    10

    积分

    新手上路

    积分
    10
    发表于 2024-2-7 16:36:11 | 显示全部楼层
    用原生stc-isp制作工厂合并烧录固件的方法步骤,请大神指点是否正确

    STC在线升级isp固件和ap固件合并烧写.pdf

    1.45 MB, 下载次数: 47

    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-4-29 16:51 , Processed in 0.076488 second(s), 75 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表