问答

汇集网友智慧,解决技术难题

21ic问答首页 - RISC-V核MCU在线下载调试代码疑问

在线 代码 疑问 RISC-V MCU 技术交流

RISC-V核MCU在线下载调试代码疑问

lindahnu2024-04-03
本帖最后由 lindahnu 于 2024-4-8 15:44 编辑

使用eclipse+jlink实现自研MCU在线下载调试代码,MCU核是cortex-m0,调试接口是jtag,要烧写内部Flash,实现openocd和SEGGER的flashloader。后面要换成RISC-V核,是不是不用管IP核是哪个厂家,只要满足烧写flash和有jtag接口,就可以按M0核的方法实现在线调试?
像GD32VF103用芯来科技的RISC-V核,有jtag接口,SEGGER是支持芯来科技的IP核才能使用JLINK调试?
回答 +关注 9
20436人浏览 8人回答问题 分享 举报
8 个回答
  • 林哥,技术是一样的。
    以前用厂家给的bsdl文件,移植了个开源的软件,通过jtag,控制io脚拉高拉低来烧写外置flash的。
    效率太低了。JTAG链每次改一个寄存器要操作一千多拍。
    现在都是先下载一段代码到ram里面,然后从ram中执行来下载flash。
    代码写寄存器就是一条指令,用过之后就再也不想模拟io了。
    但是唯一的缺点是代码和cpu内核有关。改GPIO的话就是方向寄存器和数据寄存器,和CPU的ip core无关。
  • lindahnu 发表于 2024-4-7 11:48
    我看SEGGER Embedded Studio 8.10b里是有RISCV核的选择,eclipse里也有,环境不支持的外设寄存器是什么意 ...

    内核实际能看到的内容很有限的,调试的时候经常希望看到外设的寄存器,比如你调试串口,要看某个状态,环境支持的话你直接就能找个这个寄存器并且每个bit都定义好了,环境不支持的话你只能通过地址去看寄存器的值,而且每个bit你还要对照手册去看是什么含义。
  • zchong 发表于 2024-4-4 09:12
    环境支持的内核应该就能调试,但如果环境不支持外设寄存器,调试起来相对麻烦一下,要自己去匹配寄存器定义 ...

    我看SEGGER Embedded Studio 8.10b里是有RISCV核的选择,eclipse里也有,环境不支持的外设寄存器是什么意思?
  • 本帖最后由 lindahnu 于 2024-4-7 11:56 编辑
    icecut 发表于 2024-4-4 10:06
    nor 比较简单,一般是 jtag 直接控制引脚电平完成的。 与芯片指令没关系。 所以可以直接下载。
    如果是加速 ...

    就是烧写代码到内部flash,IP核厂商支持jtag接口是不是就能用SEGGER Jlink和openocd+jlink调试?
  • lishutong 发表于 2024-4-4 20:32
    RISC-V调试有自己的接口和协议,和ARM的不同,同是JTAG,但是涉及到具体的调试的细节相差比较大 ...

    您的意思是IP核厂商设计的RISCV核,JTAG接口协议和SEGGER Jlink不一样就不能用?openocd上也不能用?我糊涂了,JTAG不是标准协议吗?
  • RISC-V调试有自己的接口和协议,和ARM的不同,同是JTAG,但是涉及到具体的调试的细节相差比较大
  • nor 比较简单,一般是 jtag 直接控制引脚电平完成的。 与芯片指令没关系。 所以可以直接下载。
    如果是加速版本,先把数据用 jtag 写到内存,再把程序写到内存,执行程序完成 nor 写入。这种常用于 nand 写入。需要用对应的程序。
    一般是用芯片公司推荐的仿真器+openocd 来完成
  • 环境支持的内核应该就能调试,但如果环境不支持外设寄存器,调试起来相对麻烦一下,要自己去匹配寄存器定义

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