找回密码
 立即注册
查看: 135|回复: 6

关于STC32G144K246芯片用户系统区写保护问题

[复制链接]

12

主题

29

回帖

350

积分

中级会员

积分
350
发表于 2026-10-27 10:25:42 | 显示全部楼层 |阅读模式

这里说“用户程序区无法对用户系统区进行读写操作”,但我在测试EEPROM写入的时候失误把地址写到用户系统区竟然成功改写了,导致用户系统区代码被破坏,无法正常启动。

我的理解是用户APP区即使把地址指向了用户系统区,在执行IAP写入的时候,芯片是否可以对地址进行保护,防止误删系统区代码

截图202610271020198499.jpg
知识改变命运,技能成就梦想!
回复

使用道具 举报 送花

已绑定手机

2

主题

153

回帖

466

积分

中级会员

积分
466
发表于 2026-10-27 11:21:08 | 显示全部楼层
用户程序写不了“用户系统区”,你是不是地址理解错了。
你设置eeprom多大,用户系统区多大? 写的代码发上来看看。
回复

使用道具 举报 送花

已绑定手机

20

主题

1456

回帖

4428

积分

论坛元老

积分
4428
发表于 2026-10-27 17:07:34 | 显示全部楼层
在用户区读取一下系统区的代码,打印出来对比刷入系统APP的hex就能验证了吧
回复

使用道具 举报 送花

12

主题

29

回帖

350

积分

中级会员

积分
350
 楼主| 发表于 3 天前 | 显示全部楼层
jrc*** 发表于 2026-10-27 11:21
用户程序写不了“用户系统区”,你是不是地址理解错了。
你设置eeprom多大,用户系统区多大? 写的代码发上 ...

ulong addr = 0;//地址0
               
                IAP_CONTR |= 0x80;
                IAP_TPS = IAP_WT;       

                IAP_CMD = 3;          //擦除
                IAP_ADDRL = addr;      
                IAP_ADDRH = addr >> 8;
                IAP_ADDRE = addr >> 16;
                IAP_DATA = 0x00;      
                IAP_TRIG = 0x5a;      
                IAP_TRIG = 0xa5;   

向地址0执行擦除会导致用户系统区损坏,下次上电就不运行了
知识改变命运,技能成就梦想!
回复

使用道具 举报 送花

12

主题

29

回帖

350

积分

中级会员

积分
350
 楼主| 发表于 3 天前 | 显示全部楼层
29*** 发表于 2026-11-4 09:19
ulong addr = 0;//地址0
               
                IAP_CONTR |= 0x80;

当然这是个错误的地址,真实的读写EEPROM要用绝对地址;只是无意间测试写到了0才发现原来用户代码区也是可以破坏系统区的代码
知识改变命运,技能成就梦想!
回复

使用道具 举报 送花

已绑定手机

2

主题

153

回帖

466

积分

中级会员

积分
466
发表于 3 天前 | 显示全部楼层
29*** 发表于 2026-11-4 09:19
ulong addr = 0;//地址0
               
                IAP_CONTR |= 0x80;

你在IAP擦写执行后,读取IAP_CONTR中的CMD_FAIL看是否成功。
或者写完后,再读取一下数据,看看是否变了。


回复

使用道具 举报 送花

12

主题

29

回帖

350

积分

中级会员

积分
350
 楼主| 发表于 3 天前 | 显示全部楼层
jrc*** 发表于 2026-11-4 10:33
你在IAP擦写执行后,读取IAP_CONTR中的CMD_FAIL看是否成功。
或者写完后,再读取一下数据,看看是否变了。 ...

擦除操作成功
截图202611041416429314.jpg
截图202611041417132745.jpg
知识改变命运,技能成就梦想!
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-7 10:40 , Processed in 0.072322 second(s), 72 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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