查看: 130|回复: 4
收起左侧

RISC-V MCU开发(十二):命令行操作

  [复制链接]

  离线 

  • TA的每日心情
    拍拍
    2021-10-29 10:26
  • 签到天数: 1 天

    [LV.1]

    发表于 2021-10-19 09:39:32 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
       考虑到习惯命令行操作的用户群体,MounRiver® Studio(MRS)除了使用图形化UI进行用户交互外,也提供了脱离界面的命令行操作说明,用于对编译后的工程进行烧录和调试。如果是Linux平台用户,您也可以在MRS官网的下载页面下载工具链和OpenOCD压缩包,根据说明引导进行实践。本文以Windows平台软件环境MRS1.51进行介绍。

    【命令行入口】MRS提供了已包含工具路径的命令行。点击工具栏图标 ,或者在Project Explorer右键弹出菜单中选择Open MRS Console,即可打开命令行,并自动指定将当前路径为对应的目录路径(如果选择的是文件,则当前路径为文件所在的目录)。若当前未选择资源,命令行的当前路径即为工作空间目录。

    MounRiver Stuido IDE-RISC-V MCU开发(十二):命令行操作risc-v单片机中文社区(1)
    【编译】
    由于脱离了界面的UI配置,对于未知的工程结构。用户需要:
    1. 手动为每个源文件目录编写Makefile规则,指定源文件集合、依赖、汇编/编译工具exe、编译参数(例如编译头索引目录)。
    2. 切换到一个新目录,作为输出目录,用户手动为编写Makefile规则,指定链接各个源的中间文件、链接工具exe、链接参数(例如ld文件)。以上步骤了解Makefile的语法。
    3.命令行路径切换到步骤2的输出目录下,执行make进行编译,如果编译工程成功将会最终输出elf文件。执行make clean可进行输出文件的清理。
    【烧写,以wch的RISC-V内核工程为例】
    擦除 OPENOCD_PATH –f CFG_PATH –c init –c halt -c "flash erase_sector wch-riscv 0 last" –c exit
    编程 OPENOCD_PATH –f CFG_PATH –c init –c halt -c "program TARGET_PATH ADDRESS" –c exit
    校验 OPENOCD_PATH –f CFG_PATH –c init –c halt –c "verify_image TARGET_PATH " -c exit
    复位 OPENOCD_PATH –f CFG_PATH –c init -c reset -c exit

    【调试】
    1.创建openocd进程
    格式:OPENOCD_PATH  -f  CFG_PATH
    提倡使用拖拽的方式,提升效率,也可避免输入路径出错。
    执行命令,openocd会获取开发板状态,并启动协议server端。随后openocd进程挂起,等待连接。命令行中显示等待连接的端口号,此处gdb通信的端口默认为3333。
    MounRiver Stuido IDE-RISC-V MCU开发(十二):命令行操作risc-v单片机中文社区(2)

    2. 开启第二个MRS Console,启动gdb client
    格式:  GDB_PATH  [FILE_PATH]  [–ARGS]
    无参数形式riscv-none-embed-gdb为默认的gdb cli命令。
    参数形式riscv-none-embed-gdb xxxx.elf -interpreter mi  在支持cli基础上,同时支持gdb mi命令。MRS调试打开gdb trace之后,Console输出的命令就是gdb mi命令。可以复制到此模式下逐个运行。

    若指定了FILE_PATH,如命令riscv-none-embed-gdb xxxx.elf ,则后续不需要调用file命令指定调试文件;若未指定FILE_PATH,则后续需要file命令指定调试文件。

    3.gdb连接设置
    设置连接配置:
    set mem inaccessible-by-default off
    set remotetimeout unlimited
    (rv内核) set architecture riscv:rv32

    4. 连接server端口
    target remote ip:port:连接端口
    MounRiver Stuido IDE-RISC-V MCU开发(十二):命令行操作risc-v单片机中文社区(3)

    5.        调试的其他命令
    load :烧写, 执行后将pc置为程序第一条指令处;
    info register + 寄存器名: 查看寄存器;
    info breakpoint:查看所有断点;
    break +行号/方法名/符号名:设置断点 ;
    continue:继续跑到下一个断点,如果没有断点则一直运行;
    next:调试执行下一步;
    step:单步进入;
    print:打印变量值;
    list:(需要工程目录包含源码, 编译时调试等级-g以上)查看当前代码 ;

    暂停状态时,可执行查看寄存器、查看当前代码,查看反汇编等操作;
    gdb模式下,可输入help all列出所有命令,如搜索、变量打印、查看堆栈等。
    题主优质好文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    点评回复

    使用道具 举报

      离线 

  • TA的每日心情
    拍拍
    2021-3-7 15:55
  • 签到天数: 15 天

    [LV.4]

    发表于 2021-10-19 20:41:31 | 显示全部楼层
    这个命令行看着舒服,有点linux的感觉

    点评

    MRS官网也提供了Linux下的工具链、OpenOCD以及带界面的IDE,工具链都是GCC,想来命令行指令参数应该和Windows下相差不大的。  详情 回复 发表于 2021-10-21 17:13
    全球首家只专注于RISC-V单片机行业应用的中文网站

      离线 

  • TA的每日心情
    飞起
    2021-11-22 18:36
  • 签到天数: 31 天

    [LV.5]

    发表于 2021-10-20 08:20:10 | 显示全部楼层
    学习了~~

    点评

    多实践,多分享,共同进步!  详情 回复 发表于 2021-10-21 17:13
    全球首家只专注于RISC-V单片机行业应用的中文网站
    点评回复

    使用道具 举报

      离线 

  • TA的每日心情
    拍拍
    2021-10-29 10:26
  • 签到天数: 1 天

    [LV.1]

     楼主| 发表于 2021-10-21 17:13:21 | 显示全部楼层
    孔明 发表于 2021-10-19 20:41
    这个命令行看着舒服,有点linux的感觉

    MRS官网也提供了Linux下的工具链、OpenOCD以及带界面的IDE,工具链都是GCC,想来命令行指令参数应该和Windows下相差不大的。
    全球首家只专注于RISC-V单片机行业应用的中文网站

      离线 

  • TA的每日心情
    拍拍
    2021-10-29 10:26
  • 签到天数: 1 天

    [LV.1]

     楼主| 发表于 2021-10-21 17:13:51 | 显示全部楼层

    多实践,多分享,共同进步!
    全球首家只专注于RISC-V单片机行业应用的中文网站
    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条


    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2021-12-8 22:59 , Processed in 3.439421 second(s), 71 queries .

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