在嵌入式开发中,当我们完成了工程创建、代码编辑等操作之后,就可以开始进行工程编译。 对于使用内置工程模板创建或外部导入的项目,MounRiver® Studio(MRS)会根据对应芯片内核自动配置好目标工具链(riscv-none-embed-gcc或arm-none-eabi-gcc),同时,目标平台、优化等级、调试等级以及文件引用等编译配置也会自动设置完毕。
MRS最新V1.51版本安装包获取方式:www.mounriver.com 。
【工程属性页】在资源管理器窗口选中要编译的工程,点击工具栏上的工程属性配置 按钮,或者点击右键菜单中的”Properties”进入编译选项属性页面。
【目标处理器】用于指定目标指令架构、扩展函数等参数。
-mcmodel=medlow:程序及其静态定义的符号必须位于单个2 GiB地址范围内,并且必须位于绝对地址-2 GiB和+2 GiB之间。程序可以静态或动态链接。这是默认的代码模型。
-mcmodel=medany:程序及其静态定义的符号可以任何单个2 GiB地址范围内。程序可以静态或动态地连接。
【优化等级】主要是配置GCC的优化选项,想要添加其他优化选项可以写在下方other optimization flags中。
【警告等级】用于设置GCC的警告参数选项。
【调试等级】红框中的-g设置GDB调试信息,注意生成静态库时将红框中调为None,否则生成的库会包含调试信息,导致库文件过大。
【汇编、头文件添加】红框中的位置分别为添加汇编、头文件接口,点击右侧方框上绿色的加号去添加文件路径。
【链接脚本文件添加】红框中的位置分别为添加链接脚本文件接口,点击右侧方框上绿色的加号去添加文件路径。
【库文件添加】
-L添加库文件的路径,-l添加库名,注意库名要去掉前缀和后缀,例如libtest.a,只需要填写test。
【链接其他文件】Other objects 可以添加想要参与链接的.o或者.lib文件。
【输出文件格式】右侧红框中可点击下拉框选择编译后输出BIN文件或者HEX文件。
【输出类型】图示位置可选择生成可执行文件或者静态库文件。
以上就是MRS常用的编译配置,编译之后生成的文件会存在工程目录中obj文件中,其中.list和.map文件可用于对程序分析。
引用: freebsder 发表于 2021-9-27 18:04 谢谢分享!学习了。
哈哈,RISC-V内核MCU开发过程中的一点小经验,期待共同进步~