1 概述
CW32F030 内部集成 8KB 嵌入式 RAM 供用户使用,用来存放程序执行过程中的各种数据。
RAM 的起始地址为0x2000 0000,数据在 RAM 中以小端模式存储,即最低字节地址空间存放数据的最低有效字节数据。
2 主要特性
• 支持以字节(8bit)、半字(16bit)或全字(32 bit)3 种位宽进行访问
• 零等待延迟,能够被 CPU 和 DMA 以最大的系统时钟频率进行访问
• 支持奇偶校验功能
3 RAM 存储器操作
用户可执行的 RAM 存储器操作包括:读操作、写操作。
对 RAM 的读写操作支持 8bit、16bit 和 32bit 三种位宽,用户程序可以通过直接访问绝对地址的方式完成读写,但要注意读写的数据位宽必须和对应地址边界对齐,否则读写操作无效,并会导致 HardFault 硬件错误异常。
3.1 读操作
读操作支持 3种不同位宽,可采用直接访问绝对地址方式读取,但要注意读取的数据位宽必须和对应地址边界对齐。
代码示例:
8bit 读:tempdata = * ( ( uint8_t * ) 0x2000 0001 ) ;
16bit 读:tempdata = * ( ( uint16_t * ) 0x2000 0002 ) ;
32bit 读:tempdata = * ( ( uint32_t * ) 0x2000 0004 ) .
3.2 写操作
写操作支持 3 种不同位宽,可采用直接访问绝对地址的方式写入数据,但要注意写入的数据位宽必须和对应地址边界对齐。
代码示例:
8bit 写:* ( ( uint8_t * ) 0x2000 0001 ) = 0x12;
16bit 写:* ( ( uint16_t * ) 0x2000 0002 ) = 0x1234;
32bit 写:* ( ( uint32_t * ) 0x2000 0004 ) = 0x1234 5678.
4 奇偶校验功能
CW32F030 支持 RAM 的奇偶校验功能,上电后奇偶校验功能默认打开,用户不可配置。每字节 RAM 数据实际存放在 9bit 的物理空间中,包括 8bit 数据位和 1bit 奇偶校验位。CPU 在对 RAM 进行写入时,RAM 的奇偶校验单元会计算校验位并写入对应的校验位空间。在读取 RAM 数据时,数据连同校验位一起被读取,CPU 对数据进行每字节的奇偶校验,并将计算的校验位和读取的校验位进行比较,如果一致则说明 RAM 中数据正确,如果不一致则奇偶校验错误标志 RAM_ISR.PARITY 被置位,如果设置 RAM 奇偶校验出错中断使能控制位 RAM_IER.PARITY 为 1,CPU 会响应中断服务。用户程序可设置 RAM_ICR.PARITY 为0 来清除奇偶校验错误标志。用户可通过读取奇偶校验出错地址寄存器 RAM_ADDR,以获取发生奇偶校验错误的 RAM 地址。
|