您尚未登录。

楼主 #1 2020-08-29 11:24:56

echo
会员
注册时间: 2020-04-16
已发帖子: 358
积分: 363.5

刚刚踩的新唐N76E003新鲜坑

摘要:N76E003的TA保护机制在尺寸优化下开9级优化必然出bug

N76E003的寄存器的TA保护机制造成代码中有很多的

TA=0xAA;
TA=0x55;
REG=VAL;

这样的代码,如果选择尺寸优化Favor size,然后优化Level选择:9:Common Block Subroutines,优化器会将对TA的连续0xAA,0x55赋值优化成一个函数多次调用,导致TA保护寄存器写失败。

优化器也很委屈:新唐你真不地道,光给我挖坑了。

如果和TI的EALLOW保护机制一样,TA=0xAA关闭保护,TA=0x55打开保护就行了。或者每次写入的数据不是固定的0xAA和0x55,也可以避免给优化器挖坑。

不过这些都要重新流片,实现起来不现实,只能不用9级优化了。

离线

#2 2020-08-29 11:29:19

smartcar
会员
注册时间: 2018-02-19
已发帖子: 735
积分: 735

Re: 刚刚踩的新唐N76E003新鲜坑

这几行代码可以用C嵌入汇编,这样不会被优化掉。

离线

#3 2023-06-28 12:22:01

fxyc87
会员
注册时间: 2023-03-15
已发帖子: 26
积分: 37

Re: 刚刚踩的新唐N76E003新鲜坑

没加【volatile】关键字么?

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn