织女星开发板启动模式修改——从ARM M4核启动

前言

刚开始玩织女星开发板的时候,想先从熟悉的ARM核入手,连上Jlink,打开MDK版本的Demo程序,编译OK,却检测不到芯片,仔细看了一下文档,原来RV32M1芯片默认从RISC-V核启动,如果想要调试下载ARM核程序,需要切换为ARM核启动,然后按照文档操作步骤,完成了启动模式的修改,现在分享给大家。

RV32M1芯片内核简介

织女星开发板主控芯片RV32M1,片上集成了四个核。

两个RISC-V内核:

  • RISC-V RI5CY Core
  • RISC-V ZERO_RISCY Core

两个ARM内核:

  • ARM Cortex-M4F Core(CM4)
  • ARM Cortex-M0+ Core(CM0+)

两个ARM核共用一个JTAG调试口,两个RISC-V核共用一个JTAG调试口,每个核都可以运行在48MHz频率,但在高速模式(HSRUN)时,可达72MHz,如果要查看系统当前的运行频率,可以在主程序中使用如下函数来获取系统时钟频率:

    uint32_t SysClk;SystemCoreClockUpdate();  SysClk = SystemCoreClock; PRINTF("系统时钟: %d rn", SysClk);

4个核被分为两个子系统,大核CM4F/RI5CY和小核CM0+/ZERO-RISCY,片上集成1.25 MB Flash 、384 KB SRAM,其中1 MB的Flash被大核所使用,起始地址0x0000_0000,另外的256 KB Flash被小核所使用,起始地址0x0100_0000。

Flash地址示意

为了支持多核运行模式,RV32M1片上集成了多核管理系统(Multi_Core Unit),包括消息传递单元(Messaging Unit)、信号量2(SEMA42)、系统控制模块 (MSCM)、 扩展资源控制器 (XRDC)等模块,用于多核间的通信和控制。

内部整体框图

关于RV32M1多核开发的详细介绍,可以参考官方文档:Develop_Multicore_Application_on_RV32M1.pdf

启动模式的配置

通过配置RV32M1片上的FOPT寄存器(Flash Option Register),可以支持上电时从不同的核来启动,默认从RISC-V RI5CY内核启动,如果要进行ARM核开发,如M4开发,则必须切换为从ARM核启动,否则当使用调试器进行程序下载时,根本不能识别到ARM芯片,这一点要特别注意。关于FOPT寄存器各位的描述,可以查看RV32M1参考手册P450,为了便于切换启动模式,官方已经为我们写好了配置文件,直接通过openocdtelnet软件就可以完成对FOPT寄存器的配置。

安装openocd调试软件

  • 解压Toolchain_Windows.zip中的openocd.zip,解压路径可任意,建议解压到Eclipse安装目录下的[DISK:]eclipseGNU MCU Eclipseopenocdbin
  • 为了能在cmd命令端直接使用openocd命令,我们需要在环境变量PATH中添加一条,值为openocd下bin文件夹的路径,我的是在:F:VEGA_BoardIDEeclipseGNU MCU Eclipseopenocdbin
  • 测试是否安装成功。在cmd命令窗口输入openocd回车,弹出如下命令,说明安装成功。
C:UsersLAPTOP>openocdOpen On-Chip Debugger 0.10.0+dev-00433-g849f49ca (2019-01-04-07:48)Licensed under GNU GPL v2For bug reports, readhttp://openocd.org/doc/doxygen/bugs.html

安装 telnet 客户端应用

Windows系统可以通过如下命令安装使用:

  • cmd命令窗口输入如下命令来安装telnet:
pkgmgr /iu:"TelnetClient"

  • 测试是否安装成功。cmd命令窗口输入telnet命令,弹出如下窗口,说明安装成功。
欢迎使用 Microsoft Telnet ClientEscape 字符为 'CTRL+]'Microsoft Telnet>

  • 输入help查看帮助信息:
Microsoft Telnet> help命令可能是缩写。支持的命令为:c    - close                    关闭当前连接d    - display                  显示操作参数o    - open hostname [port]     连接到主机(默认端口 23)。q    - quit                     退出 telnetset  - set                      设置选项(键入 'set ?' 获得列表)sen  - send                     将字符串发送到服务器st   - status                   打印状态信息u    - unset                    解除设置选项(键入 'set ?' 获得列表)?/h  - help                     打印帮助信息

