由于内部sram大小只有64kb,为了跑函数,所以扩展了外部1mb的sdram进行使用,起始地址为0x68000000 大小为0x100000。这样用外部SRAM就跟用内部SRAM一样,不用自己去申请内存,也不用考虑什么内存地址,一切让编译器自己去解决。 根据库函数例程fsmc来实现扩展外部sdram。在库函数的system_stm32f10x.c这个初始化文件当中其实就已经有外部SRAM的初始化,我们只要增加“#define DATA_IN_ExtSRAM 1”这句宏定义[color=white !important][color=white !important]?
1
2
3
4
#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
/* #define DATA_IN_ExtSRAM */
#define DATA_IN_ExtSRAM 1
#endif
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
但是对于内部SRAM空间大小不够用的情况,应该用什么方法解决比较好?
内存管理啊,我们给大家提供的就是最科学的方式。
对于需要频繁处理的变量,放内部SRAM,对于需要大量数组的时候,放外补SRAM,都可以自己掌控,这才是一个程序员该做的事情。
另外,STM32F103/407的FSMC都不能扩展SDRAM,得429才行,那叫FMC,不是FSMC。
一周热门 更多>