找回密码
 注册
关于网站域名变更的通知
查看: 316|回复: 3
打印 上一主题 下一主题

C语言如何把一个超大数组赋值后存放到FLASH中?

[复制链接]
  • TA的每日心情
    奋斗
    2022-1-21 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-7-28 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    我的FLASH空间比较大,有512K,RAM空间也比较大,接近200K,但是RAM由于还要做其他用途,所以现在需要把一个超大数组保存到FLASH中。
    ! y6 Y5 {' L9 g" \/ u, t1 p, D现在有一个超大数组:7 b3 }" M# H8 ]5 @
    uint16_t   databuffer[240][320], + q. @2 U" N/ b  ~

    " ~# [. N6 G- _( [" N/ [这个数组有240x320=76800个元素,然后占用空间76800x16bit=153KB, 可谓是相当大了,我如何把这个大数组存放到FLASH中呢?
    & H& e# P9 I. H. C9 P4 H; l; I' q, f3 A% C  p0 e/ E
    这么大的数组怎么给他赋初值?不可能用大括号的方式,databuffer[240][320]={0xFFFF, 0x32A3........},  7万多个数据,写到猴年马月也写不完啊。
    3 Y* p7 }: ~! Y" F. k
    9 I+ g2 [  F% S如果我加关键字const uint16_t   databuffer[240][320] 的方式,可以让他保存在FLASH中,但是没法先赋初值,如果我用for循环赋值,倒是很快,可是就没法加const保存到FLASH中了。
    0 k9 r3 T' K- \% Y
      Y" h/ B8 ^; ~  J4 o谁能解决这个矛盾?9 f: O9 S; v% Y4 a( o3 p, X% p

    该用户从未签到

    2#
    发表于 2022-7-28 13:15 | 只看该作者
    编程时数组直接赋值放FLASH中。
  • TA的每日心情
    慵懒
    2022-1-21 15:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-7-28 13:22 | 只看该作者
    你的7万多个数据是有来源的吧?Excel?SQL?CSV?6 `) r# s& t% d
    利用这些来源生成一个$ h. m9 X1 G; z( A
    uint16_t code databuffer[240][320] = {......};储存到DtatTable.h内就可以了
  • TA的每日心情
    开心
    2022-1-21 15:21
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2022-7-28 13:27 | 只看该作者
    能用for循环直接赋值,这个数据是固定的吗?或者是有规律的?不知道这是什么意思,没有用过LCD不知道
    : D: _0 K( S9 P5 h' D, {$ v9 |. {在FLASH开辟某个地址,比如0000H存放一个标志位  z" W$ x& R* E0 X+ h0 j. v
    程序启动先读取这个标志位,如果没有标志,就用for循环写入FLASH,写完之后置位标志位并保存,这样,这你所谓的7万多个数据就保存在FLASH了
      Q8 ^0 K0 @4 m  G. \: U) z7 S1 B  E如果已经标志了,就不用写入了,跳过写入这一步+ m: _- ]% i' T0 M
    下一步就是读取FLASH中的数据,初始化LCD
    5 n. `1 C2 k5 Q  x8 w" X5 b& Z这样就达到了每次开机都能通过读取FLASH来完成初始化了" }" L# g9 M; [& }0 p- |
    不知道这行不行得通
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-30 20:40 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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