查看: 3931|回复: 11

[求助] 请教一个问题,关于flash的读写

[复制链接]

该用户从未签到

4

主题

66

帖子

0

注册会员

Rank: 2

积分
170
最后登录
1970-1-1
发表于 2015-11-8 12:49:38 | 显示全部楼层 |阅读模式
我在写程序的时候,程序下好下载应该是在flash里面的,但是程序运行的时候是不是不在flash?那么我想建立一个大的浮点数组,比如(float data[1024]),这个数组其实是RAM和EEPROM都放不下的,这个数组是放在什么地方的?是在flash里面吗?这个data是我每次AD采样回来的数据经过计算以后得到的浮点数,我一次存1024的目的是取得一个完整周期的数据,然后通过CAN通信把他发回到笔记本的,由于采样速率和通信速率的差异,这个数组必须这么大,这个数组可以放在flash吗?在程序运行过程中可以对flash这样直接进行读写吗?读写速度上的差异会很明显吗?还有就是我依稀记得flash的操作是按照扇区来的,那么还可以对flash这么操作吗?
问的比较乱,希望得到大神解答,谢谢
我知道答案 目前已有11人回答
回复

使用道具 举报

该用户从未签到

4

主题

66

帖子

0

注册会员

Rank: 2

积分
170
最后登录
1970-1-1
 楼主| 发表于 2015-11-8 12:50:38 | 显示全部楼层
求大神指导,下午在线等
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    2021-8-31 12:39
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    26

    主题

    149

    帖子

    1

    高级会员

    Rank: 4

    积分
    561
    最后登录
    2025-7-21
    发表于 2015-11-8 13:38:26 | 显示全部楼层
    float data[1024] 的数据大小是 1024*4= 4K,这个数组只能映射到RAM中。因为如果不使用FLASH的擦除、编程指令的话,FLASH是只读的。如果直接对flash执行写操作的话程序会出错!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    66

    帖子

    0

    注册会员

    Rank: 2

    积分
    170
    最后登录
    1970-1-1
     楼主| 发表于 2015-11-8 19:44:42 | 显示全部楼层
    擦除、编程指令是对于扇区而言,还是在数组的一个数据上?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2015-11-9 09:33:57 | 显示全部楼层
    在RAM中,建议声明程全局变量,因为局部变量是存放在栈区的,而全局变量在全局区(静态区),如果栈区较小,会产生溢出错误
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    66

    帖子

    0

    注册会员

    Rank: 2

    积分
    170
    最后登录
    1970-1-1
     楼主| 发表于 2015-11-9 10:57:59 | 显示全部楼层
    FSL_TICS_ZP 发表于 2015-11-9 09:33
    在RAM中,建议声明程全局变量,因为局部变量是存放在栈区的,而全局变量在全局区(静态区),如果栈区较小, ...

    这个的话,我记得是可以使用宏命令#prog什么的来映射段的,可以查分区知道结果,这个我可以自己看,RAM空间我使用起来问题不大,就是如何将数据放在flash这块搞不清楚,尤其是实时AD数据大数组放在flash里面这一块,您了解吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2015-11-9 14:12:06 | 显示全部楼层
    nicai2009 发表于 2015-11-9 10:57
    这个的话,我记得是可以使用宏命令#prog什么的来映射段的,可以查分区知道结果,这个我可以自己看,RAM空 ...

    不同的IDE是有差别的,你可以参考此经验分享:
    https://www.nxpic.org.cn/module/forum/thread-580565-1-1.html
    https://www.nxpic.org.cn/module/forum/thread-594256-1-1.html
    https://www.nxpic.org.cn/module/forum/thread-593642-1-1.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    66

    帖子

    0

    注册会员

    Rank: 2

    积分
    170
    最后登录
    1970-1-1
     楼主| 发表于 2015-11-10 13:16:28 | 显示全部楼层
    FSL_TICS_ZP 发表于 2015-11-9 14:12
    不同的IDE是有差别的,你可以参考此经验分享:
    https://www.nxpic.org.cn/module/forum/thread-580565- ...

    哦哦,好的,等申请的开发板到了试试吧,谢谢您了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-11-10 13:47:38 | 显示全部楼层
    看是变量还是常量了。变量是在RAM中,常量是在FLASH中。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    66

    帖子

    0

    注册会员

    Rank: 2

    积分
    170
    最后登录
    1970-1-1
     楼主| 发表于 2015-11-10 15:22:00 | 显示全部楼层
    安 发表于 2015-11-10 13:47
    看是变量还是常量了。变量是在RAM中,常量是在FLASH中。

    我可以自己定义变量存放的段不?应该是可以的吧,我现在的问题是,数组很大,而且是不停的往里面写数据,这个数组我RAM空间放不下,想把他放在FLASH里面,可以还记得flash的擦写是有扇区擦写问题的,那我这个要不断往里面写数据的数组还能放在flash吗?如果不能的话,我应该怎么解决这个问题,我不想在板子上外扩ram,这样尺寸大,成本高
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-26 22:42 , Processed in 0.103900 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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