找回密码
 立即注册
楼主: health

关于TFPU的使用方式,写入DMAIR后需跟随NOP指令。

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:189
  • 最近打卡:2026-04-02 19:41:58

25

主题

231

回帖

2091

积分

金牌会员

积分
2091
发表于 2026-1-5 16:02:27 | 显示全部楼层
最新测试结果是全部ai8051u和STC32G144都有这个问题。

之前误以为STC32G144没问题,是因为测试条件不充分。只有计算0.0 * n = 0.0时才不死机。
计算其它数值会死机。
ai8051u也是这样。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:257
  • 最近打卡:2026-04-01 08:14:32
已绑定手机

22

主题

631

回帖

2340

积分

金牌会员

积分
2340
发表于 2026-1-5 16:12:53 | 显示全部楼层
应该发个奖杯
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:189
  • 最近打卡:2026-04-02 19:41:58

25

主题

231

回帖

2091

积分

金牌会员

积分
2091
发表于 2026-1-5 20:13:56 | 显示全部楼层
使用MOV DRk,DRk保存结果不会死机。
使用MOV @DRk,WRj保存结果会死机。

  1. MOV      DR8,fc?040          ;参数fc
  2. MOV      DMAIR,#0x1E         ;DR4 = DR4 * DR0
  3. MOV      DR0,DR4
  4. MOV      @DR8+0x2,WR2        ;保存计算结果
  5. MOV      @DR8,WR0            
  6. CLR LED
  7. RET  
复制代码
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2026-03-30 12:09:14

2

主题

114

回帖

1192

积分

金牌会员

积分
1192
发表于 2026-1-5 22:45:19 | 显示全部楼层
hea*** 发表于 2026-1-5 20:13
使用MOV DRk,DRk保存结果不会死机。
使用MOV @DRk,WRj保存结果会死机。

把DR8换成其他DR寄存器试试。
用STC32G12K128时发现有个别芯片在执行带有@DR8或@WR10的指令时会有不正常现象,大约有两三千分之一的概率,当时怀疑是制作工艺的问题,因为换其他芯片又都正常,不正常的每个芯片表现又不一样,具体表现如下:
现象1:一芯片在执行MOV WR0,@WR10+K或MOV WR0,@DR8+K时会改变WR20的值,把WR10或DR8换成其他寄存器则没这问题,其他地方都不动
现象2:另一芯片在执行LJMP @WR10或EJMP @DR8时会死机或复位,复位时复位源为执行到无效的指令,也是把WR10或DR8换成其他寄存器则没这问题,其他地方都不动
全程中断都是关闭的
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:189
  • 最近打卡:2026-04-02 19:41:58

25

主题

231

回帖

2091

积分

金牌会员

积分
2091
发表于 2026-1-5 23:40:44 | 显示全部楼层
Easy*** 发表于 2026-1-5 22:45
把DR8换成其他DR寄存器试试。
用STC32G12K128时发现有个别芯片在执行带有@DR8或@WR10的指令时会有不正常 ...

试过了,表现是一样的。
DR8,DR12,DR16,DR20.....
不加NOP就死机,加了NOP不死机。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:653
  • 最近打卡:2026-04-02 10:07:54
已绑定手机

52

主题

2542

回帖

8922

积分

论坛元老

积分
8922
发表于 2026-1-6 09:46:00 | 显示全部楼层
Easy*** 发表于 2026-1-5 22:45
把DR8换成其他DR寄存器试试。
用STC32G12K128时发现有个别芯片在执行带有@DR8或@WR10的指令时会有不正常 ...

需要注意:DR8包含R8,R9,R10,R11;WR10包含R10,R11
其中R11为ACC,如果ACC改变会同样改变R11的内容。

截图202601060944368976.jpg


回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2026-03-30 12:09:14

2

主题

114

回帖

1192

积分

金牌会员

积分
1192
发表于 2026-1-6 12:11:54 | 显示全部楼层
乘风*** 发表于 2026-1-6 09:46
需要注意:DR8包含R8,R9,R10,R11;WR10包含R10,R11
其中R11为ACC,如果ACC改变会同样改变R11的内容。

这个肯定知道,测试程序也没多大,使用DR8或WR10时已经重新加载了且里面的值完全正确,并且测试程序换到其他芯片上完全没问题,只在那一个芯片上有问题
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-2 21:09 , Processed in 0.133539 second(s), 75 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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