大家好,我参考了Mini板的源码,用STM32F103C8T6+SD卡+FATFS时碰到问题,板子不带SPIFlash,看样子是内存的问题,报错如下:
compiling main.c...
compiling ff.c...
compiling cc936.c...
compiling exfuns.c...
..FATFSexfunsexfuns.c(124): warning: #223-D: function "delay_ms" declared implicitly
delay_ms(1000);
..FATFSexfunsexfuns.c: 1 warning, 0 errors
compiling fattester.c...
linking...
..OBJRoadDetector.axf: Error: L6406E: No space in execution regions with .ANY selector matching cc936.o(.constdata).
。。。。。。
..OBJRoadDetector.axf: Error: L6407E: Sections of aggregate size 0x322f8 bytes could not fit into .ANY selector(s).
Not enough information to list image symbols.
Not enough information to list the image map.
Finished: 2 information, 0 warning and 358 error messages.
"..OBJRoadDetector.axf" - 358 Error(s), 1 Warning(s).
Target not created.
Build Time Elapsed: 00:00:03
因为看了之前的贴子,说内存池改小试试,我修成了
#define MEM_MAX_SIZE 15*1024
问题是:移植完了FATFS之后编译没有错误,但是当我做测试时,调用了下面的函数就出现上面的报错信息。
u8 w_buffer[]={"123456789"};
void ExFatfs_Test(void)
{
u8 res;
res = mf_open("0:/Data",FA_READ);
if(res==FR_OK)
{
// res = mf_write(w_buffer, 5);
}
}
我在Mini板的源码上也同样添加了这个测试函数,编译是通过的。
比较了C8T6,芯片的FlashSize有64K,而Mini板RCT6 FlashSize是256K,原子哥,请问现在这种情况,怎么解呢?代码可以修改哪里呢?谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2,你这个f_write以后,要f_close,才会保存成功。随后,重新OPEN,再读取。
u8 w_buffer[]={0x11,0x22,0x33,0x44,0x55,0x66};
void ExFatfs_Test(void)
{
u8 res;
res = mf_open("0:/Data/123.txt",FA_READ | FA_WRITE | FA_OPEN_ALWAYS);
if(res==FR_OK)
{
usb_printf("openfile ok! ");
res = mf_write(w_buffer, sizeof(w_buffer));
if(res==FR_OK) usb_printf("writefile ok! ");
res = mf_read(sizeof(w_buffer));
if(res==FR_OK) usb_printf("readfile ok! ");
}
}
打印信息如下:
SD Card OK
SD Card Size: 15126528 MB
sd total=7555072,free=7554912
openfile ok!
Begin Write file...
Write data len:6
Writed data len:6
Write data over.
writefile ok!
Read file data is:
7890
Readed data len:4
Read data over
readfile ok!
我的SD卡里面建了Data的文件夹,里面有一个123.txt的文件,数据是:1234567890
现在读是可以的,写不成功,而且读是从写的长度后开始的。用mf_lseek()怎么来让读操作从开始读起呢?
所以我的求解问题:
1. 写不成功;2.从开始读起。
谢谢各位。
一周热门 更多>