野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14599|回复: 2

FATFS文件系统移植问题求助

[复制链接]
发表于 2018-10-19 11:18:08 | 显示全部楼层 |阅读模式
我用的是stm32f103RbT6  RAM 20K  flash 128k
主要的全局变量数组是  文件系统的 缓存数组 ReadBuffer【】 和 少许的usart相关测试数组;

可是仅仅定义一个 FATFS fs  文件系统变量   3个文件变量 FIL f1 f2 f3 ;   测试读写时,如果不用opimization 优化选项,就提示 空间不足

如在  Level 0 (-O0)下2个error
Error: L6406E: No space in execution regions with .ANY selector matching startup_stm32f10x_md.o(STACK).
Error: L6407E: Sections of aggregate size 0x400 bytes could not fit into .ANY selector(s).
(0x400 这个位置的值有时会很大(20K以上));
网上有说这个是 SRAM 空间不足;但是我用 优化选项 Level 1 Level 2 Level 3 编译后只是code 区域的值 略微减小;RO RW  ZI 部分不变;

是不是 没定义一个FIL的文件 就会占用 SRAM 4096字节的缓冲空间;
几乎完全自学  有请大神指教 。。。




全局变量如下 :
uint8_t Usart_data_Test[] = "0123abc\n";
FATFS fs;                                                        /* FatFs文件系统对象 */
FIL fnew;                                                        /* 文件对象 */
FRESULT res_flash;                                        /* 文件操作结果 */
UINT fnum;                                                        /* 文件成功读写数量 */
BYTE ReadBuffer[1024]={0};                        /* 读缓冲区 */
BYTE WriteBuffer[] =                                /* 写缓冲区*/
"我爱你 my love 爷爷 奶奶 新建文件系统测试文件\r\n";
FIL fs1,fs2;                                                        /* 临时测试文件对象 */
FRESULT res_fs1,res_fs2;                                        /* 文件操作结果 */
UINT fs1num,fs2num;                                                        /* 文件成功读写数量 */
BYTE fs1ReadBuffer[1024]={0};                        /* 读缓冲区 */
BYTE fs2ReadBuffer[1024]={0};                        /* 读缓冲区 */
BYTE fs1WriteBuffer[] = {"\n fs1 自定义数据 \n"};                                /* 写缓冲区*/
BYTE fs2WriteBuffer[] = {"\n fs2 自定义数据 \n"};                                /* 写缓冲区*/
// NUM : 54
uint8_t Tx_Buffer[] = "abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n";
uint8_t Rx_Buffer[100];
_IO uint32_t DeviceID = 0;
__IO uint32_t FlashID = 0;
__IO TestStatus TransferStatus1 = FAILED;

回复

使用道具 举报

发表于 2018-10-19 11:37:29 | 显示全部楼层
FIL 很大的,定义到全局变量看看,通常也只定义一个就行了,你定义这么多
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-19 11:48:49 | 显示全部楼层
东门安芙 发表于 2018-10-19 11:37
FIL 很大的,定义到全局变量看看,通常也只定义一个就行了,你定义这么多

是定义到全局变量的,是不是一个FIL变量就要占4096个字节
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-12-6 00:30 , Processed in 0.047324 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表