vb2002 发表于 2025-3-29 17:43:42

关于仿真的3个问题,

LINK1D

1,AI8系列是不是不支持swd仿真?
2,原本不支持在线仿真的芯片,,例如 ai8g1k17 ,是不是可以用link1d来进行仿真
3,仿真进不去这一步,如下图, time()是一个在中断里面1ms执行一次的函数, ugdmcnt++; 进不去,,下面的else 可以进去, if(PWMA_CR1==0) 这一步也可以进去

国芯人工智能 发表于 2025-3-29 17:48:00

关于您提出的三个问题,以下是基于国芯人工智能的专业回复:

1. AI8系列是否不支持SWD仿真?
AI8系列芯片在设计上确实存在一些限制,尤其是在仿真接口方面。根据官方文档和用户反馈,AI8系列芯片并不支持标准的SWD(Serial Wire Debug)仿真接口。SWD是一种常用的调试接口,但在AI8系列中,由于硬件架构的特殊性,SWD功能并未被实现。因此,如果您计划使用SWD进行仿真调试,可能需要考虑其他调试工具或接口,或者选择支持SWD的其他芯片系列。

2. 原本不支持在线仿真的芯片,例如AI8G1K17,是否可以用LINK1D来进行仿真?
对于原本不支持在线仿真的芯片,如AI8G1K17,使用LINK1D进行仿真的可行性需要具体分析。LINK1D是一种多功能调试工具,通常支持多种调试协议和接口。然而,是否能够用于特定芯片的仿真,取决于该芯片的硬件设计和LINK1D的兼容性。根据目前的信息,AI8G1K17芯片本身并不支持在线仿真功能,因此即使使用LINK1D,也可能无法实现仿真。建议您查阅LINK1D的官方文档或联系技术支持,以确认其是否支持AI8G1K17芯片的仿真功能。

3. 仿真进不去的问题,具体表现为time()函数在中断中1ms执行一次,ugdmcnt++无法进入,而else和if(PWMACR1==0)可以进入。
从您描述的现象来看,仿真过程中ugdmcnt++无法进入,而else和if(PWMACR1==0)可以正常进入,这可能与以下几个因素有关:
中断优先级:time()函数在中断中执行,如果该中断的优先级较低,可能会被其他高优先级中断抢占,导致ugdmcnt++无法执行。建议检查中断优先级设置,确保time()函数所在的中断具有足够的优先级。
代码逻辑:ugdmcnt++无法进入,可能是由于代码逻辑问题。例如,ugdmcnt的初始值或条件判断可能导致该语句无法执行。建议仔细检查ugdmcnt的初始值和相关条件判断,确保逻辑正确。
硬件状态:if(PWMACR1==0)可以进入,说明该条件判断为真。这可能与硬件状态有关,例如PWMACR1寄存器的值在仿真过程中被意外修改。建议检查PWMACR1寄存器的值,确保其状态符合预期。
仿真环境:仿真环境本身可能存在一些问题,例如仿真器的配置或仿真软件的版本不兼容。建议检查仿真器的配置和仿真软件的版本,确保其与目标芯片和代码兼容。

综上所述,建议您从中断优先级、代码逻辑、硬件状态和仿真环境等方面进行排查,以解决仿真进不去的问题。

希望以上回复对您有所帮助。如有进一步问题,欢迎继续咨询。

[本文内容由国芯人工智能辅助生成,仅供参考]

vb2002 发表于 2025-3-29 18:01:55

国芯人工智能 发表于 2025-3-29 17:48
关于您提出的三个问题,以下是基于国芯人工智能的专业回复:

1. AI8系列是否不支持SWD仿真?

ai给出的答案是
1, ai8不支持 swd
2,本身不支持仿真,使用link1d也无法仿真
3,好像没看懂.

DebugLab 发表于 2025-3-29 18:02:20

SWD仅可仿真80251(32G和8051U的32bit模式)
link1D必须连接已制作为仿真芯片的单片机仿真,不能自己仿真自己
如PWMA_CR1==0成立,必然会执行ugdmcnt++,你的描述自相矛盾

vb2002 发表于 2025-3-29 18:08:39

DebugLab 发表于 2025-3-29 18:02
SWD仅可仿真80251(32G和8051U的32bit模式)
link1D必须连接已制作为仿真芯片的单片机仿真,不能自己仿真自 ...

1 , 确定了
2, ai8g1k17 不支持在线仿真,所以也无法通过link1d来仿真
3,我想进设置中断点的那个里面去看看. 结果发现直接跳过了

第三个问题我还得好好研究一下.着实没搞清楚

vb2002 发表于 2025-3-29 18:42:03

DebugLab 发表于 2025-3-29 18:02
SWD仅可仿真80251(32G和8051U的32bit模式)
link1D必须连接已制作为仿真芯片的单片机仿真,不能自己仿真自 ...

问题3 我懂了
是我搞错了. 在另一个开关配置里面弄错了
PWMB_CR1
我看成PWMA_CR1 了
一直默认是1 所以进不去.进到else里面, 因为PWMA_CR1 一直=1没有切换成0

问题2 好像也懂了.因为stc8g1k17 本身不支持设置成仿真芯片. 所以link1d也不能让他仿真

21cnsound 发表于 2025-3-29 19:18:47

DebugLab 发表于 2025-3-29 18:02
SWD仅可仿真80251(32G和8051U的32bit模式)
link1D必须连接已制作为仿真芯片的单片机仿真,不能自己仿真自 ...

我记得我问过官方,说8051U-8bit也支持SWD仿真,大概说是8051U的8bit是251兼容51模式下运行的。

vb2002 发表于 2025-3-29 20:43:52

21cnsound 发表于 2025-3-29 19:18
我记得我问过官方,说8051U-8bit也支持SWD仿真,大概说是8051U的8bit是251兼容51模式下运行的。 ...

8051u也是支持的,,
就是8g1k17不能仿真

soma 发表于 2025-3-30 15:59:33

21cnsound 发表于 2025-3-29 19:18
我记得我问过官方,说8051U-8bit也支持SWD仿真,大概说是8051U的8bit是251兼容51模式下运行的。 ...

8051u在8位模式好像不能swd仿真吧
页: [1]
查看完整版本: 关于仿真的3个问题,