找回密码
 立即注册
楼主: 电子D***

STC32的硬件SWD仿真,使用STC-USB Link1D仿真器

  [复制链接]

该用户从未签到

550

主题

9229

回帖

1万

积分

管理员

积分
13930
发表于 2023-11-11 16:43:52 | 显示全部楼层
davidloon 发表于 2023-10-26 20:07
STC32G128 程序大小超过64K怎样设置,我的程序现在超过64K编译器会报错。这款MCU ROM空间为128K, 想问问怎 ...

截图202311111643145862.jpg

回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    昨天 08:22
  • 签到天数: 140 天

    [LV.7]常住居民III

    5

    主题

    96

    回帖

    638

    积分

    高级会员

    积分
    638
    发表于 2023-11-11 17:43:14 | 显示全部楼层
    再次探索 Link1D对屠龙刀实验板不能进入仿真调试的问题...


    这次实验是这样的:

    用一根USB线, 直接连接PC机和屠龙刀(STC32G12K128 V7.4.4)的USB(Type-C ) 口.  Link1D工具靠边站....
    制作仿真芯片, SWD方式, (不管"硬件选项"是否打勾), 操作成功! ..... 提示要断电....
    拔去USB线, (屠龙刀无疑是断电的)
    再让Link1D工具上场....
    将Link1D工具的四针接口连接屠龙刀实验板....
    将Link1D工具的USB(Type-C ) 口通过USB线连接PC机....

    启动Kiel C251, 实验"跑马灯"程序, 设置仿真所需... 启动进入Debug仿真调试, ..... OK!   

    这说明什么?  难道 强大的Link1D工具,  没有为目标板CPU制作仿真芯片的作用和能力吗?  还不如一根USB线能干吗?

    这是实况记录, 继续探索中......

    点评

    “难道 强大的Link1D工具, 没有为目标板CPU制作仿真芯片的作用和能力吗? ” ---对你你这问题我只能说那你看下面的这个图片是什么,就点一下这个箭头的按钮就成功了,不知道你是什么个操作还能失败? [attachimg]26  详情 回复 发表于 2023-11-13 08:16
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9229

    回帖

    1万

    积分

    管理员

    积分
    13930
    发表于 2023-11-11 17:50:06 | 显示全部楼层
    你用USB下载的方式,将他设置为 SWD仿真,看是否可以
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:22
  • 签到天数: 140 天

    [LV.7]常住居民III

    5

    主题

    96

    回帖

    638

    积分

    高级会员

    积分
    638
    发表于 2023-11-11 20:59:23 | 显示全部楼层
    本帖最后由 浦江一水 于 2023-11-11 22:06 编辑

    "神农鼎"管理员你好! 谢谢你的关注和回复。

    我上述实验其实就是用USB下载的方式, 先将屠龙刀实验板中的CPU制作诚SWD仿真芯片的,
    也试验了... 如果此时(当然是断电后再上电的)直接用此USB线连接仿真,那是不行的。就会弹出如前面图示的界面, 那是通不过,  进不了仿真状态的.
    对于这个情况, 我是理解为: V7.4.6U版本之前的CPU芯片是不支持USB直接仿真的。所以认为就是这样的, 别指望了。
    所以会想到, 此时再让Link1D工具登场, 连接在制作为仿真芯片的屠龙板与PC机之间。再仿真调试, 结果是成功了。让我得到了一点经验感受。
    据说V7.4.6U以后的版本是可已支持USB线直接仿真调试的。但因为我淘购的屠龙刀是早期版本,当时没经验没注意,人家(各教程)都是在用屠龙刀三的。
    而令我困惑的是,满怀希望的Link1D工具,视之为"利器"的Link1D,却是处处设难,用得不是很顺利。
    (在我开贴的“新手学用STC32G12K128...实验与思考”标题帖子中, 在自制的实验板上多种实验,  想使用Link1D仿真调试, 始终没有成功过, 这将另文描述)

    曾经也考虑用串口方式仿真调试这屠龙刀, 因为有图文说:
    截图202311112013075517.jpg

    那么按照B说,是可以串口仿真咯,但是实验下来是不行的,因为还有一句话等着呢: 截图202311112022289830.jpg   所以不行是可以理解的。

    还有就是按照C说,硬件USB直接仿真,后面强调是V7.4.6U以上版本, 那么我的屠龙刀是没有指望的了。
    又据说:现在的STC32G12K128已经可以支持USB仿真了。当然是好事哦。
    不过也意味着:我不久前刚淘购的Link1D工具(STC建议每个工程师配备一手一个)还没有正式用上,就淘汰了?
    因为仅仅是下载程序,是根本不需要Link1D的,就连“一箭双雕”也不需要的。
    而我满腔热情支持国产芯片(国芯),为了学习STC32G,在坛子里广为称赞的Link1D和“一箭双雕”,都买了。
    如果用Link1D和“一箭双雕”就仅仅是干下载的活,而不做仿真,就大材小用 ,有点可惜了。

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情

    2023-12-5 19:37
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    3

    主题

    325

    回帖

    363

    积分

    禁止发言

    积分
    363
    发表于 2023-11-12 00:50:53 | 显示全部楼层
    感谢楼主分享,学习了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 88 天

    [LV.6]常住居民II

    38

    主题

    982

    回帖

    6755

    积分

    荣誉版主

    冲哥视频教程和各种开源资料QQ交流群884047237,可群

    积分
    6755
    QQ
     楼主| 发表于 2023-11-13 08:16:45 | 显示全部楼层
    浦江一水 发表于 2023-11-11 17:43
    再次探索 Link1D对屠龙刀实验板不能进入仿真调试的问题...

    “难道 强大的Link1D工具,  没有为目标板CPU制作仿真芯片的作用和能力吗? ”

    ---对你你这问题我只能说那你看下面的这个图片是什么,就点一下这个箭头的按钮就成功了,不知道你是什么个操作还能失败?
    截图202311130815344142.jpg

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:22
  • 签到天数: 140 天

    [LV.7]常住居民III

    5

    主题

    96

    回帖

    638

    积分

    高级会员

    积分
    638
    发表于 2023-11-15 11:55:47 | 显示全部楼层
    本帖最后由 浦江一水 于 2023-11-15 14:30 编辑

    @电子DIY小家 (冲哥老师)您好! 很感谢您对我学习中遇到的困惑关注和回复。此前也看了您的不少视频教程和帖子,得益菲浅,十分感谢,也很佩服您。



    关于我对STC USB Link1D工具对STC32G12K128的仿真调试遇到的困惑,诚如您上图所示,这么简单方便的一个点击步骤,也会有错吗? 我也是这样想的, 但事实确实如此,使我困惑而百思不解。
    但是弹出无法进入仿真的界面也是一个实际情况,有句话说“存在即合理” , 既然事实已经弹出了无法仿真的错误提示,那一定是有道理的。只是我对其中一些机理还不清楚,一时找不到解释和解决办法而已。
    我也试图从各个方面质疑自己是否忽略了哪些因素,曾经怀疑自己的计算机驱动问题,或是自制的实验板硬件焊接问题,或是我所用的STC32G12K128(DIP40)芯片的版本问题...但是都找不到答案....
    也一直在思考: 为什么按照数据手册和教程的步骤, 有的人说是可以顺利实现, 有的人说是不行, 有的人说第一次可以, 后来就不行了.... 诸如此类....

    最近我发现, 我所用的STC32G12K128(DIP40)芯片有么一个特点: (也许人家早就发现,只是没说,至少我是在坛子里没看到这样说)
    就是如果将STC32G12K128(DIP40)制作成仿真芯片后, 并且仿真调试后,  脱离仿真工具后, 再上电即可运行, 此前程序仍然存在带有仿真功能的芯片中.  (我不确定STC8H8K64U是否也如此,但我感觉不是的) 而且切换不同的程序代码, 直接仿真, 不必每次都制作仿真芯片.
    这一特点,,有点很像STM32F1/F4(意法ARM)芯片,  STM32芯片是不需要先制作成仿真芯片的, 直接就可以用仿真工具仿真调试,并且仿真调试后,程序代码仍然留在芯片内.脱离仿真工具后,上电即可运行.


    这一特点让我再次仔细思考, 反复结合手册视频和专题帖子思考. 实验验证... 终于....

    我大概是弄懂了STC USB Link1D工具对STC32G12K128的仿真调试问题.

    具体是怎样理解的呢, 且看慢慢道来....

    首先我给自己把"仿真"问题划分为两个层次: 不要混为一谈.
    无法进入仿真: KeilC251 弹出错误提示, 无法连接等等, 属于无法进入仿真状态, 这是仿真条件是否具备, 与是否正确设置程序主频, 程序是否占用串口1....没有关系...
    无法准确仿真:  这是仿真是可以进入的, 但是实际效果不准确, 主要是代码算法问题....
    其次我给自己一个定义: 将USB下载的概念一分为二:
    USB直接下载:  PC机STC-ISP软件, 与目标单片机通过USB线直接连接, 中间不经过Link1D之类的仿真工具.
    USB间接下载:  PC机STC-ISP软件, 中间经过Link1D之类的仿真工具,再与目标单片机连接.
    这两者有一个共同的特点是: 都是通过PC机的USB口, 连接下载或调试代码 , 广义说, 都是"USB下载". 其实是有区别的....

    我手头的STC-ISP软件是V6.92E, 仿真工具是Link1D, 目标单片机是屠龙刀(不是三)和自制的STC32G洞洞实验板, 芯片都是STC32G12K128 (V7.4.4版本), 只是封装不同.

    在此前提下, 再来细细看看本帖子, 描述的各个步骤....

    1.  到官网取下载工具软件, 没有问题....
    2.  将STC的仿真相关驱动文件安装到KeilC251中去,没问题....
    3.  将Link1D工具固件更新一下, 没问题....    到这一步,  PC机与Link1D工具形成 USB直接下载 关系, 注意一下: 辨识端口是STC USB Writer (HID1) , 下载的是固件代码.  
         此时,与需要制作仿真芯片的目标单片机没有关系....
    4.  需要制作仿真芯片的目标单片机登场了, 就是PC--Link1--我们的单片机, 是吧. 注意此时端口辨识为: STC USB Link1 (LINK1),  然后.....
         " 然后进行如下的设置就可以通过ISP软件正常下载程序了。(注意一下这里的IRC频率一定要和程序里设置的主时钟一样哈!!) "
         这是在验证USB间接下载, 这是PC机通过中间的Link1D对目标单片机下载实验代码... (后面关于红色提示不是下载代码的必要条件,不一样也能下载,只是代码运行效果不同)
    5.  这是再操作一次USB间接下载, 下载后是否直接运行, 如果在第四步已经勾上此选项了, 就没有这一步了.
         注意一下, 此时"操作成功!" 的提示,  暂时记一下....   
         到了这一步, 验证了通信口的畅通, 程序代码可以下载了,
         这是指实验代码下载到了目标单片机中, (不是固件代码下载到Link1D的工具中) ,Link1D只是一个"二传手".  成功了.....  广义说, 也是USB下载, 你能说它不是USB下载吗?
         其实, 实验程序代码的下载, 未必要用中间工具的.USB直接下载 也是可以的.   

    6.  关键的时刻来了....     
       "到上面一步成功之后就可以开始设置为仿真芯片了。 "
         承上启下, 自然地是指: PC机---Link1D(中间工具)---需要制作仿真的目标单片机(STC32G比如屠龙刀),  这样的连接情况下....
         注意:  此时是否有一个隐含的条件在其中呢....
         假如, (是假如, 可以再验证的).
         假如目标板上的芯片STC32G12K128是一颗已经带有仿真功能的芯片呢?
         那么,  带有仿真功能的芯片, 在上述4,5步骤中, 完全是正常通过了, 无法察觉的...
         然后, 选择好仿真的几个选项, 点击"将所选目标单片机设置为仿真芯片", OK!  顺利通过,
         注意一下,"操作成功!" 提示.....
         这个提示, 感觉比较模糊, 是下载代码成功呢, 还是制作仿真芯片成功?  只有STC-ISP的开发者权威解释了...
         对此我质疑. 我认为,可能这是USB间接下载成功, 因为带有仿真功能的芯片是不拒绝程序代码的下载的.  Keil在仿真调试时首先就是下载代码....
          
    7.  开始仿真了....  应该关闭STC-ISP, 不是或者关闭, 因为Keil登场仿真时, 不需要SYTC-ISP在场的 (非仿真,编译后全速运行时可以在场).
         设置了相关仿真的选项后, 点击Debug, 进入仿真...  

    8.9.10 后面一路顺风, OK!  这是很完美的过程, 许多坛友都享受了这一愉快顺利的过程.


    但是偏偏有人, 比如我, 遇到困惑, 没那么顺利....
    有坛友问, 如何取消仿真功能, 回答是USB下载后, 就取消了. 这个"USB下载"就比较模糊, 应该是USB直接下载, 就是端口辨识为STC USB Write (HID1)的状态下...
    立即实验, 用USB线直接连接目标单片机,  将P3.2经按钮接地, 上电, 这是大家都熟悉的方法, 出现STC USB Write (HID1)后,  随便下一个如跑马灯之类程序代码, 就取消了芯片的仿真功能,
    让它成为一颗不带有仿真功能的芯片后. 再按照步教程步骤试试看,  第6步就会出现不同的提示了, 就会出现硬件选项中打勾和不打勾的不同提示了,
    提示"操作成功!"提示后, 以为是制作仿真芯片成功了, 到Keil启动仿真时, 就无法进入仿真了....
    这就让我质疑, 第6步的作用了. 也就是让我产生"难道 强大的Link1D工具,  没有为目标板CPU制作仿真芯片的作用和能力吗?"的想法了.


    我大概是弄懂了STC USB Link1D工具对STC32G12K128的仿真调试问题的前提下, 我现在的实验就变得非常顺利和清楚了.
    1. 用USB线,在端口辨识为STC USB Write (HID1)的状态下 直接给芯片制作仿真SWD方式.  
        制成后如果而后的实验不改变主频的情况下, 就不改变其带有仿真功能的芯片状态,不必每次都制作仿真芯片;
    2. 用STC USB Link1D 工具, 进入Keil仿真调试。因为STC32G12K128(V7.4.4)目前仅支持STC USB Link1D 进行SWD仿真。


    有了这个大概弄懂了此前进不了仿真的几块实验板,现在都可以仿真调试了, 给研究算法起了很大的作用。
    而且屡试不爽,百发百中.  

    于是乎.....
    Keil 出现错误提示:Failed to connect to target device !  Please reset  your taget system and try again.
    应该也能解释了:
    其实就是在告诉你, 找不到可以仿真的端口,连接失败,芯片就是没有仿真功能,此前仿真芯片的制作是不成功的。

    为了避免偶然性,我又淘购了一片STC32G12K128 DIP40芯片,正在途中。。。
    目的是想了解和验证一下, 出厂默认情况下,这个芯片是否带有仿真功能? 这次DIP40芯片是什么版本, 是不是V7.4.6U以上版本?是不是仅仅支持SWD仿真? 不久就会揭晓的。


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 00:07
  • 签到天数: 154 天

    [LV.7]常住居民III

    24

    主题

    130

    回帖

    393

    积分

    中级会员

    积分
    393
    发表于 2023-11-18 18:42:51 | 显示全部楼层
    仿真器申请不下来,要用积分兑换……
    MCU开发者和爱好者
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 00:07
  • 签到天数: 154 天

    [LV.7]常住居民III

    24

    主题

    130

    回帖

    393

    积分

    中级会员

    积分
    393
    发表于 2023-11-18 18:43:25 | 显示全部楼层
    lijinlei 发表于 2023-11-18 18:42
    仿真器申请不下来,要用积分兑换……

    不是,用芯愿兑换
    MCU开发者和爱好者
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    半小时前
  • 签到天数: 152 天

    [LV.7]常住居民III

    25

    主题

    699

    回帖

    1737

    积分

    金牌会员

    积分
    1737
    发表于 2023-11-18 19:39:53 | 显示全部楼层
    lijinlei 发表于 2023-11-18 18:42
    仿真器申请不下来,要用积分兑换……

    多发帖
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-28 07:08 , Processed in 0.072557 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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