找回密码
 立即注册
查看: 58|回复: 9

STC32G12K128 OTA升级

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-05-09 09:37:00

4

主题

11

回帖

94

积分

注册会员

积分
94
发表于 3 天前 | 显示全部楼层 |阅读模式
使用官方例程来举例问个问题
假设实际需求如下

1、先刷入stc_uart_user_isp.hex
2、使用AiCube-ISP-v6.96V-plus下载用户程序Demo.hex
3、再使用StcIsp_User.exe上位机下载Demo.hex

目前测试发现,第二步刷机完了之后isp程序也就被刷掉了,是否有什么方案可以保留isp程序
目前第二步下载的时候参数如下

截图202605071900169260.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:793
  • 最近打卡:2026-05-10 00:00:42
已绑定手机

19

主题

3387

回帖

7235

积分

论坛元老

积分
7235
发表于 3 天前 | 显示全部楼层
把2个hex合并成1个hex
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:531
  • 最近打卡:2026-05-10 13:43:17
已绑定手机

108

主题

4377

回帖

9802

积分

荣誉版主

无情的代码机器

积分
9802
发表于 3 天前 | 显示全部楼层
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:675
  • 最近打卡:2026-05-09 10:16:13
已绑定手机

52

主题

2623

回帖

9131

积分

论坛元老

积分
9131
发表于 前天 09:06 | 显示全部楼层
截图202605080906113105.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:244
  • 最近打卡:2026-05-10 00:03:41
已绑定手机

23

主题

425

回帖

1917

积分

金牌会员

DIY玩家

积分
1917
发表于 前天 10:11 | 显示全部楼层
设置eeprom大小128k可能多了些

真正的学徒往往怀着大师的心
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-05-09 09:37:00

4

主题

11

回帖

94

积分

注册会员

积分
94
发表于 昨天 12:45 | 显示全部楼层
erci*** 发表于 2026-5-7 20:53
参考此贴:

一种简单合并ISP和APP程序文件的方法 - ISP下载/做自己的ISP 国芯人工智能技术交流网站 - AI32 ...

大佬,再咨询一下
目前空间分配如下
FF:1000H到FF:FFFFH---用户程序区A
FF:0FFFH到FF:FFFFH---的isp区B
FE:1000H到FE:FFFFH---用于缓存用户程序区C
FE:0FFFH到FE:FFFFH---用户程序存储数据区域D

OTA流程是:用户程序A把升级包写入C,然后进入isp,把C的数据拷贝到A

现在参考视频教程把用户程序和isp合并成同一个bin文件。使用AiCube-ISP-v6.96V-plus下载时。
eeprom大小应该设置多大?我设置64k之后可以正常启动程序,进入isp,但是擦除用户程序区A时数据擦除不了,(代码中做了擦除,但是还会进入原有的用户代码)

static void dfu_erase_app()
{
    u32 addr;

    printf("Erase APP...\r\n");
    addr = 0x11000;
    while (addr < 0x20000 )
    {
        iap_erase_page(addr);
        addr += 0x200;
    }

    printf("Erase Done\r\n");
}

点评

首先你这个空间分配仔细看有重叠 其次iap擦写操作相对地址0开始,读如果用的指针是绝对地址 仔细看下手册EEPROM章节,先做单元测试,基本函数功能逻辑对了再集成。 [attachimg]137247[/attachimg]  详情 回复 发表于 昨天 14:06
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:531
  • 最近打卡:2026-05-10 13:43:17
已绑定手机

108

主题

4377

回帖

9802

积分

荣誉版主

无情的代码机器

积分
9802
发表于 昨天 14:06 | 显示全部楼层
hkzxc*** 发表于 2026-5-9 12:45
大佬,再咨询一下
目前空间分配如下
FF:1000H到FF:FFFFH---用户程序区A

首先你这个空间分配仔细看有重叠

其次iap擦写操作相对地址0开始,读如果用的指针是绝对地址

仔细看下手册EEPROM章节,先做单元测试,基本函数功能逻辑对了再集成。

截图202605091406086103.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-05-09 09:37:00

4

主题

11

回帖

94

积分

注册会员

积分
94
发表于 昨天 14:37 | 显示全部楼层
erci*** 发表于 2026-5-9 14:06
首先你这个空间分配仔细看有重叠

其次iap擦写操作相对地址0开始,读如果用的指针是绝对地址

不好意思,写错了,实际是这样分配的  
FF:1000H到FF:FFFFH---用户程序区A
FF:0000H到FF:0FFFH---的isp区B
FE:1000H到FE:FFFFH---用于缓存用户程序区C
FE:0000H到FE:0FFFH---用户程序存储数据区域D
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-05-09 09:37:00

4

主题

11

回帖

94

积分

注册会员

积分
94
发表于 昨天 15:56 | 显示全部楼层
erci*** 发表于 2026-5-9 14:06
首先你这个空间分配仔细看有重叠

其次iap擦写操作相对地址0开始,读如果用的指针是绝对地址

不好意思,写错了,实际是这样分配的  
FF:1000H到FF:FFFFH---用户程序区A
FF:0000H到FF:0FFFH---的isp区B
FE:1000H到FE:FFFFH---用于缓存用户程序区C
FE:0000H到FE:0FFFH---用户程序存储数据区域D,这样的话,我下载时eprom设置64kb是没问题的是吧

点评

eprom设置: 一个是看你哪些区初次下载后不动 一个是看isp区放在哪 EEPROM由0xFE0000开始分配空间,isp区又在中间,当前这种分区模式,只能选128K。就是整片可擦写。 [attachimg]137259[/attachimg]  详情 回复 发表于 昨天 16:14
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:531
  • 最近打卡:2026-05-10 13:43:17
已绑定手机

108

主题

4377

回帖

9802

积分

荣誉版主

无情的代码机器

积分
9802
发表于 昨天 16:14 | 显示全部楼层
hkzxc*** 发表于 2026-5-9 15:56
不好意思,写错了,实际是这样分配的  
FF:1000H到FF:FFFFH---用户程序区A
FF:0000H到FF:0FFFH---的isp区 ...

eprom设置:
一个是看你哪些区初次下载后不动

一个是看isp区放在哪

EEPROM由0xFE0000开始分配空间,isp区又在中间,当前这种分区模式,只能选128K。就是整片可擦写。

截图202605091613575285.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-5-10 23:30 , Processed in 0.115206 second(s), 98 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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