构建一个嵌入式ARM Linux系统时,你是如何进行FLASH存储器分区规划的,并说明各个部分的作用.

构建一个嵌入式ARM Linux系统时,你是如何进行FLASH存储器分区规划的,并说明各个部分的作用.,第1张

flash中一般需要装下

启动区(bootstrap,uboot),内核区(kernel),文件系统(filesystem)

具体安装大小,要看各个部分的软件被你编译成了多少。

在你编译后的size的基础上,再适当增加一点,作为个分区的容量。

给你一个atmel的官方arm linux的分区示意图。

http://www.at91.com/linux4sam/bin/view/Linux4SAM/GettingStarted

上面只是对初学者的简要说明。每一部分都是可变的,关键看你自己的制作环境是什么。

想了解更详细的,你需要了解了每一部分的启动原理,存储位置等,才能充分明白。

或者把上面的网站里,左侧菜单的所有内容熟悉一遍,也会加深理解的。

通过flash驱动提供接口进行读写,而且flash的读写不是你想的可以按字节来读,而是按flash的pagesize大小来的,而且擦除只能按block擦除

一般通用的可以使用mtdutils这个软件包交叉编译,它有提供nanddump nandtest nandwrite等命令

从flash读取到内存的数值是没有格式的,只能按照起始地址和长度读取二进制,你需要对这段内存值进行强制格式转换,然后就可以打印出你需要的值了

-在烧写Flash时,需要按照事先规划进行具体烧写

-在uboot程序中可以读到这部分内容,也就是Flash区的划分

-这部分区域最好是以页为单位,对应内存中相应的变量,因为Flash擦除是以页为单位的,所以在修改其中一部分内容时,需要将整个页读出来到内存,在内存中修改,然后整个页写回;,一般对于重要数据还要保留至少一个备份(因Flash容易出坏块)

-在划分好区域后,在程序中写专用的程序进行Flash数据的读取、擦除、写这些 *** 作


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8308331.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存