1231|4

645

帖子

1

资源

纯净的硅(中级)

【平头哥Sipeed LicheeRV 86 Panel测评】自制CKLink-lite调试器,调试D1裸机编程 [复制链接]

本帖最后由 mars4zhu 于 2022-4-19 11:53 编辑

自制CKLink-lite调试器,调试D1裸机编程

 

摘要:

使用了一块STM32F103开发板(市面上最常见的正点原子的miniSTM32开发板),利用平头哥的DebugServer中的固件(稍微魔改一下),变身为CKLink-Lite调试器,接入LicheeRV开发板的JTAG引脚上,可以直接使用调试D1芯片的裸机编程,如断点、单步运行、查看寄存器等,跟单片机开发一样方便。

 

 

正文:

在之前的帖子中(http://bbs.eeworld.com.cn/thread-1199389-1-1.html 【平头哥Sipeed LicheeRV 86 Panel测评】D1作为单片机裸奔编程点灯——LED-Blinky),由于没有调试器连接JTAG进行单片机常用的调试方法,所以观察程序功能正确与否,只能查看板子上的反应来确定。而D1CPU内核C906的调试接口及其协议是自己开发的,并非RISCV标准调试接口,因此使用其余的JLink+OpenOCD方案无法实施,经过网络查找,发现有不少人可以DIY自制CKLink

 

https://www.bilibili.com/video/av977444179 自制CKlink阿里平头哥w801/w806仿真器DIY全教程

 

https://github.com/jinyi7016/CKLink_Lite

 

看了一下里面的原理图,都是使用STM32F103C8T6主控,外围几个电阻、LED而已。烧写入CKLink-Lite固件,主要功能就是USBJTAG,使用几个GPIO引脚作为JTAG信号引脚,如图:

image-20220419115115-1.png  

作为最热门的MCU,大家伙手里应该都有一两个STM32F103的板子吧,我手头上有个STM32F103RBT6的开发板(市面上最常见的正点原子的miniSTM32开发板);跟STM32F103C8T6是同架构,仅仅是封装和Flash存储容量不同而已,应该可以通用固件;

然后D1的手册上表明,RISCV内核的JTAG信号可以复用到SD卡槽上,刚好之前使用SD-NAND的时候,有一个SD引出IO引脚的转接小板子,可以把D1芯片的SD卡槽上的信号引出,两边对应的引脚连接关系如图:

image-20220419115115-2.png  

先烧写CKLink-Lite的固件,平头哥的DebugServer软件里面,提供了两个CK-Link-Lite的固件,位于T-HeadDebugServer\bin\links\CK-Link目录下,分别是cklink_lite_iap.hexcklink_lite.hex,用文本编辑器打开,发现cklink_lite.hex是从0x08004000开始,而cklink_lite_iap.hex是从0x08000000开始(STM32芯片的Flash空间起始地址),很显然是先烧写IAP功能的固件,可以随时更新CKLink调试功能的固件,因此先烧入cklink_lite_iap.hex。采用Jlink或者BOOT0串口下载等方式烧入cklink_lite_iap.hex后,USB口插入电脑发现C-SKY CKLink-Lite Firmware Loader,看名称就知道是加载调试功能固件的,打开Debugger-Server,发现固件更新,但是这里却无法更新。最后无奈,依然采用Jlink烧入cklink_lite.hex

1)注意这次烧写固件,不要擦除芯片,避免把之前烧入的cklink_lite_iap.hex给擦除了。

2)也可以使用文本编辑器,把两个hex文件合并为一个,然后再一次性烧写。

 

烧写后插入电脑,依然出现C-SKY CKLink-Lite Firmware Loader,使用Debugger-Server也无法进入调试功能。

image-20220419115115-3.jpeg  

尝试了方法:

1)刚插上电脑,设备管理器里冒出来的是“C-Sky CKLink-Lite Firmware Loader”,之后换了好多驱动libusbKwinusblibusb-win32,在C-Sky Debugger Server里面都没法成功识别出CKLink

