RISC-V IDE MRS使用笔记(十):嵌入式编程开发技巧汇总

59 篇文章 34 订阅
51 篇文章 6 订阅

RISC-V IDE MRS使用笔记(十):嵌入式编程开发技巧汇总

MRS常见嵌入式开发技巧:

Q1:如何修改程序编译生成库?
A1:在工具栏中点击活动工程的编译配置按钮,在Build Artifact的Tab页面指定目标类型,选中为Static Library
在这里插入图片描述

点击Apply and Close应用编译配置。此时会提示建议将调试等级设置为None,优化等级设为Os,这是为了减少生成库的大小并且防止源码被反汇编而泄露。点击OK,即可自动设置。
在这里插入图片描述

点击编译按钮,在输出目录obj下就生成了静态库。默认为lib {ProjName}.a,{ProjName}为宏变量,代表工程名。如下图,本例中会生成libusart.a
在这里插入图片描述

Q2:如何程序编译后的目标名称?
A2:如需指定目标输出的名称,在Q1的例子中,工程配置的同个Tab界面,可以修改相关的前缀、名称和扩展名
在这里插入图片描述

编译为elf时,根据工程配置会伴随生成hex、bin,以及list和map文件,用户如果不想名称与工程相同,逐个重命名这些文件会比较麻烦。修改此处的Artifact name即可统一指定。
前缀、扩展一般来说无需修改,因为elf的后缀、库的前缀与扩展名是确定的。

Q3:编译报错找不到链接库,报错信息”ld.exe: cannot find -lxxx”
A3:这种情况下已经编译完了各个源文件,链接过程中在搜索路径中找不到xxx库文件。因此打开工程属性页中编译配置,在Tool Settings的TAB页面下查看C Linker工具的库搜索路径,检查是否缺失了需要链接的.a。
在这里插入图片描述

Library search Path(库搜索路径)格式一般是工程变量表示的逻辑路径,对应工程树的结构。这种情况下在工程树中展开对应的目录,直观检查即可。

本例中,检查NetLib文件夹,发现缺失libwchnet.a,从系统中拖拽库文件到工程树的NetLib目录节点(或者复制该文件,选中NetLib目录,ctrl+V粘贴),再F7执行增量编译,就能成功编译了。

若库搜索路径的格式是绝对路径,打开电脑文件浏览器对应位置检查,添加缺失的即可。如果路径在本机找不到,说明可能工程是由其他电脑拷贝而来的,需要在上图的界面中重新添加。此处不建议再添加绝对路径,而是在添加/编辑时点击Workspace,选中工程下的资源后自动生成逻辑路径。避免工程拷贝后继续出现绝对路径错误的情况。
在这里插入图片描述

Q4:外部链接目录失效,如何恢复?
在这里插入图片描述
A4:方法一:删除并重新添加:选中失效的链接目录,快捷键delete。确认删除。随后右键工程,重新添加外部链接目录,在文件浏览器中找到位置并确认。
在这里插入图片描述在这里插入图片描述

方法二:更新链接位置。右键失效链接目录,点击Properties,Resource分类下可以查看到记录的逻辑路径Location,以及解析后的绝对路径Resolved location。当前情况下Resolved Location自然是不存在的。点击Edit,弹出窗体中,点击Folder,指定要链接的位置。最好点击OK进行更新即可。
在这里插入图片描述

因此,即使用户在工程编译配置中尽量使用了逻辑路径(如Q3中的例子),但本机下的目录移动、删除仍有概率导致外部链接目录失效,建议尽量在MRS软件中操作目录和文件!

Q5:下载过程中未成功执行,也未报错
在这里插入图片描述

A5:旧工程缺失了MCU型号字段。点击工程树右上角的按钮Configure MCU Debugger,设置工程对应的芯片MCU型号,点击应用。

在这里插入图片描述在这里插入图片描述

重新下载,成功执行操作。

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值