- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编辑导读:浅谈Real-Time Linux|ARM发布用于嵌入式系统的新产品|如何监控和保护Linux下进程安全|嵌入式数控系统体系结构研究|基于2.6.19内核的小型Linux系统制作与移植|解决优先级倒置问题的RTOS优先级调度策略|工程结果:遥控|嵌入式系统设计方法的演化|嵌入式系统开发面临的问题与集成开发环境的应用|嵌入式系统与普适计算|正文:
????引言
与Linux2.4内核相比,Linux2.6内核在性能、模块支持、可用性、可测量性等方面有大幅度的提高。Linux2.6内核取代2.4内核是大势所趋。
ARM9 S3C2410微处理器是一款由SAMSUNG公司为手持终端设计的低价格、低功耗、高性能,基于ARM920T核的微处理器。它与Linux的结合越来越紧密,逐渐在嵌入式领域得到广阔的应用。目前,在PDA、移动通信、路由器、工业控制等领域都可以看到S3C2410与Linux相结合的身影。
当前市场上基于S3C2410微处理器的开发板绝大部分都是用Nand Flash作为主存储器。Nand Flash是一种可在系统上进行电擦写,掉电后信息不丢失的存储器。
开发板从上电到内核启动需要一个引导程序,在嵌入式Linux系统下称为Boot loader。vivi是韩国MIZI公司为其ARM9系列产品研发的Boot Loader。
MTD(存储技术器件)是Linux内核采纳的一种设备子系统,它为底层的存储芯片提供了统一的设备接口。
然而,vivi的Nand Flash分区(简称vivi分区)并不适合Linux2.6内核的需求,必须作出修改。而内核MTD分区是与vivi分区相对应的,随着vivi分区的改变也须重新定制。
vivi分区与内核MTD分区的基本概念及两者关系的基础上,详细介绍了基于S3C2410开发板的Linux2.6内核下的vivi及内核MTD分区方法。
Vivi分区和内核MTD分区的解析
Vivi分区解析
Vivi分区指的是给引导程序、内核映像、文件系统等在Nand Flash上分配空间及起始地址。在vivi的命令模式下输入命令:part show,可得vivi分区信息。未作修改的vivi分区信息如表1。
从信息中可知,vivi把Nand Flash分为4个区,分别为vivi、param、kernel、root。信息中的offset表示各分区在Nand Flash中的起始位置,size及的后面128k、64k、768k、1M+256k表示各分区的大小,flag为标识符。
未修改的vivi给放置内核映像文件zImage的kernel分区只有768k,但2.6内核的映像文件 一般都超过1M。另外,MIZI公司针对其自身产品所设计的vivi只对略大于2M的Nand Flash空间进行了分区;然而,S3C2410开发板的Nand Flash容量为一般为32M或64M的,还有很大的空间可用。所以,重新定制vivi分区十分必要。
内核MTD分区解析
Linux2.6内核的MTD能够支持ROM、RAM、FLASH(NOR和NAND)等存储芯片。MTD同时可提供两类MTD驱动程序,一类是MTD设备地址空间的映射,提供直接访问设备的操作;另一类则为建立文件系统提供基础。
在基于Linux2.6内核的S3C2410开发板上,Nand Flash上各段存储空间都被定义成MTD分区来管理的,各分区都可以通过Linux系统中的设备文件来访问。所以在内核中必须有MTD对引导程序、内核映像、文件系统在Nand Flash上的分区信息。
vivi分区与内核MTD分区的关系
从Nand Flash启动时,S3C2410硬件会自动把Nand Flash前4K代码拷贝芯片内部RAM空间,CPU其实是从内部RAM开始执行代码的,所以vivi必须放到Nand Flash顶端。vivi开始执行后将初始化硬件设备、建立内存空间映射表,为调用内核做好准备;然后把压缩的内核映像加载到SDRAM中;最后跳转到内核映像入口,启动内核。
内核MTD分区必须与vivi分区相一致。因为,vivi分区中的地址是引导程序、内核映像及文件系统下载到Nand Flash的真正地址;而内核启动时,内核并不是去读vivi分区中的地址,而是去读
vivi和内核MTD的重新分区
vivi的重新分区
根据开发板的Nand Flash大小及开发用途确定新的vivi分区,如表2。
打开vivi源代码下的arch/s3c2410/smdk.c文件,在函数:“mtd_partition_default_mtd_partitions[]={}”中可以看到vivi默认的Nand Flash分区信息。根据
您可能关注的文档
最近下载
- 项目七+用计算机计算圆周率说课及试讲课件-2024-2025学年沪科版(2019)高中信息技术必修一.pptx VIP
- 小米集团2025年组织架构及各部门职责解析.docx VIP
- 输液导管相关静脉血栓形成防治中国专家共识解读PPT课件.pptx VIP
- 2025年广西公需课人工智能时代的机遇与挑战——预训练大模型与生成式AI参考答案.docx VIP
- 新22G04 钢筋混凝土过梁.docx VIP
- 疖肿合并疼痛护理查房.pptx VIP
- 2024年山东省东营市河口区中考一模语文试题(解析版).pdf VIP
- 居民阶梯电价作业指导手册.pdf VIP
- XXXX无线网施工方案.docx VIP
- 数字素养与技能.pptx VIP
文档评论(0)