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

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

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:283
  • 最近打卡:2026-07-05 00:54:51

25

主题

235

回帖

2489

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:295
  • 最近打卡:2026-07-03 15:36:22
已绑定手机

22

主题

663

回帖

2480

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:283
  • 最近打卡:2026-07-05 00:54:51

25

主题

235

回帖

2489

积分

金牌会员

积分
2489
发表于 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
  • 打卡总天数:36
  • 最近打卡:2026-06-02 20:39:35

2

主题

119

回帖

1210

积分

金牌会员

积分
1210
发表于 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换成其他寄存器则没这问题,其他地方都不动
全程中断都是关闭的
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:283
  • 最近打卡:2026-07-05 00:54:51

25

主题

235

回帖

2489

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:712
  • 最近打卡:2026-07-03 09:07:06
已绑定手机

50

主题

2691

回帖

9338

积分

论坛元老

积分
9338
发表于 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
  • 打卡总天数:36
  • 最近打卡:2026-06-02 20:39:35

2

主题

119

回帖

1210

积分

金牌会员

积分
1210
发表于 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-7-5 09:52 , Processed in 0.081796 second(s), 75 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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