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

请教:AI8H2K32U在KEIL设置为xdata时仿真会卡死 | USB通信还要被占用 1024字节 xdata

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-24 08:59:59
已绑定手机

1

主题

4

回帖

55

积分

注册会员

积分
55
发表于 2025-7-22 16:04:41 | 显示全部楼层 |阅读模式
请求支持:使用Ai8H2K32U,
KEIL设置为Small:variables in DATA时,可以正常仿真,
使用 large:variables in xdata仿真:开始运行后就程序就卡死了,停不下关不掉。
使用USB Link1D或USB直接仿真都是这样。
使用2个产品的板子测试也都一样。
是怎么回事啊?搞2天了没解决,求支持。


回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-07-31 08:58:47
已绑定手机

87

主题

5532

回帖

1万

积分

超级版主

DebugLab

积分
10123
发表于 2025-7-22 16:27:57 | 显示全部楼层
仿真程序占用xdata最后768字节,注意xdata冲突问题
新手必读:
https://www.stcaimcu.com/thread-16535-1-1.html

C语言、汇编语言、编译器、仿真问题:
包含startup.a51时,默认会初始化data(也是idata的低128字节)为0,xdata不操作为上电随机数;不包含startup.a51时,data和xdata为上电随机数
程序只能在函数内执行,全局变量禁止在声明时赋值,赋值的语句必须在函数内,函数外的非声明语句无效
数组可以在初始化时用memset函数全部清零(或其他初始化值)
养成好习惯,函数内的局部变量也不要声明时赋值,而且必须在函数开头声明
制作完仿真芯片必须重新上电才可以正常仿真
如使用 U8W/U8W -Mini 进行仿真,需要先设置“直通模式”

工具使用说明书.pdf
仿真时注意不要勾选“当目标文件变化时自动装载并发送下载命令”,否则当重新编译后,就会正常下载一次,导致仿真程序被覆盖掉,从而无法继续仿真

仿真程序占用P3.0/P3.1口,但不占用串口1,用户程序可以将串口1切换到其它IO使用
仿真监控程序占用内部扩展RAM(XDATA)的最后768字节,程序使用XDATA+768字节不能大于芯片XDATA的容量
不能仿真时钟/复位相关的功能,例如程序里面不能修改系统时钟频率,不能开启看门狗,不能进入休眠/空闲模式
仿真通过P3.0/P3.1口与 KEIL 驱动进行通信,如P3.0/P3.1口数据受到干扰可能会导致仿真异常(如接触不良、P30/P31接了其他电路等)
单步仿真DPTR只能使用USB Link1D通过SWD仿真

使用USB或UART仿真,当停止运行用户代码时,定时器0~4会全部停止,此时和定时器相关的硬件都会停止,包括串口时钟、定时器中断、定时器时钟输出等
芯片的时钟不能在仿真时(Keil中)修改,只能在烧录时通过硬件选项设置
USB或UART仿真时,全速运行不能实时更新变量的值,因为USB或UART仿真是软件完成的,全速运行时CPU完全在执行用户程序,无法同时运行仿真程序,如此时运行仿真程序,就会影响用户程序的全速运行,所以不支持在全速运行时实时更新变量的值


DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:441
  • 最近打卡:2025-08-01 00:05:50
已绑定手机

149

主题

1788

回帖

3002

积分

论坛元老

积分
3002
发表于 2025-7-22 23:09:38 | 显示全部楼层
我试了,好像没有你说的问题
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:144
  • 最近打卡:2025-07-31 10:37:58

760

主题

1万

回帖

1万

积分

管理员

积分
18139
发表于 2025-7-22 23:27:45 | 显示全部楼层
AI8H2K32U, 如用 串口仿真,
===xdata 会被占用 768字节;


AI8H2K32U, 如用 USB仿真,
===xdata 会被占用 768字节;
===USB通信还要被占用 1024字节 xdata
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-24 08:59:59
已绑定手机

1

主题

4

回帖

55

积分

注册会员

积分
55
发表于 2025-7-24 08:59:59 | 显示全部楼层
Debu*** 发表于 2025-7-22 16:27
仿真程序占用xdata最后768字节,注意xdata冲突问题
新手必读:
https://www.stcaimcu.com/thread-16535-1-1 ...

感谢回复!
上电是把有设置P_SW2 |= 0x80;
编译结果显示:Program Size: data=17.1 xdata=390 code=9048
我把程序中不同的部分屏蔽,屏蔽少了解决不了问题,几乎把所有程序调用都取消了才好,到今天为止问题仍没有解决。换上AI8H8K64U芯片是可以正常仿真的,但引脚功能又不同,因为我要用16 17 19脚做AD口。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-24 08:59:59
已绑定手机

1

主题

4

回帖

55

积分

注册会员

积分
55
发表于 2025-7-24 09:29:52 | 显示全部楼层
神*** 发表于 2025-7-22 23:27
AI8H2K32U, 如用 串口仿真,
===xdata 会被占用 768字节;

我是用串口仿真的,现在资源占用情况是:Program Size: data=17.1 xdata=390 code=9048
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-24 08:59:59
已绑定手机

1

主题

4

回帖

55

积分

注册会员

积分
55
发表于 2025-7-24 09:41:53 | 显示全部楼层
我怀疑是因为我的程序大了所以才不能仿真,我现在想换别xdata空间大一些的型号,但只有这个AI8H2K32的16 17 19脚有ADC功能,怎么办?改板好麻烦的。请求支持!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:165
  • 最近打卡:2025-07-31 09:56:17

16

主题

502

回帖

2752

积分

超级版主

积分
2752
发表于 2025-7-24 09:52:27 | 显示全部楼层
仿真程序占用xdata最后768字节
截图202507240948204626.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-24 08:59:59
已绑定手机

1

主题

4

回帖

55

积分

注册会员

积分
55
发表于 2025-7-24 10:00:09 | 显示全部楼层
AI*** 发表于 2025-7-24 09:52
仿真程序占用xdata最后768字节

没有使用USB功能,使用的是串口仿真
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-1 02:00 , Processed in 0.125232 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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