找回密码
 立即注册
楼主: newl***

关于用STC-USB Link1D进行硬件仿真的疑问

[复制链接]

该用户从未签到

19

主题

103

回帖

191

积分

注册会员

积分
191
 楼主| 发表于 2024-4-9 11:45:00 | 显示全部楼层
8051启蒙者 发表于 2024-4-8 17:24
STC32G12K128系列芯片制作成串口和USB仿真芯片后, 必须使用USB下载才能恢复正常下载
否则会出现"硬件选项 ...

谢谢你您的回复,按照这个办法,现在可以了
回复 支持 反对 送花

使用道具 举报

该用户从未签到

19

主题

103

回帖

191

积分

注册会员

积分
191
 楼主| 发表于 2024-4-9 11:50:06 | 显示全部楼层
国学芯用 发表于 2024-4-7 17:05
你的表述不够详细,可以打包传上来,大家一起帮你分析

试验箱重新设置成硬件仿真后,我把一些不必要的程序删除后,硬件仿真可以对P2口操作了,因为这是程序的开始,前边只是执行了定时器的初始化,我怀疑是定时器的运行影响了P2口的操作,我回头再试下,谢谢。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

19

主题

103

回帖

191

积分

注册会员

积分
191
 楼主| 发表于 2024-4-9 14:36:56 | 显示全部楼层
国学芯用 发表于 2024-4-7 17:05
你的表述不够详细,可以打包传上来,大家一起帮你分析

版主您好:程序我只取了重点部分,现在又出现新的问题,程序乱跑,也请大家一起看看,谢谢。

                                $include (STC32G.INC)
                                ORG                0000H
                                LJMP        INIT
                                ORG                0100H       
INIT:                                                                                                       
                                MOV                20H,#0
                                MOV                21H,#0
                                MOV                22H,#0
                                MOV                23H,#0
                                MOV                24H,#0
                                MOV                25H,#0
                                MOV                26H,#0
                                MOV                27H,#0
                                MOV                28H,#0
                                MOV                P0,#10100110B
                                MOV                P1,#00000011B
                                MOV                P2,#11100001B                                       
                                MOV                P3,#00111100B
                                MOV                P4,#00000000B
                                MOV                P5,#00001111B
MAIN:                        INC                A
                                LJMP         MAIN
                                END       

设置实验板为硬件模式后,在Keil C中进入硬件仿真模式,这是刚进入仿真模式的图片,可以看到指示要执行的语句箭头在第3行,这时对的
IMG_20240409_142333.jpg
回复 支持 反对 送花

使用道具 举报

该用户从未签到

19

主题

103

回帖

191

积分

注册会员

积分
191
 楼主| 发表于 2024-4-9 14:39:12 | 显示全部楼层
本帖最后由 newlined 于 2024-4-9 14:51 编辑

点击单步执行一次后,我以为指示运行语句的箭头应该在第6行,却跑到了第14行,如下图
IMG_20240409_142352.jpg
回复 支持 反对 送花

使用道具 举报

该用户从未签到

19

主题

103

回帖

191

积分

注册会员

积分
191
 楼主| 发表于 2024-4-9 14:40:31 | 显示全部楼层
再按一次单步执行,到第15行,这应该是对的
IMG_20240409_142408.jpg
回复 支持 反对 送花

使用道具 举报

该用户从未签到

19

主题

103

回帖

191

积分

注册会员

积分
191
 楼主| 发表于 2024-4-9 14:44:30 | 显示全部楼层
再按一次单步执行,箭头就停在15行不动了,大约过了1分钟,箭头跑到了第19行
IMG_20240409_142524.jpg
回复 支持 反对 送花

使用道具 举报

该用户从未签到

19

主题

103

回帖

191

积分

注册会员

积分
191
 楼主| 发表于 2024-4-9 14:50:33 | 显示全部楼层
再按单步执行,好像跑到了第10行,左边的一些寄存器的值也变了,再按单步执行,程序好像就乱跑了。
IMG_20240409_142548[1].jpg
回复 支持 反对 送花

使用道具 举报

该用户从未签到

19

主题

103

回帖

191

积分

注册会员

积分
191
 楼主| 发表于 2024-4-9 14:54:59 | 显示全部楼层
硬件仿真以前没有认真用过,请大家看看问题出在哪里?谢谢。
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    2024-4-19 17:27
  • 签到天数: 91 天

    [LV.6]常住居民II

    5

    主题

    153

    回帖

    1367

    积分

    超级版主

    积分
    1367
    发表于 2024-4-9 15:38:13 | 显示全部楼层
    【仿真】仿真注意事项总结 | 大家帮继续总结

    鉴于部分坛友在仿真过程中会遇到仿真失败的问题,总结可能导致的原因如下:
    1.  制作完仿真芯片后没有重新给 MCU 进行上电复位,就开始仿真。
         制作完仿真芯片后必须停电再上电,新的设置项[仿真芯片]才会生效
    2.  如果使用 U8W/U8W -Mini 进行仿真的话,需要先设置“直通模式” ,
         具体方法参考官网https://www.stcai.com/gjrj 工具使用说明5.9 章节介绍。
    3.  仿真程序不能使用 P3.0/P3.1 口。仿真监控程序占用 P3.0/P3.1 口,但不占用串口 1,用户可以将串口 1 切换到其它通道再使用。
    4.  仿真监控程序占用内部扩展 RAM(XDATA)的最后 768 字节,如果程序使用 XDATA+768 字节大于芯片 XDATA 的上限,也会出错。
    5.  不能仿真时钟/复位相关的功能。例如程序里面不能修改系统时钟频率,不能开启看门狗,不能进入休眠/空闲模式。
    6.  P3.0/P3.1 口数据受到干扰。 仿真通过 P3.0/P3.1 口与 KEIL 驱动进行通信, 如果数据受到干扰会导致仿真出错。故障排查参考:
    1)  使用优质的 USB 线、串口工具与目标板连接线;
    2)  P3.0/P3.1 口外围电路上不要接影响通信的元器件;
    3)  如果使用台式机的话,连接机箱背后的 USB 接口,尽量不要使用延长线;
    4)  板子上如果有电机等干扰比较大的器件,仿真之前先断开。
    7.   如果不是用STC-USB Link1D进行SWD仿真 ,那么不能进行 单步仿真 DPTR。
    8. 使用串口或USB仿真时,当停止运行用户代码时,定时器0~4会全部停止。此时和定时器相关的硬件都会停止,
       包括串口时钟、定时器中断、定时器时钟输出等。
    9.芯片的时钟不能在仿真的时候(Keil中)修改,如果需要设置时钟的话,可以在烧录时通过硬件选项进行设置。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    19

    主题

    103

    回帖

    191

    积分

    注册会员

    积分
    191
     楼主| 发表于 2024-4-9 16:13:10 | 显示全部楼层
    我用试验箱的例程10,仿真,看起来程序不乱跑,难道那个小程序有问题吗?
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-5 19:27 , Processed in 0.070117 second(s), 66 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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