案例&资讯
案例&资讯
主页 › 案例&资讯资讯动态 › 查看详情

如何对外扩SRAM进行读写

来源:宇芯有限公司 日期:2020-02-20 10:58:13

如何对SRAM进行读写
 
使用指针的方法进行读写
 
不需要写读写函数,可以直接使用指针的方式对STM32的内存地址进行访问。
 
(1)首先要定义SRAM的基地址:
 
#defeine SRAM_BASE_ADDR       (0x68000000)  //基地址从0x68000000开始
 
#define SRAM_SIZE                      (1*1024*1024) //一共有1M字节
 
#define SRAM_END_ADDR          (SRAM_BASE_ADDR + SRAM_SIZE)   //SRAM结束的地址
 
//用#define定义宏的时候用括号是个习惯,防止以后如果有运算的时候会影响宏的运算法则。
 
 (2)定义指针,操作单字节数据
 
u8 *p;
 
p = (u8 *)SRAM_BASE_ADDR; //把数据SRAM_BASE_ADDR强制转换成指针
 
*p = 0xAB;    //向0x68000000地址写入0xAB
 
 
 
如何操作双字节数据
 
先定义一个16位的指针
 
u16 *p16;
 
p = (u16 *)SRAM_BASE_ADDR; //把数据SRAM_BASE_ADDR强制转换成16位指针
 
*p16 = 0xCDEF;   //一次可以操作2个字节
 
 
 
如何操作浮点数
 
定义一个指向浮点数的指针
 
float *pf;
 
p = (float *)SRAM_BASE_ADDR; //把数据SRAM_BASE_ADDR强制转换成指向浮点数的指针
 
*pf = 56.35;
 
使用绝对地址的方式访问SRAM
 
u8 testValue __attribute__ ( (at (SRAM_BASE_ADDR ) ) );
 
把变量testValue的地址定义到0x68000000
 
testValue = 50;
 
注意:使用 __attribute__定义变量时必须定义为全局变量
 
否则如果使用局部变量,变量还是会被定义在内部RAM中。


关键词:SRAM

相关文章:可穿戴电子设备中的SRAM

宇芯有限公司自成立以来,我们专注于代理国内外各大知名品牌的半导体元器件,代理品牌有NETSOL、JSC、everspin、来杨Lyontek、ISSI、CYPRESS等多个品牌总代理资质,主要产品线为sram、mram、psram等其他存储器芯片,致力于为客户提供具有竞争优势的产品,是一家专业提供存储方案解决商。