简介
CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。
本章教程将通过程序代码进行内部FLASH读写操作。
1、CH32V103内部FLASH简介及相关函数介绍
CH32V103芯片含有一个内部FLASH,其存储数据在掉电后不会丢失,主要用于存储程序代码。芯片在重新上电并复位后,可通过加载读取内部FLASH中程序代码运行。
通常,我们可通过两种方式对内部FLASH进行读写:一是通过下载器等外部工具读写内部FLASH,二是通过芯片运行程序代码读取自身内部FLASH。本章即通过第二种方法进行内部FLASH读写。此外,就读写速度而言,读写内部FLASH比外部FLASH快的多,且由于内部FLASH掉电后数据不会丢失,因此内部FLASH剩余空间可用于存储重要数据和关键记录。
由于内部FLASH可被通过外部工具或程序代码读写,为了防止内部FLASH中存储数据被获取,某些应用会禁止读写内部FLASH内容,或在第一次运行时计算加密信息并记录到某些区域,然后删除自身的部分加密代码,这些应用都涉及到内部FLASH的操作。
CH32V103内部FLASH主要包含主存储器和信息块两块区域,其中信息块又可被分为两块系统引导代码存储区域、用户选择字和厂商配置字区域。其中,主存储器区域主要用于用户的应用程序存储,以4K字节(32 页)单位进行写保护划分;除了“厂商配置字”区域出厂锁定,用户不可访问,其他区域在一定条件下用户