2)尝试了好多次,最后设备管理器里卸载设备,然后右键选择“扫描检测硬件改动”,重新扫描后,CKLink就重新枚举变为“CKLink-Lite”然后就可以用Debugger Server识别,并创建gdb调试服务。。。

image-20220419115115-4.jpeg  

image-20220419115115-5.jpeg  

image-20220419115115-6.png  

 

总结一下,估计还是硬件差异的问题吧,毕竟STM32开发板跟CKLink-Lite原理图相比,有两三个电阻没接,特别是USB_CNCTPB5)到USB-D+PA12)的1.5K电阻没有连接,这个肯定是用来实现USB重新枚举的,所以无法从IAP功能切换到CKLink功能。用这种方法,只能采用卸载设备然后重新枚举的方式,才能进入CKLink-Lite固件;

 

 

 

 

 

PS1:在压箱底找到一个STM32F103C8T6的最小系统开发板,烧入这个固件,也一样可以调试,说明这个固件对于STM32F103R/C等封装都通用,我推测对于其他如VZ封装,不同Flash容量的芯片型号,也一样通用,但没有测试,手上有板子的朋友不妨都去试试。

image-20220419115115-7.png  

 

 

 

 

 

PS2:突发奇想,既然CKLink固件的起始地址是0x08004000,那么我把这一段的中断向量表复制到0x08000000,是不是可以直接忽略IAP固件,而是直接执行CKLink固件呢?采用文本编辑器,在头部复制中断向量表,并且把地址全部改为0x080000xx开头,hex文件最后的校验和也修改一下,如图:

image-20220419115115-8.png  

 

烧入后插上电脑,果然直接显示为CKLink-Lite设备,大功告成!!!!

 

附带DebugServer的原始的两个固件(cklink_lite.hexcklink_lite_iap.hex)、合并后的固件cklink_lite_merge.hex、以及复制中断向量表的固件cklink_lite_mod.hex,以及网上的固件CKLinkLite2.30.hex(这个也是两个固件合并在一起)

自制CKLink-lite调试器,调试D1裸机编程.zip (3.27 MB, 下载次数: 30)


回复

6794

帖子

0

资源

五彩晶圆(中级)

确实是无法从IAP功能切换到CKLink功能,用卸载设备然后重新枚举的方式,看楼主的操作进入CKLink-Lite固件也还是可以的


回复

1249

帖子

0

资源

版主

这个CKLink-lite调试器真不错,最佩服自己动手DIY工具了!!!


回复

17

帖子

0

资源

一粒金砂(中级)

有空也做一个

个人签名

相互学习,共同进步。


回复

5365

帖子

18

资源

五彩晶圆(中级)

有点意思,越来越繁荣。

个人签名

默认摸鱼


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

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    推荐帖子
    LED应用的供电电源要求

    LED技术的最新突破使得人们能够生产出可以输出宽谱光的LED,而不再仅仅是传统的红光和绿光的衍生物。因此用在产品中(照 ...

    18年第二季度问答榜颁奖

    感谢大家对我们活动的支持,18年第二季度的问答榜开始颁奖啦~~(2018年4月,5月,6月) 精彩回复奖: maycang 在 求帮助分析 ...

    MSP430__基于MSP430学习开发系统的SD卡FAT16读写程序

    ######################################################################## 下面,介绍一下一个 基于MSP430学习开发系统 ...

    【GD32E503评测】 简易示波器的实验

    本帖最后由 hujj 于 2021-2-4 08:29 编辑 ADC转换测试完成后,便开始了简易示波器的实验。实验的过程就是在开发上ADC1和ADC ...

    dB,对于射频工程师为什么如此重要?

    面对一个射频设计的项目指标,最为常见的一个词就是dB。而对于一个射频工程师来说,dB有时候就像自己的名字般熟悉。dB是一个对数 ...

    数字调制系列:如何理解IQ ?

    最近在筹划写一系列关于数字IQ 调制的短文,以帮助初学者能够更好地理解和掌握。虽然IQ 调制技术已经非常广泛地应用于各种无线通 ...

    关闭
    站长推荐上一条 1/7 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表