zoukankan      html  css  js  c++  java
  • CH573/CH571/CH583/CH582/CH581 在线调试/仿真相关

    本文目的

    • 本文主要分享wch的CH57x,ch58x 系列的risc-v芯片的在线仿真相关方法,以及注意事项

    适用芯片

    软件环境

    支持的仿真工具

    • WCH-link(base on CH549)
      (注意这里的仿真协议为wch 专有协议,非arm-swd协议,所以只能适用wch提供的WCH-link 进行仿真,不支持其他第三方的工具)

    注意事项

    • 使用USB/UART下载后 SWD下载会自动关闭,如需要使用需要再次打开;
    • 低功耗下,SWD会被禁用,导致芯片不能响应SWD,从而下载/调试失败;
    • 无法通过SWD或者在应用程序关闭SWD,需要在wchisp工具中关闭,所以强烈不建议使用SWD去做批量生产(不建议使用SWD 做生产烧录)

    使用步骤

    1.使能芯片的仿真

    默认的芯片是开启仿真功能的,但是一旦经过ISP工具下载后,仿真功能就会关闭,所以一般来说,我们需要先要在ISP模式下使能芯片的仿真功能:


    如果ISP进入方法,以及问题排查,可以参考文章:https://www.cnblogs.com/iot-fan/p/13498088.html

    2.硬件链接

    CH573/571 58x 系列芯片仿真器连接的IO在PB14/PB15上,分别对应:

    • PB14 TIO 即为SWDIO
    • PB15 TCK 即为SWCLK
    • 电源
      image

    3.调试器插入电脑

    设备管理器显示下面两个设备,无叹号,表示识别成功,否则请按照 (>MounRiver_StudioExToolWCH-Link使用说明.pdf 排查问题)

    4.调试

    连接好硬件后,点击工程上面的仿真按钮启动仿真.
    (速度比较慢,大概只有几K 一秒,如果是BLE的工程动辄100多个K,这一步可能需要等待几十秒(wch-link2.1 版本后速度似乎提高了不少,有8k那样) ,所以调试BLE工程不到万不得已,一般不使用在线仿真)
    (在一些时序要求严格的场景,往往也不好用仿真,比如USB通信,BLE通信, 一旦打个端点,通信时序就异常了)
    image
    上面的过程无问题,会弹出下面的界面:
    image

    5.使用SWD只下载

    6.重设调试配置

    问题排查

    1.CH581/582/583 下了某个代码后再也下不进去代码了,就像线没连好一样.

    有时候,我们因为低功耗,或者其他原因,导致CH583/582/581 的SWD被禁用或者干扰到了,导致SWD 一直连接不上,这时候我们需要把之前的代码破坏掉,阻止其运行后就可以恢复仿真:
    1>,进入isp下载模式,使用WCHisptool 下载一个任意的HEX/或者bin文件,然后芯片会关闭仿真;
    2>,再次进入isp下载模式,再次使能芯片的仿真,这时候从非仿真到仿真模式,flash代码会进行清空,这时候影响swd下载的代码就会被清掉啦.
    *>,(已经跟wch联系过,后面wchisptool进入仿真可能会加入强制擦除flash,这样我们只需再次点使能仿真就可以了)

    2.外设的寄存器看不到

    有时候,调试的时候,我们看不到芯片的寄存器的值,这时候可能是debug配置有问题,可以按照下面去添加SVD文件即可
    image
    image
    MounRiver Studio IDE 提供的SVD文件默认路径参考:

    ./MounRiver_Studio/template/wizard/WCH/ARM/CH32F103/NoneOS/CH32F103xx.svd
    ./MounRiver_Studio/template/wizard/WCH/ARM/CH56X/NoneOS/CH56Xxx.svd
    ./MounRiver_Studio/template/wizard/WCH/ARM/CH57X/NoneOS/CH57Xxx.svd
    ./MounRiver_Studio/template/wizard/WCH/RISC-V/CH32V103/NoneOS/CH32V103xx.svd
    ./MounRiver_Studio/template/wizard/WCH/RISC-V/CH32V303/NoneOS/CH32V303xx.svd
    ./MounRiver_Studio/template/wizard/WCH/RISC-V/CH32V305/NoneOS/CH32V305xx.svd
    ./MounRiver_Studio/template/wizard/WCH/RISC-V/CH32V307/NoneOS/CH32V307xx.svd
    ./MounRiver_Studio/template/wizard/WCH/RISC-V/CH56X/NoneOS/CH56Xxx.svd
    ./MounRiver_Studio/template/wizard/WCH/RISC-V/CH57X/NoneOS/CH57Xxx.svd
    ./MounRiver_Studio/template/wizard/WCH/RISC-V/CH58X/NoneOS/CH58Xxx.svd
    

    然我我们重新进行仿真,即可看到外设寄存器信息啦
    image

  • 相关阅读:
    bootstrap 模态框一闪而过的问题
    ${requestScope.paramName} 与 ${param.name}
    Android控件
    质量属性
    android基础知识复习一
    Numpy基础篇二
    miniconda 搭建tensorflow框架
    Numpy基础篇一
    pandas 数据索引与选取
    《架构漫谈》阅读笔记
  • 原文地址:https://www.cnblogs.com/iot-fan/p/15419810.html
Copyright © 2011-2022 走看看