CH554T 安全寄存器读写问题

我在CH554T上写代码发现一个问题,下面的三条语句


SAFEMOD    = 0x55;

SAFEMOD    = 0xAA;

GLOBALCFG |= (1<


如果通过编译器放在0到10K的代码地址空间,可用正常控制mcu复位。

但是通过编译器放到0x3400到0x3800的代码空间,那么执行不会成功的。


我想问一下,CH554T是不是在硬件上控制SAFEMOD这个寄存器,只有低端的地址代码才能正常操作。


因为我在实现一个IAP的代码,需要把IAP放在0x3400到0x3800的地址上,目前整个代码功能都已经好了,就是发现 SAFEMOD    = 0x55; SAFEMOD    = 0xAA;执行后,对有安全要求的寄存器都无法操作。


请问CH554T是否存在这样的问题?



                                     

我在CH554T上写代码发现一个问题,下面的三条语句


SAFEMOD    = 0x55;

SAFEMOD    = 0xAA;

GLOBALCFG |= (1<


如果通过编译器放在0到10K的代码地址空间,可用正常控制mcu复位。

但是通过编译器放到0x3400到0x3800的代码空间,那么执行不会成功的。


我想问一下,CH554T是不是在硬件上控制SAFEMOD这个寄存器,只有低端的地址代码才能正常操作。


因为我在实现一个IAP的代码,需要把IAP放在0x3400到0x3800的地址上,目前整个代码功能都已经好了,就是发现 SAFEMOD    = 0x55; SAFEMOD    = 0xAA;执行后,对有安全要求的寄存器都无法操作。


请问CH554T是否存在这样的问题?



           

没有这样的问题,软复位没有这样的设置。

1.读GLOBAL_CFG ,看写入后的数据是什么,是不是自己写错标志位了、

SAFE_MOD = 0x55;

SAFE_MOD = 0xAA;

GLOBAL_CFG |= bSW_RESET;

//SAFE_MOD = 0x00;

2.检查代码是否超出37FFH,超出会出现异常的。

3.如果还是不能解决,可以讲相关代码发送至rz@wch.cn。帮你查看一下


只有登录才能回复,可以选择微信账号登录