OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3307|回复: 7

在外部SRAM申请了**px的二维数组用fatfs文件系统f_write一次写入超过511个字节就死机?

[复制链接]

11

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2014-8-24
在线时间
76 小时
发表于 2016-3-29 13:11:52 | 显示全部楼层 |阅读模式
10金钱
在外部SRAM   申请了**px的二维数组和*p的维维数组,
u8     *pa,**px;
int main(void)
{
                       .
                       .
                       .
                       .
                                                                       
                   px = (u8 **)mymalloc(sramx,(sizeof(u8 *) * Total_channel_number));    //分配指针数组
                   px[0] = (u8 *)mymalloc(sramx,(sizeof(u8) * Total_channel_number * lenlen));//一次性分配所有空间  
                   for(i=1; i<Total_channel_number; i++)   
                   {  
                      px[i] = px[i-1] + lenlen;  
                   }//采用如上内存分配方法,意味着将q的值初始化为m*n的二维数组首地址,且这块内存连续
                   pa=mymalloc(sramx,lenlen);//申请2K字节
                       .
                       .
                       .
                       .
           while(1)
                      {
                       .
                       .
                       .
                       .
                            res=f_open(file,file_name2,FA_OPEN_EXISTING|FA_WRITE);
                         res = f_write(file,*(px+1),512,&bw1);                                     //写第二组数据,小于512才能写入否则死机,地址没冲突
                         res = f_lseek(file,lenlen);                               
                        f_close(file);       
                        res=f_open(file,file_name2,FA_READ);
                          res=f_read(file,fatbuf1,512,&br);  
                          f_close(file);      
                       .
                       .
                       .
                       .
                      }
}
死在
// status=SDIO->STA;
// if(status&((1<<0)|(1<<2)|(1<<6)))break;//CRC错误/命令响应超时/已经收到响应(CRC校验成功)   
将sramx,改为sramin没问题,但数据量太小不够我用。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2014-8-24
在线时间
76 小时
 楼主| 发表于 2016-3-29 13:13:50 | 显示全部楼层
我的数据都是正确的,就是写不进去
回复

使用道具 举报

11

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2014-8-24
在线时间
76 小时
 楼主| 发表于 2016-3-29 15:03:50 | 显示全部楼层
怎么总没人,我的问题太低级?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-29 21:07:21 | 显示全部楼层
sramin的时候,写512也OK?
回复

使用道具 举报

11

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2014-8-24
在线时间
76 小时
 楼主| 发表于 2016-3-30 02:10:49 | 显示全部楼层
对,就外部SRAM不行!
回复

使用道具 举报

11

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2014-8-24
在线时间
76 小时
 楼主| 发表于 2016-3-30 11:24:14 | 显示全部楼层
还有动态重新分配内存时,当新内存块比老内存块小时输出乱码(格式正确)!请问如何避免?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-1 23:03:03 | 显示全部楼层
匆匆过客01 发表于 2016-3-30 02:10
对,就外部SRAM不行!

没遇到过。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

11

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2014-8-24
在线时间
76 小时
 楼主| 发表于 2016-4-3 09:53:24 | 显示全部楼层
我只能把数据从外部SRAM转到内部再写进去了!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 06:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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