关于配置MCU从FLASH某一位置开始运行——以CH32V203为例
正常MCU运行时,都是从FLASH 0起始地址开始运行,有时因为某些需要,需要配置从非0地址开始运行。以CH32V203为例(适用于其他CH32V系列),主要修改配置如下:
主要集中在ld文件的修改:
1、修改FLASH的分配,将FLASH分配成2块区域,如下图
/* CH32V20x_D6 - CH32V203K8-CH32V203C8-CH32V203G8-CH32V203F8 */ FLASH1 (rx) : ORIGIN = 0x00000000, LENGTH = 16K FLASH (rx) : ORIGIN = 0x00004000, LENGTH = 48K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
2、修改初始化段,程序的入口,_start存放在该段,如下图
.init : { _sinit = .; . = ALIGN(4); KEEP(*(SORT_NONE(.init))) . = ALIGN(4); _einit = .; } >FLASH1 AT>FLASH1
实际上FLASH分为两个区域,每个段都进行了修改,但由于此处第二部分FLASH区域使用原有的FLASH名称没有改变,因此ld文件中其他段不需要修改。
关于ld文件的介绍,想了解的朋友可参考下帖讲解:
RISC-V MCU CH32V307/CH32V203/CH32V003等 ld链接脚本说明
分类:
32位MCU学习
标签:
CH32;RISC-V;ld文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2022-09-15 MCU中断延迟时间测试