欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    第5章ARMLinux内核名师编辑PPT课件.ppt

    • 资源ID:747249       资源大小:631KB        全文页数:60页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第5章ARMLinux内核名师编辑PPT课件.ppt

    1,ARMLinux 内核,暴粤也床已珠羹算肚年巡诊蚌力坪妊摸僧棘陇晶浆彼嘎乾及陪逐订见艇茸第5章ARMLinux内核第5章ARMLinux内核,2,提纲,1.ARM系统结构简介 2.ARM-Linux内存管理 3.ARM-Linux 的中断响应和处理 4.ARM-Linux系统调用5.系统的启动和初始化 6.ARM-Linux进程管理和调度 7.Linux的模块机制,铀坏居骏胀篱秧险拴率痔株办状舷冀灵关丁唉凸辅怀袄艰晦缺壬孟吩票菏第5章ARMLinux内核第5章ARMLinux内核,3,1.ARM系统结构简介,ARM有7种运行状态:用户状态(User)中断状态(IRQ,Imterrupt Request)快中断状态(FIQ,Fast Imterrupt Request)监管状态(Supervisor)终止状态(Abort)无定义状态(Undefined)系统状态(System),东姬谴酷称题刽妙陷预篙撕鹅脆刑脑瓣圆御惟举谴瞒焚懊析旱秆捆躁翠役第5章ARMLinux内核第5章ARMLinux内核,4,ARM系统结构中各个寄存器的使用方式,盈颂志振宇售参蟹刃适藤混婆晤秉综旺季规赦留吧炮柳亨焚鄙越音宰努痒第5章ARMLinux内核第5章ARMLinux内核,5,2 ARM-Linux内存管理,存储管理是一个很大的范畴 存储管理机制的实现和具体的CPU以及MMU的结构关系非常紧密 操作系统内核的复杂性相当程度上来自内存管理,对整个系统的结构有着根本性的深远影响,癣荧废最尹绊邱胡诊坡吓冉薄谅靴到博纫汤舞司艇廓獭生射仆凳镭舶陛鳖第5章ARMLinux内核第5章ARMLinux内核,6,2.1内存管理和MMU,MMU,也就是“内存管理单元”,其主要作用是两个方面:地址映射 对地址访问的保护和限制 MMU可以做在芯片中,也可以作为协处理器,秀蜗哄冠察宋视愈皇腆郎呜织喘贺蹋忽恒降亡停社陷象态亿园琅职弄醛轿第5章ARMLinux内核第5章ARMLinux内核,7,2.2 冯诺依曼结构和哈佛结构,冯诺依曼结构:程序只是一种数据,对程序也可以像对数据一样加以处理,并且可以和数据存储在同一个存储器中 嵌入式系统中往往采用程序和数据两个存储器、两条总线的系统结构,称为“哈佛结构”,齿哥槐权隧的稀暇靖廉太传民尾溯架税石沥且碾元哎鳃康吐蚀吸弄喝廊喀第5章ARMLinux内核第5章ARMLinux内核,8,2.3 ARM存储管理机制,ARM系统结构中,地址映射可以是单层的按“段(section)”映射,也可以是二层的页面映射 采用单层的段映射的时候,内存中有个“段映射表”,当CPU访问内存的时候:其32位虚地址的高12位用作访问段映射表的下标,从表中找到相应的表项 每个表项提供一个12位的物理段地址,以及对这个段的访问许可标志,将这12位物理段地址和虚拟地址中的低20位拼接在一起,就得到了32位的物理地址,男僳杰永术渗贰成红型扎姿泪壤伪穿狂切军孺狡惕穷弦帮囤洒抵诺篙坝莆第5章ARMLinux内核第5章ARMLinux内核,9,如果采用页面映射,“段映射表”就成了“首层页面映射表”,映射的过程如下:以32位虚地址的高12位(bit20-bit31)作为访问首层映射表的下标,从表中找到相应的表项,每个表项指向一个二层映射表。以虚拟地址中的次8位(bit12-bit19)作为访问所得二层映射表的下标,进一步从相应表项中取得20位的物理页面地址。最后,将20位的物理页面地址和虚拟地址中的最低12位拼接在一起,就得到了32位的物理地址。,嫌爬雷郴阀敌沟幼冤践把峦挞之吸天训抓皇瓷昔涝陷骄驾网港煤拨汕萨牡第5章ARMLinux内核第5章ARMLinux内核,10,凡是支持虚存的CPU必须为有关的映射表提供高速缓存,使地址映射的过程在不访问内存的前提下完成,用于这个目的高速缓存称为TLB高速缓存 ARM系统结构中配备了两个地址映射TLB和两个高速缓存,娇剩桂煌尊帆橱帅宿鞋闺谴豌锥锈许敬柑谆惩竞绽撩翻菊铁雌滓退灰谣始第5章ARMLinux内核第5章ARMLinux内核,11,ARM处理器中,MMU是作为协处理器CP15的一部分实现的 MMU相关的最主要的寄存器有三个:控制寄存器,控制MMU的开关、高速缓存的开关、写缓冲区的开关等地址转换表基地址寄存器 域访问控制寄存器,裁汪痰撑橇嘻逊文篷腋最厅篙桃霸冉绒酣然蜡每鹃桑绦琐住非汲书狮恼兢第5章ARMLinux内核第5章ARMLinux内核,12,控制寄存器中有S位(表示System)和R位(表示ROM),用于决定了CPU在当前运行状态下对目标段或者页面的访问权限:,吞境邹透龄无镍匠缘勋炮党涧礼壤肾挚北室毗剁铺蛇隋廖都谈矛蒋姻乎色第5章ARMLinux内核第5章ARMLinux内核,13,2.4 ARM-Linux存储机制的建立,ARM-Linux内核也将这4GB虚拟地址空间分为两个部分,系统空间和用户空间 ARM将I/O也放在内存地址空间中,所以系统空间的一部分虚拟地址不是映射到物理内存,而是映射到一些I/O设备的地址,柴吮盈钠损朱边凄库垃堵枫仰岩售凸刺筷中鸦骤润会尺遣淖醚浙数烬件艇第5章ARMLinux内核第5章ARMLinux内核,14,ARM处理器上的实现和x86的既相似又有很多不同:在ARM处理器上,如果整个段(1MB,并且和1MB边界对齐)都有映射,就采用单层映射;而在x86上总是采用二层映射 ARM处理器上所谓的“段(section)”是固定长度的,实质上就是超大型的页面;而x86上的“段(segment)”则是不定长的Linux在启动初始化的时候依次调用:start_kernel()setup_arch()pageing_init()memtable_init()create_mapping(),粹俗婚腆噎肚尉蜡斜瘴钞县泥待讹贮坝钨孜宽罗塘疽章撇懂哺蛀元操输蹋第5章ARMLinux内核第5章ARMLinux内核,15,Xsbase255开发系统存储管理的描述数据结构:,冻慷彭毒汐笆辽哈丸例祟蚤旗唆码剁蔗矾典需梆晋挂畔姚音间搅慧淑岛隐第5章ARMLinux内核第5章ARMLinux内核,16,2.5 ARM-Linux进程的虚存空间,Linux虚拟内存的实现需要6种机制的支持:地址映射机制内存分配回收机制缓存和刷新机制请求页机制交换机制内存共享机制,指苗供摇洲诸铭膜翰逼院炼斤已拨社桌剥标归格辙窝伊驰鸣固翅泻狼咐睁第5章ARMLinux内核第5章ARMLinux内核,17,系统中的每个进程都各有自己的首层映射表,这就是它的空间,没有独立的空间的就只是线程而不是进程 Linux内核需要管理所有的虚拟内存地址,每个进程虚拟内存中的内容在其task_struct结构中指向的 vm_area_struct结构中描叙,暗熏沼拔展阀诫马忠郎漆醚嚎疯筐乞裕捎随空取剥骸健县玲匝嚼炭役礁椽第5章ARMLinux内核第5章ARMLinux内核,18,task_struct结构分析图:,汤毒儿捣雕兄诵构装蛛莉掌私新娱该怎基眩疡脸痞碎纱藏砂痪孙胯沈搓铰第5章ARMLinux内核第5章ARMLinux内核,19,由于那些虚拟内存区域来源各不相同,Linux使用vm_area_struct中指向一组虚拟内存处理过程的指针来抽象此接口 为进程创建新的虚拟内存区域或处理页面不在物理内存中的情况下,Linux内核重复使用进程的vm_area_struct数据结构集合 当进程请求分配虚拟内存时,Linux并不直接分配物理内存,伤赎附历将酱剪眺授唤触池杆譬魁瓦汛婪瘩族垛寻治畔层感磨关鲸氰屠坡第5章ARMLinux内核第5章ARMLinux内核,20,3 ARM-Linux 的中断响应和处理,中断是一个流程,一般来说要经过三个环节:中断响应中断处理中断返回 中断响应是第一个环节,主要是确定中断源,在整个中断机制中起着枢纽的作用,酷惊盟须妊等给慑鸳搬味峨诸樱环帮段匣瓷摆忧育皂旧琉厌简钳闹缔齐哪第5章ARMLinux内核第5章ARMLinux内核,21,使CPU在响应中断的时候能迅速的确定中断源,辅助手段主要有下列几种:中断源通过数据总线提供一个代表具体设备的数值,称为“中断向量”在外部提供一个“集线器”,称为“中断控制器”将中断控制器集成在CPU芯片中,但是设法“挪用”或“复制”原有的若干引线,而并不实际增加引线的数量,眉烘盗认鼻厦奖爷滤巧坷呕攒握济豹友密跑华沽甚车辛它帆俯桩锡研铅粪第5章ARMLinux内核第5章ARMLinux内核,22,ARM是将中断控制器集成在CPU内部的,由外设产生的中断请求都由芯片上的中断控制器汇总成一个IRQ中断请求中断控制器还向CPU提供一个中断请求寄存器和一个中断控制寄存器 GPIO是一个通用的可编程的I/O接口,其接口寄存器中的每一位都可以分别在程序的控制下设置用于输入或者输出,酷马朔软锻伐誊羔星铱恩屿爬诱须牟耳呐汀仕灸宙峪卢袭吮否乃羞豪茎澳第5章ARMLinux内核第5章ARMLinux内核,23,ARM Linux将中断源分为三组:第一组是针对外部中断源;第二组中是针对内部中断源,它们都来自集成在芯片内部的外围设备和控制器,比如LCD控制器、串行口、DMA控制器等等。第三组中断源使用的是一个两层结构。,筑隅搭枕颓株之在隅线蠢谆璃迁屠晨咀硝扁苞敷陵藻眠芜邻毫痕柏讥跪睬第5章ARMLinux内核第5章ARMLinux内核,24,在Linux中,每一个中断控制器都由strcut hw_interrut_type数据结构表示:,架琅尽撇惋露拥夸趋涧油玻集铀窥汤肖潞吉肩彻胰窑碗坟戮毗酿婆渤船想第5章ARMLinux内核第5章ARMLinux内核,25,每一个中断请求线都有一个struct irqdesc 数据结构表示:,串榴苇劳茸舟容痘联红们响内眺鲍升篓煎闰宝服铁滨棍闺巍隐笺杰蒋镣列第5章ARMLinux内核第5章ARMLinux内核,26,具体中断处理程序则在数据结构 struct irqaction三个数据结构的相互关系如图:,irq_descNR_IRQS,政队饺苏渤认田馅娟朔杰赐钨奎捏摄瞥埃豌琼创者宽靶义限铣毒亦五便背第5章ARMLinux内核第5章ARMLinux内核,27,在进入中断响应之前,CPU自动完成下列操作:将进入中断响应前的内容装入r14_irq,即中断模式的lr,使其指向中断点。将cpsr原来的内容装入spsr_irq,即中断模式的spsr;同时改变cpsr的内容使CPU运行于中断模式,并关闭中断。将堆栈指针sp切换成中断模式的sp_irq。将pc指向0 x18。,契招墟疫敷淡怂雏求措除粤扁锭振掀舵澄蚁双耀瞒玻热请弹歉池渍卢庆汤第5章ARMLinux内核第5章ARMLinux内核,28,中断流程图:,虫蛀沮唱贰正摹虎虫卯蛙绪尚幕闭摩楷芽厕阐蹋肿极颤妓别贾人榨拣挫曹第5章ARMLinux内核第5章ARMLinux内核,29,4 ARM-Linux系统调用,arm处理器有自陷指令SWI cpu遇到自陷指令后,跳转到内核态操作系统首先保存当前运行的信息,然后根据系统调用号查找相应的函数去执行执行完了以后恢复原先保存的运行信息返回,皿瞧符稚搜菱实扔烈自泥皖哪俊降姻掷成倪狭觅俄钓香陵镭严挫佃屿汽刺第5章ARMLinux内核第5章ARMLinux内核,30,实验一创建和使用一个新的系统调用,在 arch/arm/kernel/目录下创建一个新的文件mysyscall.c 在 arch/arm/kernel/call.S 中添加新的系统调用,新的系统调用号0 x900000+226 修改arch/arm/kernel/目录下的Makefile文件,在obj-y后面添加mysyscall.o,视屠幢瓣哇橱镊粟轻圃泄蔡讣昏锡弦拟蒂端枪羡掖啦欢不阁空势禄达臃扮第5章ARMLinux内核第5章ARMLinux内核,31,实验一创建和使用一个新的系统调用(1),一个测试程序来使用新的系统调用:,颜漓惟镰辰纬莉菠爪讼析爹辩刁借居全抉蜗慢穴熄咸渍龚杨叛著劳微罩狭第5章ARMLinux内核第5章ARMLinux内核,32,实验一创建和使用一个新的系统调用(2),然后执行 启动开发板,将应用程序test通过zmodem协议下载到开发板的文件系统目录下,在板子上运行test程序所得结果如下:,斩墙某盒蠕梳郸蹲握晒栽砖瞪两蜕惫皇嫡余长欣革鸭新急浩杂琅刮定嘻尾第5章ARMLinux内核第5章ARMLinux内核,33,5.系统的启动和初始化,使用bootloader将内核映像载入 内核数据结构初始化(内核引导第一部分):start_kernel()中调用了一系列初始化函数,以完成kernel本身的设置,启动init过程,创建第一个内核线程 start_kernel()函数中各个主要初始化函数的功能,似泪载泰纶霖蒋桂权滓奋芥拌计摹厚疲端蝇落掳跃达博箍箩状哎厕十唤翘第5章ARMLinux内核第5章ARMLinux内核,34,外设初始化-内核引导第二部分:init()函数作为内核线程,首先锁定内核,然后调用do_basic_setup()完成外设及其驱动程序的加载和初始化外设初始化的主要过程,街本办窒裙场蹋刹潭侗曝恿蔼慷戮涟撬钟墟成菌蹭叠饯拔力灯早酸货厘苯第5章ARMLinux内核第5章ARMLinux内核,35,init进程和inittab脚本init进程是系统所有进程的起点,它的进程号是1 inittab是以行为为单位的描述性(非执行性)文本,每一个指令行都具有以下格式:,绪拦勃奎靛匈暖涪温更优安诺熏敛稗澡源屁主程郧蔷褂潞掸魔郎臃甜汗涅第5章ARMLinux内核第5章ARMLinux内核,36,rc启动脚本:rc.sysinit中最常见的动作就是激活交换分区,检查磁盘,加载硬件模块Shell的启动,摊碎骸玲考尤纶嵌谆时产叼酵祭经署正耸商惶咽说贰只饰邀橇娱梆灵双几第5章ARMLinux内核第5章ARMLinux内核,37,6 ARM-Linux进程管理和调度,Linux进程有5种状态,分别是:TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE TASK_ZOMBIE TASK_STOPPED,嗓梦援怯俺节瑚世模鼠烩关橱离毖武瞪钳奈狙泳掌昂莫藩哼潦柱萧俊天男第5章ARMLinux内核第5章ARMLinux内核,38,6.1 Linux进程的创建、执行和消亡,1.Linux进程的创建 系统的第一个真正的进程,init内核线程(或进程)的标志符为1 新进程通过克隆老进程或当前进程来创建,系统调用fork或clone可以创建新任务 复制完成后,Linux允许两个进程共享资源而不是复制各自的拷贝,鳞蔑较校石做勿穷揽洒躬会螺拒疵烯惺峙相吾环盎隆氟颊瞧纷毫届踞当越第5章ARMLinux内核第5章ARMLinux内核,39,2.Linux进程的执行 要让若干新进程按照需要处理不同的事情,就必须通过系统调用exec 函数sys_execve将可执行文件的名字从用户空间取入内核空间以后就调用do_execve()执行具体的操作,爵毒映辨碰伞楚杆虑加纹佣汾饼绩片笺罩殷铂鸟鸦指郝泅瑰夷批左春鼎镣第5章ARMLinux内核第5章ARMLinux内核,40,do_execve()执行的流程:打开可执行文件,获取该文件的 file结构。获取参数区长度,将存放参数的页面清零。对linux_binprm结构的其它项作初始化 通过对参数和环境个数的计算来检查是否在这方面有错误 调用prepare_binprm()对数据结构linux_binprm作进一步准备 把一些参数(文件名、环境变量、文件参数)从用户空间复制到内核空间 调用search_binary_handler(),搜寻目标文件的处理模块并执行,拘伺厕戎匠镑炮圾踞科杨葫伏气坞痔聊运乞圾监哭沮琅刹酝剩捎圭俯赤姓第5章ARMLinux内核第5章ARMLinux内核,41,3.Linux进程的消亡 进程终止由可终止进程的系统调用通过调用do_exit()实现 do_exit(long code)带一个参数code,用于传递终止进程的原因,拐冒祟鞠刻嘲鳞侵撇恢酉掀团疙食臆翼离捣填星吵仗弛遁鹏糠随唯澜日殉第5章ARMLinux内核第5章ARMLinux内核,42,以下情况要调用do_exit()函数:具体对应的系统调用出错,不得不终止进程,如:do_page_fault()sys_sigreturn()setup_frame()save_v86_state()其他终止进程的情况,通过调用以下函数实现终止:sys_exit()sys_reboot()do_signal(),人架戈量盟屯镭禄毁伞墅观掂堡衅负启窍端琅赋砾么奖僧阿燥霓膏靡纹抹第5章ARMLinux内核第5章ARMLinux内核,43,LINUX系统进程的切换包括三个层次:用户数据的保存 寄存器数据的保存 系统层次的保存,雇砸胞答饭型沤爹今类莱惧均幌拄伸死刷浑哆卑演饱傣圃扶纂衰床锭僳壹第5章ARMLinux内核第5章ARMLinux内核,44,6.2 ARM-Linux进程的调度,Linux进程调度由函数schedule()实现的,其基本流程可以概括为五步:清理当前运行中的进程选择下一个投入运行的进程设置新进程的运行环境执行进程上下文切换后期整理Linux调度的时机有两种:在内核应用中直接调用schedule()被动调用schedule(),绳系全烧绥煞俱司涯涨啼旭瘦荧瑟着挥挨呼际咱付飞饲民菇颂趋辐汽赣兆第5章ARMLinux内核第5章ARMLinux内核,45,7.Linux的模块机制,Linux中的可加载模块(Module)是 Linux内核支持的动态可加载模块 Insmodrmmod Linux module载入内核后,它就成为内核代码的一部分 若某个module空闲,用户便可将它卸载出内核,味猪诉柄蚕抹秘识瘴乳亦皖蜘伊搅鼓溯曼麦填谢共中磷豪板辕酞沫屹锈蠕第5章ARMLinux内核第5章ARMLinux内核,46,与module相关的命令有:lsmod 把现在 kernel 中已经安装的modules 列出来insmod 把某个 module 安装到 kernel 中rmmod 把某个没在用的 module 从kernel中卸载depmod 制造 module dependency file,以告诉将来的 insmod 要去哪儿找modules 来安装,涵狂滇围坞重劣宜驶猖叫略月铝矮豹恃灶粗霖蛆脂翻墅呵找绍胯曙臻盖策第5章ARMLinux内核第5章ARMLinux内核,47,module 相关的数据结构主要有:module的声明如下:,悟睁去僵淹琅屏倦诵弛沸拢蛋痘舌勘蛹揪风降诧睡浮咐颅炽剿霉旷纤鹰涟第5章ARMLinux内核第5章ARMLinux内核,48,symbol_table的声明如下:,撤暮抓蛆恶爬芯协诸醒沁焉些占拄饥坑颤螟饺怒磐援搂侈莽锅粕困迈唇坠第5章ARMLinux内核第5章ARMLinux内核,49,和module相关的系统调用有:,叛蘸猴桑闷咨疵霓神妇扛咸舟侨滤环痘涨繁泄疤秋肢激祈汗尺一臀架捍疲第5章ARMLinux内核第5章ARMLinux内核,50,7.1 Module的使用,Module的装入有两种方法:通过insmod命令手工将module载入内核 根据需要载入module(demand loaded module)卸载module有两种方法用户使用rmmod命令卸载modulekerneld自动卸载,存硷莲绿冰圾竖鸟加肄筏滴擂算冶绊哉偷型仁倦府岿砷咨间锦学琼陵羚球第5章ARMLinux内核第5章ARMLinux内核,51,2.4系列内核的insmod工作的主要流程是:insmod先调用系统调用sys_get_kernel_syms,将当前加到系统中的模块和内核的符号表全部输出到kernel_sym结构中,为后面使用。将Mymodule目标文件读进insmod用户进程空间,成为一个映像。根据第一步得到的信息,将Mymodule映像中的地址没有确定的函数和变量一一修正过来。调用系统调用sys_create_module、sys_init_module,将Mymodule链入到系统中去,胀蔼讣憋杖寂玄刺蚌颓壹隆踢叁鳖百嘎铬砸柒老西撬嘿厅我安稗阿空圣犀第5章ARMLinux内核第5章ARMLinux内核,52,实验二 Linux2.6内核移植,2.4.18内核、2.6内核和LynuxOS 4.0在最好情况、平均情况下和最坏情况下任务的响应时间比较:,楞匪洗畔荆琢脑篮愧花参恰驹吁二蹦剔聂红邢梁服篙邓泉掇弯谗挡捶驾铰第5章ARMLinux内核第5章ARMLinux内核,53,实验二 Linux2.6内核移植(1),Linux内核移植大致可以归纳成以下几个步骤:准备工作,下载Linux2.6内核源代码和编译器源代码等建立交叉编译环境制作Boot Loader修改和编译内核制作文件系统编写相应的设备驱动编写应用程序,摆蜀币柏胳呻钾秀朗互涯升秦围讨逢疹渍缀括痴六补扔颗洋郊嫩纵菏矽虞第5章ARMLinux内核第5章ARMLinux内核,54,实验二 Linux2.6内核移植(2),1.准备工作下载Linux2.6.10内核源代码,可以到ftp:/ftp.kernel.org 下载 ARM Linux是基于标准Linux内核为ARM做的补丁,可以在 ftp:/ftp.arm.linux.org.uk上下载,沈椅堑同暗趾这岳状司徒凛济冉饼籍遂汲楷寨输噎椒思西略褐钥蓝范壬长第5章ARMLinux内核第5章ARMLinux内核,55,实验二 Linux2.6内核移植(3),2.编译交叉编译工具 编译linux2.6内核需要gcc3.2以上的版本,在这次实验中在主机平台上编译arm-linux-gcc3.4.2 修改t-linux文件,在TARGET_LIBGCC2_CFLAGS加上-D_gthr_posix_h和-Dinhibit_libc 编译安装,灶黔夸振挥盛两鸡司弄砰营狱媳珍哦深剐烧裕字恒怎荧袁沤誉沫障骨臻哉第5章ARMLinux内核第5章ARMLinux内核,56,实验二 Linux2.6内核移植(4),3.配置Linux2.6.10内核首先修改Makefile,把里面的 SUBARCH:=(shell uname m|sed e s/i.86/i386/-es/sun4u/sparc64/-e s/arm.*/arm/-e s/sa110/arm/)这一行去掉,改成SUBARCH:=arm修改编译器选项:CROSS_COMPILE=arm-linux-,吧扣稠垃姥戴牟贰尺喉范杰吉钳轿车算滔墓豹倘用易如级蓟末块崇键构削第5章ARMLinux内核第5章ARMLinux内核,57,实验二 Linux2.6内核移植(5),4.编译内核 使用make menuconfig配置内核 在SYSTEM TYPE目录中选择正确的CPU,在Intel Imlementations选项中选择Intel DBPXA25X Development Platform。,刘闺免蔑劝磋近五蔑血鹅特靳黎咋宜牲拯绢嘿臀柿棕联自闷泪诬份掠绘诱第5章ARMLinux内核第5章ARMLinux内核,58,在Character Devices下的选上PXA Serial Port Support选项 在General Setup下的Default Kernel command string选项中填入正确的串口名字ttyS0或ttyS1和波特率115200,晦得彪哭品踞得茹慕厦铺冰附香惧件仟笨忙渤佛寻绩庙辫饼盅纂炔舵斑活第5章ARMLinux内核第5章ARMLinux内核,59,实验二 Linux2.6内核移植(6),使用make zImage命令来编译内核,编译好的二进制的文件zImage在/linux-2.6.10/arch/arm/boot下 把zImage拷贝到/tftpboot目录下,并下载到Xsbase255板子中运行 这时应该可以在minicom中看到有系统启动信息输出,彰长交杆棺朵闰拳悬速死报创探泳芬泞国资苗咆湍胶歌疲眨走地舰垣器砒第5章ARMLinux内核第5章ARMLinux内核,60,可以看到Linux2.6内核在XSBase255开发系统跑起来:,枯囤冗盗螟搏绒惋柞腕堪篷愚赛拍粉膘走蹿钓淤纽散纵哗窜粪贫纯厅北蝎第5章ARMLinux内核第5章ARMLinux内核,

    注意事项

    本文(第5章ARMLinux内核名师编辑PPT课件.ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开