资讯动态

RISC-V IDE MRS进阶分享(五):代码密度和运行速度的优化方法

发布时间:2026/10/23 2:32:30 来源:尧图企业网站定制
一、引言MRS(第二代)为MounRiver Studio的换代版本从V2.1开始框架更换至更现代的VSCode并深度定制开发。在工程管理、代码编辑、编译、调试等方面均兼容之前版本并在效率和功能等方面进行提升着力将MRS打造为更加轻量化、智能化、高效化的RISC-V IDE。同时提供Windows/Linux/macOS 以及国产操作系统版本。本文将对MRS在代码密度和运行速度的优化方法进行介绍。二、代码优化XW扩展与B扩展的使用RISC-V标准的压缩指令扩展中仅支持字操作的压缩指令但是在嵌入式领域中字节和半字操作均比较常见为降低代码大小青稞处理器增加了八条半字和字节操作压缩指令XW扩展并且还增加了对B扩展的支持。目前同时支持B扩展和XW扩展的有青稞V3C、V3B、V5A下图引用沁恒微电子官网https://www.wch.cn/products/QingKe.html?categoryId77MRS环境下的CH584F工程模板XW扩展与B扩展使用效果rv32imcXW与B扩展均不开启rv32imcxw只开启XW相比较rv32imc共减少了88字节rv32imc_zba_zbb_zbc_zbs只开启B扩展相比较rv32imc共减少了60字节rv32imc_zba_zbb_zbc_zbs_xw XW与B扩展均开启相比较rv32imc共减少了128字节快速中断增添了一种全新的中断服务程序处理模式该中断服务程序将原本的 16 个Caller Saved整型寄存器的压栈、出栈操作予以减少转而由硬件自动进行保存提高了硬件中断服务程序的响应时间。以CH32V307EVT\EVT\EXAM\USART\USART_Interrupt工程的USART2_IRQHandler函数为例开启快速中断需添加如下属性通过过汇编代码可以看出开启优化后MRS的工具链取消了Caller Saved整型寄存器的压栈、出栈。未开启优化开启优化Highcode段使用及优化增加 highcode 段将该段放置在 RAM 区运行此段中的函数不会被内联并对未使用的 highcode 段函数加以优化降低 RAM和FLASH 的使用量CH573F为例未开启优化开启优化添加mcpy指令mcpy指令功能与c语言库函数memcpy相同使用于内存复制搬运场景能够提高在内存区域与数据宽度非对其时内存搬运的速度。MRS环境下的CH584F工程模板官方例程已经使用内嵌汇编的形式定义了__MCPY函数用户后续可以直接调用该函数进行使用

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