升级Jlink固件

修改启动模式,只能通过RISC-V内核来修改启动模式,即通过RISC-V JTAG调试口,

  • 板载调试器升级为Jlink固件,具体操作:织女星开发板调试器升级为Jlink固件,升级完成后,连接RISC-V调试口和JLink调试口。
  • 升级当前Jlink驱动程序为支持RISC-V调试的驱动程序,即设备管理器里为
  • 确保openocd已经添加到环境变量
  • 打开SDK目录下的rv32m1_sdk_riscvboardsrv32m1_vega目录
  • 在当前窗口打开cmd命令窗口,在路径栏输入cmd即可在当前路径下打开cmd命令窗口
  • 在打开的命令窗口输入openocd -f rv32m1_ri5cy.cfg,弹出如下窗口说明连接成功。
  • 按Win+R快捷键,输入cmd,再打开一个cmd命令窗口,输入telnet localhost 4444命令
C:UsersLAPTOP>telnet localhost 4444正在连接localhost....

弹出telnet窗口,输入cm4_boot,选择从CM4核启动

Open On-Chip Debugger>cm4_boot

先按住板子上的复位按键SW1,然后按回车执行命令。

>cm4_boot>

稍等1秒钟,成功执行。然后重新上电,此时就是从ARM CM4核启动的。

如果想直接使用板载调试器来调试ARM核,Jlink驱动程序需要恢复为原来的J-link driver,操作步骤可以参考:织女星开发板调试器升级为Jlink固件,打开ARM SDK目录下的点灯程序,目录为:rv32m1_sdk_armboardsrv32m1_vegadriver_examplesgpioled_outputcm4mdk,编译,下载,调试,均正常。

使用批处理文件来简化操作

为了更方便的来修改启动模式,可以把上述的两条命令写成批处理文件:

  • 在rv32m1_ri5cy.cfg所在的路径,新建一个1_openocd.txt文件,以记事本方式打开,输入命令openocd -f rv32m1_ri5cy.cfg,文件扩展名修改为bat,即成为批处理文件。
  • 在rv32m1_ri5cy.cfg所在的路径,新建一个2_telnet.txt文件,输入命令telnet localhost 4444,修改扩展名为abt
  • 在以后需要更改启动配置时,只需要双击1_openocd.bat文件,然后双击2_telnet.bat文件,然后输入对应的启动命令。如ri5cy_bootcm4_bootzero_bootcm0_boot,然后重新上电,芯片就会从配置的核启动。

一些奇怪的事情

  • 当配置为从ARM CM4核启动时,上电之后,执行程序会延时几秒钟。
  • 配置成CM0启动时,能检测到芯片,但是程序下载不进去,不知道这是为什么。

而配置成RI5CY和ZERO_RISCY核启动时,下载调试均正常。

参考资料

  • Develop_Multicore_Application_on_RV32M1.pdf
  • RV32M1数据手册
  • RV32M1参考手册
  • 织女星开发板快速入门指南.pdf

历史精选

  • 织女星开发板调试器升级为Jlink固件
  • NXP恩智浦VEGA织女星开发板免费申请!
  • 国产处理器的逆袭机会——RISC-V
  • 手把手教你制作Jlink-OB调试器(含原理图、PCB、外壳、固件)
  • Jlink使用技巧系列教程索引
  • Qt实现软件自动更新的一种简单方法

欢迎关注我的个人博客:www.wangchaochao.top

或微信扫码关注我的公众号

