目录

一、在工程中单独设置预编译宏

二、将变量存放到指定RAM地址

三、串口打印浮点数

四、添加64位数据处理

五、使用math数学库

六、关闭仿真时自动清dataflash功能

七、配置printf待打印数据不加\n换行

八、修改编译器输出hex文件的位置 RISC-V单片机集成开发环境(IDE) MounRiver Studio 修改hex输出路径 - debugdabiaoge - 博客园 (cnblogs.com)

九、编译器生成bin文件 MRS CH573 CH582生成BIN文件 - debugdabiaoge - 博客园 (cnblogs.com)

十、const修饰的只读数据放在指定flash区域中 Mounriver修改数组地址 - SweetTea_lllpc - 博客园 (cnblogs.com)

十一、208工程显示编译后占用的flash与ram大小 RISC-V MCU IDE MRS(MounRiver Studio)开发之: 编译后打印FLASH及RAM使用占比信息_MounRiver_Studio的博客-CSDN博客_mounriver studio flash size

一、为了减小EVT大小,沁恒官方整合了一些文件作为公共文件,由多个工程共同使用。比如说调试BLE例程和蓝牙mesh例程时,有config.h这个文件,直接在该文件中修改宏,会影响到很多工程。可以在右键工程名->中设置宏定义,只针对这一个工程配置宏。比如说我在某工程中加一个HAL_SLEEP宏置1,见下图。

配置好之后,该工程config头文件中的HAL_SLEEP宏会变成灰色,表示此处的宏不生效,以工程配置中的编译预处理为准。

二、若要指定变量在某个RAM地址,需要在同①的右键工程名->Properties配置中添加一行代码,在Linker flags中加入--section-start=.XXX=RAM中的起始地址,XXX为地址名,如下图。在582芯片中,这个值要大一点,前面部分RAM在其他特定的地方有用到,当然也不能超过582RAM的最大值32K。笔者这里用0x20001000,编译后是可以运行的。

在定义变量时使用__attribute__((section(".XXX")))修饰一下,如下图。即使此处赋了初始值,实际分配的值仍是随机值,需要在程序中再赋一下值。此值在RAM保持,不会受到按键复位的影响,但断电丢失。

编译之后可以在工程的obj文件夹下的.map文件中找到地址映射的位置,如下图。

三、沁恒目前的57x、58x系列蓝牙芯片,均不支持硬件浮点运算,不过默认是支持硬件整型程序和软件浮点运算的。软件浮点运算可以直接计算和使用,只是默认设置直接printf打印,是打印不出来的。若要打印浮点数,需要在右键工程名->Properties配置,在下图位置,勾选一下打印库的选项,二选一。使用的库相比之前多了,根据选择的库不同,会占用相应的更多的flash和ram。勾选后点击Apply应用以及Apply and Close应用并关闭,确保配置成功保存。注意这两个库不要与wchprintf一起勾选,可能会无法打印。如果既要能打印浮点数,又要能不加\n换行,勾选一个wchprintfloat即可。

框选前↓

1框选后↓

2框选后↓

还有一种方法,按②中的操作,去掉勾选,使用完整库,也能打印浮点型,但是库大了很多,不推荐。②例中库增量比较小是由于②中没有涉及到float类型的运算。

四、582默认使用32位运算,若想使用64位运算,可以在右键工程名->Properties配置中,去掉下图中的勾选来实现。从nano库改为完整大小的库,使用的库变大而占用更多的flash和ram。

去掉框选前↓

去掉框选后↓

五、若要使用数学公式,在包含了math.h之后,还需要增加下math库。右键工程名->Properties配置,在下图Libraries中,添加math库的简写m即可。

六、使用WCH-LINK仿真时,默认是清空dataflash的,需要在debug configurations中针对仿真的工程添加一行配置,在运行仿真时不会自动清空dataflash。

七、默认情况配置下使用printf函数,需要在待打印的字符串后加\n换行,串口助手中才会显示全部数据,否则将会缓存一块数据,满了再全部输出打印。可以在右键工程名->Properties配置中,勾选下方的库,这样可以不用换行符,直接打印数据。注意wchprintf不要与③中的两个库一起勾选,可能会无法打印。如果既要能打印浮点数,又要能不加\n换行,勾选一个wchprintfloat即可。

八、修改编译器输出hex文件的位置 RISC-V单片机集成开发环境(IDE) MounRiver Studio 修改hex输出路径 - debugdabiaoge - 博客园 (cnblogs.com)

九、编译器生成bin文件 MRS CH573 CH582生成BIN文件 - debugdabiaoge - 博客园 (cnblogs.com)

十、const修饰的只读数据放在指定flash区域中 Mounriver修改数组地址 - SweetTea_lllpc - 博客园 (cnblogs.com)

十一、208工程显示编译后占用的flash与ram大小 RISC-V MCU IDE MRS(MounRiver Studio)开发之: 编译后打印FLASH及RAM使用占比信息_MounRiver_Studio的博客-CSDN博客_mounriver studio flash size

最新文章

  1. sqlserver索引与查询优化
  2. [PHP]Yii2框架的坑
  3. c#连接SFTP上传文件
  4. 一秒钟生成自己的iOS客户端
  5. 不能使用tpcc-mysql测试OneProxy
  6. Android IOS WebRTC 音视频开发总结(三五)-- chatroulette介绍
  7. The solution to Force.Com IDE 29.0 PassWord Problem
  8. 第四十一篇、Masonry利用Block实现链式编程
  9. SR4000笔记
  10. FFT算法的物理意义
  11. AOP与动态代理有什么联系
  12. Docker网络——单host网络
  13. SQL的case when then else end语句的用法
  14. Xpath初了解
  15. python爬虫之12306网站--车站信息查询
  16. 牛客网 2018年东北农业大学春季校赛 L题 wyh的天鹅
  17. 插件使用一顶部消息提示---overhang
  18. 理解Session缓存
  19. CoreData 执行executefetchrequest卡死解决办法
  20. fiddler电脑抓包和手机抓包

热门文章

  1. webpack动态配置多静态资源路径,动态配置多上线路径,配置less,多种图片引用方式----"webpack": "^4.41.6",
  2. VUEX 使用学习五 : getter
  3. redisConfig+redisUtil开箱即用
  4. StringBuilder的原理-append方法
  5. 吾剑未尝不利,国内Azure平替,科大讯飞人工智能免费AI语音合成(TTS)服务Python3.10接入
  6. Linux三剑客日志处理系列
  7. 多个仓库源配置及repositories和mirrors的配置
  8. 现代图片性能优化及体验优化指南 - 图片类型及 Picture 标签的使用
  9. 1.2.HBuilder软件与uniapp文件介绍
  10. P4_创建第一个小程序项目