我用的是STM32F103E的,现在用外部SRAM扩展了板子,但是再使用时遇到问题。
我要接收摄像头的一副图像,片子的RAM不够,只能扩展(硬件连接没有问题)。
把存储图像的变量作为全局变量,存储到片外SRAM。
已经初始化FSMC总线。但是MDK debug时发现,内存操作是无效的。
我的工程配置,
1、在工程Options,RAM1 0x68000000,0x80000,没有勾选默认
2、在main文件上的OPtions,使Zero Initialized Data 存储到RAM1
3、system_stm32f103.c 取消了#define DATA_IN_ExtSRAM的注释。
程序运行就是不行。
写SRAM操作无效。
但是读取好像又可以。
上关键代码
unsigned char image_u[320][240],image_v[320][240];//全局变量
void main()
{
........FMSC的初始化参考了官方例程和开发板的附带例程。不应该会出问题
if(abc[0]==0x01020304)//abc变量是自己写的,已经初始化的。
{
image_u[0][0]= 0x010;//这两句赋值无效的
image_v[0][0]=0x026;
}
i=image_u[0][0];//i初始化时i=1,j=2.程序运行后i=j=0;
j=image_v[0][0];
......
}
请大家帮帮忙,这是什么原因啊!谢谢了 |