mssql 无法启动调试器 数据为空_织女星开发板启动模式修改——从ARM M4核启动相关推荐

  1. 织女星开发板能移植linux吗,织女星开发板启动模式修改——从ARM M4核启动

    前言 刚开始玩织女星开发板的时候,想先从熟悉的ARM核入手,连上Jlink,打开MDK版本的Demo程序,编译OK,却检测不到芯片,仔细看了一下文档,原来RV32M1芯片默认从RISC-V核启动,如果 ...

  2. mssql 无法启动调试器 数据为空_Windows无法启动:如何利用PE拯救桌面重要数据?...

    Windows PE ,即Windows预安装环境,它在操作界面上与一般系统并无两样,但是功能却精简了很多,它只能运行包括Windows安装程序及脚本.连接网络共享.执行硬件检测等小功能,它可以被看做 ...

  3. Qt Creator启动调试器

    Qt Creator启动调试器 启动调试器 以不同的模式启动调试器 以启动内部模式启动 以启动外部模式启动 以附加模式启动 在流程启动时附加到流程 在核心模式下启动 在后期模式下启动 远程调试 使用G ...

  4. 解决Visual Studio的IIS与无法启动调试器问题

    前两天在VS上运行C#项目时报了两个错误:"您必须安装iis才能查看本地iis网站"和"无法启动调试器,没有正确安装调试器",在此做个记录. 1.您必须安装II ...

  5. 织女星开发板调试器升级为Jlink固件

    文章目录 前言 准备工作 升级操作 升级Jlink驱动 板载接口的说明 历史精选 前言 为了能使用板载的FreeLink调试器来调试RISC-V内核,我们需要把默认的CMSIC-DAP固件,升级为JL ...

  6. 织女星开发板不能调试

    问题描述 一块织女星开发板使用了一段时间之后突然不能调试了,使用另外一块开发板下载相同的程序能够正常调试. 我的判断 1. 复位引脚的问题 经过一段时间的观察之后,我发现复位指示灯在微弱的闪烁,这个现 ...

  7. 自定义注解在拦截器中为空_如何在Android中为特定联系人设置自定义铃声

    自定义注解在拦截器中为空 Everyone likes to know who's calling before they actually pick up the phone, and the ea ...

  8. mysql数据库插入数据为空_用java向mysql数据库中插入数据为空

    利用java面向对像编程,向数据库中插入数据时.遇到插入的数据为空的情况.在此做一小结: 1.数据库连接正正常 2.sql语句没有问题 3.程序没有报异常 4.代码: import java.util ...

  9. OK6410开发板Uboot学习总结----(一)Uboot启动分析

    OK6410开发板的Uboot是在1.1.6版本上进行移植的,为了便于分析,创建一个Source Insight工程,把源码下board目录里跟samsung相关的文件.cpu目录下s3c64xx文件 ...

最新文章

  1. 负载分析及问题排查极简教程
  2. 论政府开放数据的意义
  3. python恶搞小程序-有趣的python小程序
  4. java 调用servlet_[Java Servlet]调用 Servlet
  5. python类的命名空间与组合
  6. 这可能是这次疫情最搞笑的事情,可看着看着却鼻酸了
  7. python将字符串s和换行符写入文件fp_Python 文件操作
  8. createwindow 和 dialogbox的区别
  9. Android studio 如何导入并引用Library工程
  10. 进销存excel_Excel进销存管理系统(升级版),库存进出全自动,使用超方便哦...
  11. 利用百度API进行淘宝评论关键词提取
  12. element 日期选择器不能选择当天日期以后的日期
  13. win10安装winmerge 启动出错
  14. 实现网站的高并发访问
  15. 40幅五彩缤纷的秋天风景摄影作品欣赏(下篇)
  16. 短期学习目标2022/3/16
  17. Python一行代码搞定炫酷可视化,Cufflinks值得拥有 !
  18. mysql bak 还原数据库文件格式_Navicat操作SQL server 2008R2文件.bak文件还原
  19. 《野兽绅士》总结6——升级关系时,请在合适时机使用核动力
  20. 爱客ikcrm企业级应用的“免费”是鸡汤?

热门文章

  1. 遭遇Eva.vbs病毒
  2. 基于Unity的2d动画游戏-------------------c#开发
  3. Android View 动态加载不同xml布局文件
  4. 2023PS beta 官方注册安装教程
  5. 【转】淘宝接口API开发 taobao代购系统API接口调用
  6. 解决:每次打开一个EXCEL都会自动打开另外一个EXCEL文件
  7. 求出首地址为DATA的字数组中的最小偶数,并将它放在AX中
  8. 详解正则中先行断言的用法
  9. 高反光金属工件缺陷检测|高反光材料检测方案
  10. SAP QM01 保存增强