找回密码
 立即注册
查看: 157|回复: 8

AI8051U硬件仿真太难用了

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-04-02 08:05:04

2

主题

8

回帖

46

积分

新手上路

积分
46
发表于 2026-3-30 15:10:53 | 显示全部楼层 |阅读模式
经常弹窗,执行一条库函数 语句都能断。
截图202603301448165877.jpg
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-04-02 08:05:04

2

主题

8

回帖

46

积分

新手上路

积分
46
发表于 2026-3-30 15:28:46 | 显示全部楼层
屏蔽了就可以执行,不知道这个if语句有啥魔力
截图202603301528218664.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:299
  • 最近打卡:2026-07-04 00:01:55
已绑定手机

66

主题

808

回帖

3037

积分

论坛元老

DIY玩家

积分
3037
发表于 2026-3-30 15:30:51 | 显示全部楼层
尝试缩短接线
仿真需要预留内存
内存是否留足可用空间
永怀这学徒心
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-04-02 08:05:04

2

主题

8

回帖

46

积分

新手上路

积分
46
发表于 2026-3-30 15:39:20 | 显示全部楼层
狂热*** 发表于 2026-3-30 15:30
尝试缩短接线
仿真需要预留内存
内存是否留足可用空间

感谢赐教,我使用的是USBLINK1D串口仿真,USB到USBLINK1D是官方数据线,到板是5厘米排线
Program Size: data=10.0 edata+hdata=392 xdata=813 const=290 code=12265
这个数值够吗?
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-04-02 08:05:04

2

主题

8

回帖

46

积分

新手上路

积分
46
发表于 2026-3-30 15:53:49 | 显示全部楼层
使用库函数里的例程,也一样。只要执行这条if语句就崩了。


解决了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
各选项说明:
  • Level: 0: Constant folding(优化等级)
    • 0-9级,等级越高优化越激进。一般调试时设为0(不优化)以便于调试,发布时设为8或9以优化代码大小和执行速度。但注意高级优化可能改变代码结构,影响仿真。
  • Emphasis: Favor execution speed(优化侧重点)
    • Favor execution speed:优化执行速度(可能增加代码大小)
    • Favor code size:优化代码大小(可能降低执行速度)
    • Default:默认平衡
    • 根据需求选择,通常AI8051U有足够Flash,可优先速度。
  • Register Coloring(寄存器着色)
    • 一种高级优化技术,可提高寄存器利用率。但可能增加编译时间,且有时可能导致代码异常。调试时可关闭,发布时可尝试开启。
  • Linker Code Packing (max. AJMP / ACALL)(链接器代码压缩)
    • 尝试将代码中的LJMP/LCALL替换为AJMP/ACALL以减小代码大小。但注意:AJMP/ACALL只能在2KB代码块内跳转,如果跳转目标超出范围可能导致错误。一般不建议启用,除非代码量很小且确信不会超范围。
  • Generate reentrant functions(生成可重入函数)
    • 使所有函数默认可重入(可被多个任务同时调用)。这会增加栈的使用,降低效率。除非需要多任务/中断共享函数,否则不要勾选。
  • Alias checking on pointer accesses(指针访问的别名检查)
    • 检查指针别名,防止通过不同指针访问同一对象时优化出错。默认勾选,可提高安全性,但可能降低优化效果。建议保持勾选,除非确定不需要。

针对AI8051U硬件仿真的设置建议:如果在仿真中遇到不稳定、断连等问题,可能与优化有关。建议先降低优化等级,关闭某些优化选项,以排除优化导致的异常。
  • 优化等级(Level):调试时设为 0(不优化),以确保代码与源码完全对应,便于单步调试。发布时再设为 8​ 或 9
  • 优化侧重点(Emphasis):根据需求,如果代码空间充足,可优先速度(Favor execution speed)。
  • Register Coloring:调试时不勾选,避免优化导致变量观察困难。
  • Linker Code Packing不要勾选,因为AI8051U的代码空间较大(通常64KB以上),且此选项可能导致长跳转被截断,引发不可预知错误。
  • Generate reentrant functions:除非需要,否则不勾选
  • Alias checking on pointer accesses:建议勾选,避免指针相关错误。


截图202603301553111141.jpg
截图202603301611269020.jpg
回复

使用道具 举报 送花

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

50

主题

2691

回帖

9338

积分

论坛元老

积分
9338
发表于 2026-3-30 16:50:37 | 显示全部楼层
排查一下可能导致仿真出错的注意事项
截图202603301650313662.jpg

【仿真】仿真注意事项总结 | 大家帮继续总结
https://www.stcaimcu.com/thread-108-1-1.html
(出处: 国芯人工智能技术交流网站)
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-04-02 08:05:04

2

主题

8

回帖

46

积分

新手上路

积分
46
发表于 2026-3-30 16:57:58 | 显示全部楼层
乘风*** 发表于 2026-3-30 16:50
排查一下可能导致仿真出错的注意事项

是优化的问题,仿真时建议优化等级0
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:122
  • 最近打卡:2026-07-03 08:49:39

9

主题

99

回帖

1139

积分

金牌会员

积分
1139
发表于 2026-3-31 09:57:47 | 显示全部楼层
之前用过,也是出现这问题,没想到还跟优化等级有关系。后来都是用串口打印,也习惯了
微信qsssuv
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-04-02 08:05:04

2

主题

8

回帖

46

积分

新手上路

积分
46
发表于 2026-4-1 15:14:22 | 显示全部楼层
为什么每次仿真都需要按下板子上的复位按键,才能正常仿真?否则就会弹错
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-7-5 14:04 , Processed in 0.075690 second(s), 82 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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