FATFS文件系统f_read读取SD卡数据,定义存储数据的数组为:
[mw_shl_code=c,true]u8 ReadAppBuffer[512][/mw_shl_code]
SD卡初始化、f_open功能正常,使用f_read读取SD卡数据:
[mw_shl_code=c,true]FIL FP_Struct; //用于打开文件
u16 ReadNum;
f_read (&FP_Struct,ReadAppBuffer,512,(UINT *)&ReadNum);[/mw_shl_code]
当数组个数为512时,程序死机,跟踪发现数据溢出;
改成1024后,可以正常读取数据,但是第512个数据之后并不是我要读取的数据,不知道从哪里读到的?
求教原子哥,谢谢!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
u8 ReadAppBuffer[512] __attribute__ ((at(0X20001000)));//接收缓冲,起始地址为0X20001000.
在程序跟踪过程中,未用到数组时,数组里元素也会变化,可能是数组占用了其他数据的空间,改成:
u8 ReadAppBuffer[512];//接收缓冲.
不指定起始地址时,则不存在上述问题了。
一周热门 更多>