圆园员愿年圆月 洛阳师范学院学报
第猿苑卷第圆期允燥怎则灶葬造燥枣蕴怎燥赠葬灶早晕燥则皂葬造哉灶蚤增藻则泽蚤贼赠
云藻遭援袁圆园员愿
灾燥造援猿苑晕燥援圆 基于嵌入式粤砸酝怨的蕴蚤灶怎曾系统移植的研究和实现
陈 平
渊济源职业技术学院袁河南济源源缘怨园园园冤
摘 要院本文以嵌入式粤砸酝怨为硬件平台袁对嵌入式系统月燥燥贼造燥葬凿藻则移植尧蕴蚤灶怎曾内核裁剪与移植尧根文件系统构建及其设备驱动程序开发的核心部分进行了较为完整和深入的研究和探讨援本研究对其他嵌入式平台的系统开发具有参考和借鉴价值援
关键词院粤砸酝怨曰哉原遭燥燥贼曰造蚤灶怎曾内核曰根文件系统曰设备驱动中图分类号院栽孕猿员远
文献标识码院粤
文章编号院员园园怨原源怨苑园渊圆园员愿冤园圆原园园圆苑原园源
所以针对嵌入式硬件目标板定制专门的蕴蚤灶怎曾操作系统袁这就需要完成蕴蚤灶怎曾系统及相关软件的移植粤砸酝怨的开发平台援
工作袁本系统研究和实现采用栽载圆源源园粤开发板作为
嵌入式系统在可靠性尧功耗等方面要求较高袁
悦孕哉和蕴蚤灶怎曾操作系统支持最好袁并且支持网络下载和串口袁方便程序的调试援
哉原月燥燥贼的启动分两个阶段来完成对内核的配
持众多的悦孕哉和操作系统袁对孕燥憎藻则孕悦系列的
员 引导程序月燥燥贼造燥葬凿藻则的移植
最开始运行的程序援它可放在晕粤晕阅云蕴粤杂匀或
月燥燥贼造燥葬凿藻则是用来检测硬件尧引导操作系统的
圆咱圆暂援
置尧装置和调用袁哉原月燥燥贼的详细启动流程如图
为了提高哉原月燥燥贼的移植成功率袁一般复制相
似平台的代码袁并在其基础上做相应的修改援主要的移植步骤如下院
渊员冤进入哉原月燥燥贼原员援员援远目录袁代码如下院
晕韵砸云蕴粤杂匀存储器中援月燥燥贼造燥葬凿藻则的运行首先完成最后引导蕴蚤灶怎曾内核启动咱员暂援
硬件初始化工作袁之后配置蕴蚤灶怎曾运行的软件环境袁
裕糟凿哉原月燥燥贼原员援员援远
月燥燥贼造燥葬凿藻则尧启动参数尧内核尧根文件系统尧预留空间大小等指标划分区域袁并通过内核的分配地址下载程序袁典型的晕粤晕阅云蕴粤杂匀的存储空间分配如图员所示援
在晕粤晕阅云蕴粤杂匀存储器中袁根据引导程序
栽载圆源源园赃糟燥灶枣蚤早援院怎灶糟燥灶枣蚤早渊圆冤修改杂阅砸粤酝配置
之后修改酝葬噪藻枣蚤造藻文件袁需添加以下代码院岳酝再酝渊酝运悦韵晕云陨郧冤酝再酝渊岳院赃糟燥灶枣蚤早越冤
葬则皂葬则皂怨圆园贼栽载圆源源园晕哉蕴蕴泽猿糟圆源曾园
裕凿藻枣蚤灶藻砸耘云悦晕栽 园曾员员员猿裕凿藻枣蚤灶藻砸耘云悦晕栽 园曾源枣源
主要是修改造燥憎造藻增藻造赃蚤灶蚤贼援杂文件袁将
改为
图员 典型的晕粤晕阅云蕴粤杂匀存储空间分配
渊猿冤增加对杂猿悦圆源源园的支持
它们各有特点援本系统选用开源的哉原月燥燥贼袁它支
收稿日期院圆园员苑原员圆原圆苑
基金项目院河南省高等学校重点科研项目渊员远月缘圆园园员愿冤
月燥燥贼造燥葬凿藻则的种类比较多袁有哉原月燥燥贼尧增蚤增蚤等袁
和圆源员园不太一样袁设置其分频比为
遭燥葬则凿赃蚤灶蚤贼函数援圆源源园的时钟计算公式尧晕粤晕阅操作
这一步需要修改遭燥葬则凿辕栽载圆源源园辕栽载圆源源园援糟中的
作者简介院陈平渊员怨愿圆要冤袁男袁甘肃平凉人袁硕士袁讲师援研究方向院嵌入式应用援
窑圆苑窑
洛阳师范学院学报圆园员愿年第圆期
圆 嵌入式蕴蚤灶怎曾内核编译
嵌入式硬件平台采用蕴蚤灶怎曾操作系统袁主要是因为其应用广泛尧开源尧可移植性良好援蕴蚤灶怎曾内核启动过程如图猿所示袁其左半部分为开发板相关的段咱猿暂援
内核引导阶段袁右半部分为内核启动的第二阶
图圆 哉原月燥燥贼启动流程
裕皂葬噪藻栽载圆源源园赃糟燥灶枣蚤早裕皂葬噪藻
渊源冤编译并下载执行袁这部分主要代码为院
云悦蕴运颐匀悦蕴运颐孕悦蕴运越员颐源颐愿援
之后可生成最终的怎原遭燥燥贼援遭蚤灶文件袁并把该文件烧到开发板晕粤晕阅云蕴粤杂匀存储器中袁重启开发板就能通过超级终端看到相关的信息援
蕴蚤灶怎曾内核移植援选择蕴蚤灶怎曾原圆援远援猿员的内核进行裁剪移植袁系统的所有功能都可在该内核中得到很好的实现援在内核目录中执行皂葬噪藻皂藻灶怎糟燥灶枣蚤早命令袁即可出现图形化配置选项咱源暂援在该过程中袁重点用到的几个设备的内核配置如下院
渊员冤杂赠泽贼藻皂栽赠责藻
选择硬件系统如图源所示援渊圆冤晕粤晕阅云蕴粤杂匀
晕粤晕阅云蕴粤杂匀的配置如图缘所示援渊猿冤配置对再粤云云杂圆支持
可根据要求去掉不需要的功能袁配置过程如图远所示援
渊源冤阅酝怨园园园驱动的移植
该部分的主要作用是配置内核和支持网卡驱动袁配置过程如图苑所示援
图猿 蕴蚤灶怎曾内核启动过程
窑圆愿窑
洛阳师范学院学报圆园员愿年第圆期
图源 选择系统硬件
图缘 晕粤晕阅云蕴粤杂匀配置
图远 再粤云云杂圆配置
图苑 阅酝怨园园园驱动
渊缘冤对于字需符要使用的驱动移植
蕴耘阅尧栽载圆源源园开发板扩展的外围
要编写粤阅悦尧相应驱阅杂员愿月圆园尧动程序袁从而月耘耘孕实现和动态月哉栽栽韵晕的加载硬或件卸袁需载
功能援此过程的重点是字符驱动移植袁下面将详细介绍其赃凿泽员愿遭圆园援渊将整编个写移糟袁好植过栽载的圆源源园驱程动援
赃程遭怎贼贼燥灶援序栽载糟袁圆源源园栽载赃造藻凿援圆源源园糟袁赃遭藻藻责援栽载圆源源园
糟袁
其目栽载圆源源园录赃造藻凿援糟放对应的凿则蚤增藻则泽辕糟澡葬则辕目录下袁并对
糟燥灶枣蚤早援中的蕴耘阅贼则蚤泽贼葬贼藻栽运糟燥灶枣蚤早阅则蚤增藻则名寓载栽圆源源园称载是圆源源园赃进蕴耘阅行配不是蕴耘阅辕辕置生袁即加入如下代码院
编译阅则蚤增藻则成配尧酝表示寓置辕选编辕决项
译定成模栽载块
圆源源园凿藻责藻灶凿泽澡藻造责
燥灶粤砸悦匀赃杂猿悦圆源源园辕辕依赖关系遭燥葬则凿泽贼澡蚤泽辕辕帮蚤泽助信蕴耘阅息阅则蚤增藻则枣燥则栽载圆源源园凿藻增藻造燥责皂藻灶贼同上
噎噎辕辕遭怎贼贼燥灶尧凿泽员愿遭圆园尧遭藻藻责及造藻凿配置代码
渊修改酝葬噪藻枣蚤造藻文件袁即加入如下代码院栽载圆源源园燥遭躁噎噎赃原造藻凿援酝再酝渊悦韵晕云陨郧辕辕同燥
赃栽载圆源源园赃蕴耘阅冤垣越渊字编符译上
驱及动进模入块系配统置内以及核
驱动模块的支持如图愿所示援
图愿 字符驱动模块配置
执行院裕皂葬噪藻杂哉月阅陨砸越凿则蚤增藻则泽辕糟澡葬则辕皂燥凿怎造藻泽命令即可编译生成文件名为援噪燥的模块援
窑圆怨窑
如果要加载和卸载驱动袁可在其开发板上执行如下命裕蚤灶泽皂燥凿令院动栽载圆源源园赃曾曾曾援噪燥辕辕可实现动态加载驱动
裕则皂皂燥凿栽载圆源源园赃曾曾曾援噪燥辕辕可实现动态卸载驱渊远冤配置配内置核内完核成及后编袁译
执行皂葬噪藻编译命令袁成功后
会出现扎造皂葬早藻文件袁转化成怎陨皂葬早藻文件后袁就可以烧写到晕粤晕阅云蕴粤杂匀中援
猿 构建蕴蚤灶怎曾根文件系统
文件系统在操作系统中的主要作用是负责管理和存储文件信息援常见的云造葬泽澡文件系统有再粤云云杂系统和悦砸粤酝云杂系晕粤晕阅再粤云云杂用的内云蕴粤杂匀系存更少尧的文统具统咱缘暂速度件有更系良援
快统好袁袁可移植性袁并专用于
并它且简化很适了一些合能耗功低能的袁占嵌
入式系统援
云造葬泽澡悦砸粤酝云杂容量较小并系统且是不一经种常只读文件系统袁适合于对于杂猿悦圆源源园粤微处理更器新袁的晕葬灶凿嵌入式云造葬泽澡系统较援小袁
怨所所以示选援
用再粤云云杂系统援蕴蚤灶怎曾根文件系统结构如图
图怨 蕴蚤灶怎曾根文件系统结构
这里使用遭怎泽赠遭燥曾制作文件系统袁因为很多目录下面的文件命令是手工创建无法完成的援其制作过程如下渊员冤建一个准备院
则燥燥贼制作
文件夹袁用裕皂噪凿蚤则遭蚤灶藻贼糟噎噎命藻贼糟袁令袁创建以下的根文件系统目录袁其包括院辕遭蚤灶袁辕
泽遭蚤灶袁辕凿藻增袁渊圆冤辕泽赠泽袁辕澡燥皂藻袁辕贼皂责袁辕辕怎泽则袁造蚤遭袁辕辕皂灶贼袁增葬则等辕目燥责贼袁录援
辕责则燥糟袁辕则燥燥贼袁辕这裕贼葬则部分的编译遭怎泽赠遭燥曾曾躁增枣遭怎泽赠遭燥曾执行代码原员援为员缘援院
窑猿园窑
圆
洛阳师范学院学报圆园员愿年第圆期
之后可执行裕皂葬噪藻皂藻灶怎糟燥灶枣蚤早命令进行配置袁其执行月怎泽赠遭燥曾代码为月怎蚤造凿杂藻贼贼蚤灶早院
原原原跃噎噎
韵责贼蚤燥灶泽原原原跃咱配鄢置暂完后云葬灶糟赠袁可泽澡藻造造执行责则燥皂责贼泽裕皂葬噪藻皂葬噪藻蚤灶泽贼葬造造渊猿冤之后会制作生文成件辕遭蚤灶系统
等主目录的文件系统援首先袁在凿藻增目录下袁创建设备节点曰其次袁从本蚤灶蚤贼贼葬遭机拷贝拷贝库文文件责葬泽泽憎凿尧件尧泽澡葬凿燥憎尧早则燥怎责文件曰之后袁修改援
蚤灶蚤贼援凿辕则糟杂文件尧责则燥枣蚤造藻文件曰最后袁通过上述步骤袁即完成了文件系统的框架袁之猿员援后可遭蚤灶以使用裕皂噪赠葬枣枣泽圆蚤皂葬早藻则燥燥贼赃圆援远援猿员则燥燥贼赃圆援远援
当把孕则燥糟藻泽泽蚤灶早超制级作终出的端显镜示像文件烧写到晕葬灶凿云造葬泽澡中援
阅燥灶藻
辕藻贼糟辕责则燥枣蚤造藻援以下字援样援院咱则燥燥贼即为烧岳写栽载成圆源源园粤功援
辕暂裕源 小结
本文首先详述了蕴蚤灶怎曾原圆援远援猿员内核在嵌入式硬件平台的移植要点袁包括院月燥燥贼造燥葬凿藻则移植袁蕴蚤灶怎曾内核配置尧裁剪与移植袁以及蕴蚤灶怎曾根文件系统构建援之后研究并设计了一个嵌入式的软件开发平台袁为以后嵌入式应用软件的开发提供了一个可靠尧稳定的系统平台援参考文献
咱员暂李咱酝暂援新峰北袁京何院广电生子援工基于业出粤砸酝怨版社袁的圆园园愿援
嵌入式蕴蚤灶怎曾开发技术咱圆暂王京洪辉院电子援嵌工入业出式版社系统袁蕴蚤灶怎曾圆园园怨援内核开发实战指南咱酝暂援北咱猿暂华京清院人远民见邮嵌电入出式版社培训袁中圆园员园援心援蕴蚤灶怎曾内核修炼之道咱酝暂援北咱源暂酝葬怎藻则藻则正联系作宰援者孕则燥枣藻泽泽蚤燥灶葬造加出版社地址蕴蚤灶怎曾院宰则燥曾袁运藻则灶藻造圆园员园援粤则糟澡蚤贼藻糟贼怎则藻咱酝暂援咱缘暂查启文件鹏系援统嵌构入建式咱允暂援蕴蚤灶怎曾现代下电大子容技量术晕葬灶凿云蕴粤杂匀袁圆园园苑渊员愿冤院缘缘的再粤云云杂圆
原缘愿援咱责任编辑 徐 刚暂
渊下转第猿源页冤
洛阳师范学院学报圆园员愿年第圆期
粤灶粤灶葬造赠泽蚤泽燥枣粤责责造蚤糟葬贼蚤燥灶杂蚤贼怎葬贼蚤燥灶葬灶凿酝蚤泽怎灶凿藻则泽贼葬灶凿蚤灶早泽
燥枣粤则贼蚤枣蚤糟蚤葬造陨灶贼藻造造蚤早藻灶糟藻
渊员援耘凿蚤贼燥则蚤葬造阅藻责葬则贼皂藻灶贼袁蕴怎燥赠葬灶早晕燥则皂葬造哉灶蚤增藻则泽蚤贼赠袁蕴怎燥赠葬灶早源苑员怨猿源袁悦澡蚤灶葬曰源援阅葬贼葬悦藻灶贼藻则袁悦澡蚤灶葬孕燥泽贼葬造杂葬增蚤灶早泽月葬灶噪悦燥援蕴贼凿援袁月藻蚤躁蚤灶早员园园园远远袁悦澡蚤灶葬冤
载怎郧葬灶早员袁宰葬灶早在蚤鄄责藻灶早圆袁蕴怎燥云藻蚤猿袁载怎砸怎蚤源
猿援耘灶早蚤灶藻藻则蚤灶早栽则葬蚤灶蚤灶早悦藻灶贼藻则袁蕴怎燥赠葬灶早陨灶泽贼蚤贼怎贼藻燥枣栽藻糟澡灶燥造燥早赠袁蕴怎燥赠葬灶早源苑员园圆猿袁悦澡蚤灶葬曰
粤遭泽贼则葬糟贼院陨灶贼澡藻责葬泽贼贼憎燥赠藻葬则泽袁灶藻憎泽则藻责燥则贼泽泽藻贼燥枣枣葬灶燥贼澡藻则遭燥燥皂蚤灶贼澡藻责怎遭造蚤糟爷泽责藻则泽责藻糟贼蚤增藻葬遭燥怎贼葬则贼蚤枣蚤糟蚤葬造
圆援杂糟澡燥燥造燥枣允燥怎则灶葬造蚤泽皂葬灶凿悦燥皂皂怎灶蚤糟葬贼蚤燥灶袁匀藻灶葬灶哉灶蚤增藻则泽蚤贼赠袁运葬蚤枣藻灶早源苑缘园园员袁悦澡蚤灶葬曰
蚤灶贼藻造造蚤早藻灶糟藻援栽澡蚤泽怎责泽怎则早藻蚤泽藻曾责藻糟贼藻凿贼燥造葬泽贼葬造燥灶早贼蚤皂藻糟燥灶泽蚤凿藻则蚤灶早贼澡藻早则燥憎蚤灶早泽责藻藻凿燥枣糟燥皂责怎贼藻则葬灶凿糟燥皂皂怎灶蚤鄄
糟葬贼蚤燥灶灶藻贼憎燥则噪泽袁葬灶凿贼澡藻皂葬泽泽蚤增藻蚤灶增燥造增藻皂藻灶贼燥枣糟燥皂皂藻则糟蚤葬造糟葬责蚤贼葬造援匀燥憎藻增藻则袁贼澡藻责怎遭造蚤糟怎灶凿藻则泽贼葬灶凿蚤灶早燥枣葬则贼蚤枣蚤鄄蚤灶贼藻造造蚤早藻灶糟藻袁葬灶凿贼澡藻灶凿藻皂燥灶泽贼则葬贼藻泽贼澡藻则藻葬造蚤贼赠燥枣蚤贼泽糟怎则则藻灶贼葬责责造蚤糟葬贼蚤燥灶袁葬灶凿枣蚤灶葬造造赠葬灶葬造赠扎藻泽贼澡藻糟燥皂皂燥灶皂蚤泽怎灶凿藻则鄄皂藻则藻造赠葬贼贼澡藻泽贼葬早藻燥枣遭藻蚤灶早怎泽藻凿葬泽葬贼燥燥造袁贼澡葬贼蚤贼蚤泽枣葬则枣则燥皂遭藻蚤灶早泽贼则燥灶早葬则贼蚤枣蚤糟蚤葬造杂皂葬则贼援
运藻赠憎燥则凿泽院葬则贼蚤枣蚤糟蚤葬造蚤灶贼藻造造蚤早藻灶糟藻曰贼燥燥造泽曰遭蚤早凿葬贼葬曰皂蚤泽怎灶凿藻则泽贼葬灶凿蚤灶早泽渊上接第猿园页冤
糟蚤葬造蚤灶贼藻造造蚤早藻灶糟藻蚤泽泽贼蚤造造皂燥则藻遭葬泽藻凿燥灶贼澡藻蚤灶贼藻则藻泽贼蚤灶早葬灶凿藻灶贼藻则贼葬蚤灶蚤灶早泽糟蚤藻灶糟藻枣蚤糟贼蚤燥灶泽袁憎澡蚤糟澡蚤泽泽贼蚤造造择怎蚤贼藻凿蚤枣枣藻则藻灶贼枣则燥皂贼澡藻则藻葬造蚤贼赠燥枣葬则贼蚤枣蚤糟蚤葬造蚤灶贼藻造造蚤早藻灶糟藻援粤糟糟燥则凿蚤灶早造赠袁贼澡蚤泽葬则贼蚤糟造藻枣蚤则泽贼蚤灶贼则燥凿怎糟藻泽则藻造藻增葬灶贼噪灶燥憎造藻凿早藻葬遭燥怎贼葬则贼蚤枣蚤糟蚤葬造泽贼葬灶凿蚤灶早泽袁贼燥责燥蚤灶贼燥怎贼贼澡葬贼袁蚤灶葬糟糟燥则凿葬灶糟藻憎蚤贼澡贼澡藻糟怎则则藻灶贼泽贼葬贼藻燥枣泽糟蚤藻灶糟藻葬灶凿贼藻糟澡灶燥造燥早赠袁葬则贼蚤枣蚤糟蚤葬造蚤灶贼藻造造蚤早藻灶糟藻蚤泽詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬詬
砸藻泽藻葬则糟澡葬灶凿陨皂责造藻皂藻灶贼葬贼蚤燥灶燥枣蕴蚤灶怎曾杂赠泽贼藻皂栽则葬灶泽责造葬灶贼葬贼蚤燥灶
月葬泽藻凿燥灶耘皂遭藻凿凿藻凿粤砸酝怨
渊允蚤赠怎葬灶灾燥糟葬贼蚤燥灶葬造葬灶凿栽藻糟澡灶蚤糟葬造悦燥造造藻早藻袁允蚤赠怎葬灶源缘怨园园园袁悦澡蚤灶葬冤
悦匀耘晕孕蚤灶早
藻皂遭藻凿凿藻凿泽赠泽贼藻皂月燥燥贼造燥葬凿藻则贼则葬灶泽责造葬灶贼葬贼蚤燥灶袁蕴蚤灶怎曾噪藻则灶藻造糟造蚤责责蚤灶早葬灶凿贼则葬灶泽责造葬灶贼葬贼蚤燥灶袁则燥燥贼枣蚤造藻泽赠泽贼藻皂糟燥灶泽贼则怎糟鄄燥贼澡藻则藻皂遭藻凿凿藻凿责造葬贼枣燥则皂泽援
运藻赠憎燥则凿泽院粤砸酝怨曰哉鄄遭燥燥贼曰蕴蚤灶怎曾噪藻则灶藻造曰则燥燥贼枣蚤造藻泽赠泽贼藻皂曰凿藻增蚤糟藻凿则蚤增藻则
粤遭泽贼则葬糟贼院栽葬噪蚤灶早贼澡藻藻皂遭藻凿凿藻凿粤砸酝怨葬泽澡葬则凿憎葬则藻责造葬贼枣燥则皂袁贼澡蚤泽则藻泽藻葬则糟澡皂葬蚤灶造赠贼葬造噪泽葬遭燥怎贼贼澡藻糟燥则藻责葬则贼燥枣
贼蚤燥灶葬灶凿凿藻增蚤糟藻凿则蚤增藻则凿藻增藻造燥责皂藻灶贼援陨贼蚤泽泽怎责责燥泽藻凿贼燥遭藻燥枣则藻枣藻则藻灶贼蚤葬造增葬造怎藻枣燥则藻皂遭藻凿凿藻凿泽赠泽贼藻皂凿藻增藻造燥责皂藻灶贼燥灶
窑猿源窑
因篇幅问题不能全部显示,请点此查看更多更全内容