找回密码
 注册
关于网站域名变更的通知
查看: 319|回复: 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中。7 N5 e! J% A8 a( K) ~% C  p
    现在有一个超大数组:
    - M7 n1 M' O$ _5 E" @uint16_t   databuffer[240][320], " V: p- T& M. c! T
    ' u# @* c3 O8 f' A4 B/ Y
    这个数组有240x320=76800个元素,然后占用空间76800x16bit=153KB, 可谓是相当大了,我如何把这个大数组存放到FLASH中呢?* C" L8 S. M) |) e4 O
    # Y1 {- W; b0 T# F$ w8 V# G  J
    这么大的数组怎么给他赋初值?不可能用大括号的方式,databuffer[240][320]={0xFFFF, 0x32A3........},  7万多个数据,写到猴年马月也写不完啊。: `) m- W/ _5 F4 l- }/ f9 D2 F

    , T: L) ~9 @, G/ E1 l2 t3 ~如果我加关键字const uint16_t   databuffer[240][320] 的方式,可以让他保存在FLASH中,但是没法先赋初值,如果我用for循环赋值,倒是很快,可是就没法加const保存到FLASH中了。4 m) z/ A8 |/ h6 i1 W

    $ m) [' R# ]$ o- E+ i0 |" M. C谁能解决这个矛盾?
    * Y0 }" h1 p# }8 {6 a$ Q

    该用户从未签到

    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?# X7 A: p$ E2 B' k  k: }; f( [7 k
    利用这些来源生成一个
    2 g3 e1 A- N; T, S+ U2 Auint16_t code databuffer[240][320] = {......};储存到DtatTable.h内就可以了
  • TA的每日心情
    开心
    2022-1-21 15:21
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2022-7-28 13:27 | 只看该作者
    能用for循环直接赋值,这个数据是固定的吗?或者是有规律的?不知道这是什么意思,没有用过LCD不知道
    : j* [$ {5 s9 ^" N. r8 R5 F在FLASH开辟某个地址,比如0000H存放一个标志位- ]; C( t; m' L% J1 v) d8 X
    程序启动先读取这个标志位,如果没有标志,就用for循环写入FLASH,写完之后置位标志位并保存,这样,这你所谓的7万多个数据就保存在FLASH了
    " K! ]- l. l$ P- |* s% \如果已经标志了,就不用写入了,跳过写入这一步
    1 B7 ?$ w$ `% u$ Z# {下一步就是读取FLASH中的数据,初始化LCD% y) A- B) b3 D& m
    这样就达到了每次开机都能通过读取FLASH来完成初始化了9 I1 l1 `! s5 y  R% p( ?0 v; n
    不知道这行不行得通
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-4 09:59 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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