![(电路与系统专业论文)基于Unicore架构的嵌入式Linux+Kernel实现与优化[电路与系统专业优秀论文].pdf_第1页](http://file.renrendoc.com/FileRoot1/2019-12/13/2e469d3b-5451-43bc-bdda-01cdfd602576/2e469d3b-5451-43bc-bdda-01cdfd6025761.gif)
![(电路与系统专业论文)基于Unicore架构的嵌入式Linux+Kernel实现与优化[电路与系统专业优秀论文].pdf_第2页](http://file.renrendoc.com/FileRoot1/2019-12/13/2e469d3b-5451-43bc-bdda-01cdfd602576/2e469d3b-5451-43bc-bdda-01cdfd6025762.gif)
![(电路与系统专业论文)基于Unicore架构的嵌入式Linux+Kernel实现与优化[电路与系统专业优秀论文].pdf_第3页](http://file.renrendoc.com/FileRoot1/2019-12/13/2e469d3b-5451-43bc-bdda-01cdfd602576/2e469d3b-5451-43bc-bdda-01cdfd6025763.gif)
![(电路与系统专业论文)基于Unicore架构的嵌入式Linux+Kernel实现与优化[电路与系统专业优秀论文].pdf_第4页](http://file.renrendoc.com/FileRoot1/2019-12/13/2e469d3b-5451-43bc-bdda-01cdfd602576/2e469d3b-5451-43bc-bdda-01cdfd6025764.gif)
![(电路与系统专业论文)基于Unicore架构的嵌入式Linux+Kernel实现与优化[电路与系统专业优秀论文].pdf_第5页](http://file.renrendoc.com/FileRoot1/2019-12/13/2e469d3b-5451-43bc-bdda-01cdfd602576/2e469d3b-5451-43bc-bdda-01cdfd6025765.gif)
已阅读5页,还剩60页未读, 继续免费阅读
(电路与系统专业论文)基于Unicore架构的嵌入式Linux+Kernel实现与优化[电路与系统专业优秀论文].pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着信息化应用的不断深入和网络及通信技术的飞速发展,嵌入式系统越来越追求数字 化、网络化和智能化,原来在某些设备或领域中占主导地位的软硬件系统越来越难以为继。 近些年来微处理器的性能得到大幅提高,这使得复杂的操作系统可被用于嵌入式计算机系统 之上。嵌入式l i n u x 是将通用l i n u x 操作系统进行裁剪、修改,一方面使得系统之上可以创 建复杂的多任务应用程序,另一方面使得嵌入式设备不再是孤立的,可通过互联网、无线或 是其他的方式实现互连。l i n u x 具有很好的可靠性,完全开放源码。 本文的研究工作选择8 0 5 + 处理器为核心,通过总线与i o 方式连接众多外围电路模块。 8 0 5 + 处理器是由东南大学a s i c 系统工程技术研究中心和北京大学微处理器研究开发中心 共同设计的基于u n i c o r e 架构的3 2 位移动终端应用处理器,面向低成本手持设备和其它通 用嵌入式设备。工作的主要内容是完成了基于u n i c o r e 架构的嵌入式l i n u xk e r n e l 的实现和 优化,分析了内核移植过程中的重点与难点,根据8 0 5 + 处理器特性对通用l i n u x2 4 1 9 的系 统启动流程、例外管理、内存管理、c a c h e 管理、文件系统、电源管理系统的代码进行了修 改与完善,使得系统稳定性与可靠性得到改善。本课题实现的在8 0 5 + 处理器上运行的嵌入 式l i n u x 性能已达到a r m 、m i p s 等r i s c 架构处理器上运行的嵌入式l i n u x 的水平。此外, 本课题所做的工作也对今后在其他自主研发的微处理器上移植嵌入式l i n u x 操作系统做了 铺垫。同时,本文中还阐述了一些与内核镜像的编译链接相关的内容,涵盖了内核移植涉及 到的众多内容。 目前,本文所述的各项实现和完善工作全部完成,所移植的嵌入式l i n u x 能够在基于 8 0 5 + 的硬件平台上稳定运行,系统可以启动到s h e l l 命令行下。经过初步测试,系统运行稳 定。为了达到产业化的水平,还需要在目前的平台之上,添加各种外设,完善其功能,并且 要进行不断的测试和改进。 关键词:嵌入式l i n u xu n i c o r e8 0 5 + 移植 a b s t r a c t a l o n gw i t ht h ec o n t i n u o u sd e e p e n i n ga n dt h ea p p l i c a t i o no f i n f o r m a t i o na n dc o m m u n i c a t i o n s n e t w o r k sa n dt h er a p i dd e v e l o p m e n to ft e c h n o l o g y , e m b e d d e ds y s t e m sh a v eb e c o m ei n c r e a s i n g l y p u r s u i n g ,n e t w o r k i n ga n di n t e l l i g e n t ,a n dt h ed o m i n a n ts o f t w a r ea n dh a r d w a r es y s t e m su s e di nt h e p a s ta r eh a r dt oc o n t i n u et h e i rw o r k i nr e c e n ty e a r s ,t h ep e r f o r m a n c eo fm i c r o p r o c e s s o rh a s i m p r o v e dal o t , w h i c hm a d et h eo p e r a t i n gs y s t e m ( o s ) c a l lb eu s e di ne m b e d d e ds y s t e m s t h i sr e s e a r c hw o r ks e l e c t s8 0 5 + t ob et h ec o r ea n dc o n n e c t ss e v e r a lp e r i p h e r a lc i r c u i t sb yb u s a n di om e t h o d s 8 0 5 + c h i pi sam o b i l et e r m i n a lm i c r o p r o c e s s o rb a s e do nu n i c o r ef r a i b e w o r k 8 0 5 + i sd e v e l o p e d b y n a t i o n a l a s i cs y s t e m e n g i n e e r i n g r e s e a r c h c e n t e r o f s o u t h e a s t u n i v e r s i t y a n dm i c r op r o c e s s o rr e s e a r c ha n dd e v e l o p m e n tc e n t e ro f p e k i n gu n i v e r s i t y ( m p r c ) ,a n da i ma t l o wc o s th a n d h e l dd e v i c e sa n do t h e rg e n e r a le m b e d d e dd e v i c e s t h ea i mi st oi m p l e m e n ta n d o p t i m i z ea ne m b e d d e dl i n u xk e r n e lb a s e do ut h eu n i c o r ef r a m e w o r k t h ep a p e ra n a l y z e st h e e m p h a s e sa n dd i f f i c u l t i e so fp o r t i n gl i n u xk e r n e l ,m o d i f y i n gt h el i n u x k e r n e lb a s e dt h e m i c r o p r o c e s s o r sc h a r a c t e r s t h es u b j e c ti sb a s e do nl i n u x2 4 1 9 a n de m p h a s i z e st h eb o o t s e q u e n c eo fs y s t e m , e x c e p t i o nm a n a g e m e n t ,m e m o r ym a n a g e m e n t ,c a c h em a n a g e m e n ta n df i l e s y s t e ma n dp o w e rm a n a g e m e n t i ta n a l y z e st h ei m p l e m e n t a t i o no fs o u r c ec o d ea n dp r e s e n t ss o m e s c h e m e so f o p t i m i z i n g t h ep e r f o r m a n c eo f e m b e d d e dl i n u xr u no n8 0 5 + g e n e r a l l yr e a c ht h a tn u l 0 1 1m i c r o p r o c e s s o r sb a s e do nr i s cf l a n l e w o r kl i k ea r ma n dm i p s t h ew o r ka l s op r o v i d e s p r e p a r a t i o nt op o r t i n ge m b e d d e dl i n u xt oo t h e rm i c r o p r o c e s s o r sd e v e l o p e db yw a tt h es a u l e t i m e ,t h i sp a p e ra l s oi n 仰o d u c e sh o wt oc o m p i l ea n dl i n kt h ei m a g eo f k e r n e l a l lt h ew o r kd e s c r i b e di nt h ep a p e rh a sb e e nf m i s h e d t h ee m b e d d e dl i n u xc a nr u no nt h e h a r d w a r ep l a t f o r mb a s e do n8 0 5 + a n dt h es y s t e mc a ns h o ws h e l lc o m m a n dl i n e t h g o t l g hs i m p l e t e s t ,t h es y s t e mi sa b l et ow o r ks t a b l y f o ri n d u s t r i a l i z a t i o n ,s o m ep e r i p h e r a lm o d u l e ss h o u l dt ob e a p p e n d e da n dt h ew h o l ef u n c t i o n so f t h es y s t e ms h o u l db ec o n s u m m a t e dw i mc o n t i n u o u s l yt e s t i n g a n di m p r o v i n g k e y w o r d s :e m b e d d e dl i n u x u n i c o r e 8 0 5 + p o r t i n g 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写 过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢 意。 研究生签名:毒卜日期:2 掣 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印 件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸 质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包 括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 研究生签名:_ 拉_ 导师签名: 日期: i 每i , 一 1 j 绪言 1 课题研究背景 绪言 近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、 工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统是以应用为中心、以计算机 技术为基础、软件硬件可剪裁来适应系统对功能、可靠性、成本、体积、功耗严格要求的专 用计算机系统。科技是第一生产力,知识经济已经影响到了国民经济的各个角落,在我国 嵌入式系统市场预计每年将直接创造千亿元的效益,所带动的相关工业产值将超过上万亿 元。但是目前绝大多数的嵌入式处理器研发、制造与应用技术都掌握在少数发达国家手中, 这不但给我国的信息安全带来了一定的隐患,也使得我国信息产业的发展受制于人。中科院、 北京大学、清华大学、东南大学等一些国家重点科研院所都陆续开始了微处理器的研发,成 果喜人。 嵌入式系统的智能化除了具有一个功能强大的微处理器以外,还需要有稳定高效的操作 系统提供支持。实际上我们平时接触和熟悉的电脑操作系统都是通用操作系统,它们针对的 是p c 或是功能更为强劲的工作站。为了最大幅度地兼容各种软硬件产品,充分发挥它们各 自的功能,通用操作系统一般都面面俱到、体积庞大。实际上,安装有嵌入式微处理器、运 行嵌入式o s 的各种电子设备和产品对人们的日常生活的影响远胜于运行视窗的p c 。据统 计,目前销售的各种微处理器中有3 4 被用于各种嵌入式系统中。嵌入式系统中的硬件资源 环境一般比较苛刻,嵌入式微处理器和微控制器的内存一般都不大,要在如此紧张的资源下 完成复杂的功能,这就要求嵌入式系统软件必须尽量的小巧、稳定和高效。嵌入式系统除具 备了一般操作系统最基本的功能如任务调度、同步机制,中断处理、文件处理等外,还有以 下一些特点: 可装卸性。开放性、可伸缩性的体系结构。 强实时性。嵌入式操作系统实时性一般较强,可用于各种设备控制当中。 较强的交互能力,操作方便、简单、提供友好的图形g u i ,追求易学易用。 提供强大的网络功能,支持t c p i p 协议及其它协议,提供t c p a j d p i p p p p 协议 支持及统一的m a c 访问层接口,为各种移动计算设备预留接口。 强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就 要负责系统管理的嵌入式操作系统具有较强的稳定性。嵌入式操作系统的用户接 口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。 固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计 算机的r o m 或f l a s h 中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式 操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统。 更好的硬件适应性,也就是良好的移植性。 综合考虑各方因素,嵌入式l i n u x 具有得天独厚的优势,源代码完全开放,具有丰富的 软件资源,广泛的软件开发者支持,成本低廉;内核可高度精简,稳定高效;强大的网络功 能,对各种网络应用提高很好的支持;移植性较强,适用于不同c p u 与不同的硬件平台; 用户可定制,可提供图形化的定制与配置工具,具有完整的开发工具与s d k 【”j 。 硬件方面使用8 0 5 + ,8 0 5 + 应用处理器内嵌有3 2 位高性能r i s c 处理器u n i c o r e 3 2 、m m u 和c a c h e ,芯片内核工作在2 0 0 m h z ,外设及总线工作在1 0 0 m h z 。支持u s b 2 。0 接口,p m m a 多媒体加速,采用b g a 封装,面向低成本手持设备和其它通用嵌入式设备,整合了内存控 制器、n a n d 控制器、彩色l c d 控制器等。8 0 5 + 还提供了电源管理功能,根据处理器工 作情况来动态调节其耗电量。 东南大学硕士学位论文 u n i c o r e 3 2 是一个3 2 位h a r v a r d 结构的r i s c 处理器,它采用五级流水线结构,并采用硬件 机制解决数据相关问题。相对简单的结构使它具有高性能、高代码密度等特点,并能实现实 时的中断响应。u n i c o r e 3 2 强大功能体现在内存管理部分,具有分离的指令c a c h e 和数据 c a c h e ,大小各为8 k b 。 由于8 0 5 + 是具有完全自主知识产权的s o c 芯片,因此要开发基于8 0 5 + 的嵌入式l i n u x 也只能由芯片提供方完成。本课题主要基于以上背景,实现了针对u n i c o r e 架构的众志8 0 5 + 嵌入式l i n u x ,并傲了相应的优化。 2 课题主要研究工作 本课题的研究工作主要是完成基于u n i c o r e 架构的嵌入式l i n u xk e r n e l 的实现与优化。 由于众志8 0 5 + 是自主研发的s o c 芯片,从l i n u x 开源社区得到的支持有限,移植的工作必 须从最底层做起,牵涉到从硬件支持到文件系统的各个方面。在实现过程中的具体研究如下: 选择基于u n i c o r e 架构的8 0 5 + 处理器作为实现的对象,并依此构建了一套软硬件开 发系统。 选择g n u 项目的l i n u x2 4 1 9 作为操作系统,研究l i n u x 中编译链接工具以及 m a k e f i l e :参考源码中与u n i e o r e 架构相似的一些r i s c 处理器代码,分析并掌握 嵌入式l i n u x 操作系统移植的原理以及步骤。 对系统引导部分进行分析,实现从b o o t l o a d a r 到l i n u x 内核运行的平稳过渡。 分析8 0 5 + 的中断管理、内存管理、c a c h e 管理、文件系统、时间系统和电源管理 等模块工作原理,在l i n u x 内核目录树中添加相应的代码并进行完善与优化。 总结基于u n i c o r e8 0 5 + 处理器的嵌入式l i n u xk e r n e l 实现,并指出待改进之处。 3 论文主要内容 根据课题所涉及到的主要研究工作,该论文的内容包括三个部分。论文的第一部分首先 介绍了嵌入式l i n u xk e r n e l 以及u n i e o r e8 0 5 + 处理器相关的基础知识,为阐述论文的主体内 容作好准备。论文的主体部分( 包括第三章至第八章) 阐述了基于u n i c o r e8 0 5 + 处理器的嵌 入式l i n u xk e r n e l 的移植过程;在论文的最后,即总结展望部分对该嵌入式l i n u xk e r n e l 进 行了总结,并提出了一些待改进之处。 第一章,概述嵌入式l i n u xk e r n e l 以及u n i e o r e8 0 5 + 处理器相关的基础知识。 第二章,介绍基于8 0 5 + 处理器构建的软硬件开发平台,介绍了g c c 开发工具、编译链 接以及内核开发过程中的调试手段。 第三章,阐述整个系统的启动过程,包括b o o t l o a d e r 的实现和k e r n e l 映像的自解压、 重定位等过程。 第四章,阐述了基于u n i e o r e 架构8 0 5 + 处理器例外管理的l i n u xk e r n e l 实现 第五章,阐述了基于u n i e o r e 架构8 0 5 + 处理器内存管理、c a c h e 管理l i n u xk e r n e l 实现。 第六章,阐述时间系统的移植实现。 第七章,阐述文件系统的移植实现。 第八章,电源管理。 2 第一章概述 第一章概述 本章分两个部分,主要阐述论文主体内容准备工作,第一部分介绍了基于主流s o c 处 理器的嵌入式l i n u xk e r n e l 一般特性和层次结构,第二部分介绍8 0 5 + 处理器相关的基础知 识。 1 1l i n u xk e r n e l 总体框架 严格说来,l i n u x 并不是一个完整的操作系统。当在安装通常所说的l i n u x 时,实际安 装的是很多工具的集合。这些工具协同工作以组成一个功能强大的实用系统。l i n u x 本身只 是这个操作系统的内核,是操作系统的心脏、灵魂、指挥中心( 整个系统应称为g n u l i n u x ) 。 内核以独占的方式执行最底层任务,保证系统正常运行,协调多个并发进程,管理进程使用 的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等等。l i n u x 内核目前可支 持包括i 3 8 6 、a r m 、m i p s 、s p a r c 、p p c 等多种处理器,这些支持一般都是由各个芯片厂 商提供简易版本,针对特定的产品还需要做一定的完善与优化。目前,l i n u x 内核版本已经 发展到2 6 ,2 6 内核在2 a 内核基础之上增强了实时性,功能也更强大,但是消耗的资源也 更大。由于第一次移植一个全新的操作系统,权衡考虑,最终选择了应用广泛且稳定高效的 l i n u x2 4 1 9 版本。 图i - 1 嵌入式l i n u xk e r n e l 总体框架图 一般嵌入式l i n u xk e r n e l 从整体上可分为三个层次:系统调用接口,内核管理系统,平 台抽象层( 包括芯片支持部分、驱动程序) ( 9 1 。如图1 - 1 所示( 图中p 表示用户程序) 。 内核管理系统分为六大部分,即网络系统、文件系统、内存管理系统、进程管理系统、 进程同步与通信和电源管理系统。这些系统模块构成了一般嵌入式l i n u x 内核向用户程序提 3 东南大学硕士学位论文 供的所有功能,这些功能最终通过系统调用接口与用户程序交互。然而,这些系统模块在具 体硬件平台上的实现则要依赖于平台抽象层。比如说,文件系统靠h a s h 芯片的驱动程序来 完成对其的读、写、擦除等操作,内存管理系统靠芯片支持中的物理内存管理来完成内核页 表的初始化等等。 一般l i n u xk e r n e l 通过平台抽象层将具体硬件信息封装成若干功能模块,对系统调用接 口和内核管理系统而言,只需要通过组合这些功能模块,便能够控制硬件的具体行为。在很 多场合,将操作系统中的平台抽象层称作b s p ( 板级支持包) 。从硬件角度来划分,平台抽 象层具体包括芯片支持和驱动程序两个部分。 芯片支持部分主要包括与处理器相关的功能实现,如例外管理、物理内存管理、c a c h e 管理、时钟管理等等。这些功能模块通过将对应硬件模块的功能进行封装,向上层软件提供 接口。这些接口不会直接提供给用户程序,而是为内核管理系统和驱动程序服务。 驱动程序则包括所有外设的功能实现,如串口驱动、f l a s h 芯片驱动、r t c 驱动、触摸 驱动、u s b 驱动、红外设备驱动等等。驱动程序将这些外设按照内核管理系统中文件系统 定义的接口进行封装。用户程序通过文件系统相关的系统调用可直接访问这些接口【”。 综上所述,平台抽象层所负责的任务就是将具体硬件的行为翻译为抽象的功能模块接 口,并提供给上层调用。由于这些功能模块接口通常都是固定了的,那么如何将处理器以及 硬件平台的性能通过这些接口发挥出来,也就是实现平台抽象层的主要难点。 1 28 0 5 + 处理器介绍 r t c 姗i 嗍i g p t p 删 i n t c a m l丁3 p 删 b r i d g e l 心a h b 黔 n a 舳n o r f l a s h s d r 删 b 心 d m a c 一“。虿一“ s r 枷 g叮7 _ a 州 p s d i o 1 s p i 0 u 目 a r f 循 p c a c h ec a c h e u a 盯 b ( 2 ) u n i c o r e u s b 际刊瓦砷 a c 9 7 c 一糊 图i - 28 0 5 + 处理器结构图 8 0 5 + 是由东南大学国家专用集成电路系统工程技术研究中心和北京大学微处理器研究 开发中心共同设计的3 2 位移动终端应用处理器。8 0 5 + 移动终端应用处理器针对低成本个人 移动终端的应用需求,为用户提供了面向移动终端应用的丰富外设、低功耗管理和低成本的 外存配置。为了适应手持信息终端的多媒体处理需求,处理器还集成了用于多媒体加速的 p m m a ( p r o g r a m m a b l e m u l t i m e d i a a c c e l e r a t o r ) ,支持m p e g 4 m p 3 w m a 等多媒体应用。 如图l - 2 所示,8 0 5 + 应用处理器内嵌由3 2 位高性能r i s c 处理器u n i c o r e 、m m u 和 c a c h e ,芯片内核工作在2 0 0 m h z ,外设及总线工作在i o o m h z 。集成了支持黑白,灰度, 4 第一章概述 彩色的l c d 控制器,该l c d 控制器兼容r g b 图像和部分图像,为m p e g 4 等视频 解码提供了y u v - r g b 的处理能力;多媒体加速模块,用于提供多媒体处理,支持定点d c t 、 子带综合等信号处理计算能力;支持低成本的n a n df l a s h 控制器并可从其直接启动;支 持多种外存类型:s r a m ,n o rf l a s h ,s d r a m :支持实时钟( r 1 ) ;支持四通道的定时 器和两通道的p w m ;支持用于连接触摸屏通讯的s p i 协议;支持两个u a r t 控制器,其 中一个支持红外传输;支持u s b2 0 控制器用于p c 与移动终端之间的高速信息传输;支持 m m c 卡控制器,用户可以扩展系统的存储能力和外设功能,如w i f i ;支持兼容a c 9 7 协 议的控制器,用于音频文件的播放和录制。内嵌6 通道d m a 控制器,为用户提供高速的数 据传输通道。为了支持低成本的系统方案,8 0 5 + 支持外部3 2 位1 6 位数据总线,考虑到n a n d f l a s h 的成本优势,8 0 5 + 处理器提供专用的n a n d f l a s h 控制器。 5 东南大学硕士学位论文 第二章开发系统 如图2 - 1 所示,本文的研究工作基于的硬件开发系统是一个以8 0 5 + 处理器为核心,通 过总线方式和加方式连接了众多外围电路模块的平台。与本文研究内容密切相关的硬件分 为三个部分。 2 1 硬件开发系统 图2 - 1 硬件开发系统结构图 存储空间 8 0 5 + 的存储空间由e m i ( 外部存储器接口) 管理,支持的片外存储器包括:s r a m 、 r o m 、n o rf l a s h 、s d r a m 及n a n df l a s h 。外部存储接口模块( e x t e r n a l m e m o r yi n t e r f a c e ,简称e m i ) 的功能即为提供对这些外部存储器的读写接口。 6 第二章开发系统 支持地址的r e m a p 功能,即两个逻辑地址指向同一个物理地址。支持从外部n o r f l a s h 启动。 本课题硬件系统存储空间分为两个部分,一是6 4 m b 的s d r a m ,二是由1 6 m bn o r f l a s h 和3 2 m bn a n df l a s h 组成的存储空间。由于成本的关系,该系统使用了廉价的 n a n df l a s h 代替n o rf l a s h 作为主要存储设备。但n a n df l a s h 的致命缺陷就是不能 支持x i p ( e x e c u t ei np l a c e ) 技术,即处理器不能直接从n a n df l a s h 中读取指令并执 行,因为n a n df l a s h 不支持通过总线直接访问内部数据。 电源管理支持 系统主电源( 即主电池) 通过一个a d 芯片与8 0 5 + 相连。读取a d 芯片的数字采 样值,便可以得知当前电池电量。充电时,外电的接入和断开,都会产生一个中断信号。 根据该信号,系统状态在电量不足和充电两者之间切换。 2 2软件开发工具 2 2 1编程语言 由于本课题选择l i n u x 作为操作系统,主要是用c 语言实现”,但由于操作系统的移 植不可避免的要与硬件打交道,虽然c 语言的可移植已经相当强,但是为了提高系统的性 能以及稳定性,在代码一些与芯片紧密联系的部分用汇编( 比如操作系统必须访问一些特殊 的寄存器,它们存放着进程状态信息,执行输入和输出操作要使用特殊的指令或是访问特殊 的寄存器位置) 。要将主要由c 组成的代码与少量的汇编代码集成到一起,一种方法是用汇 编代码写一些关键函数,使用的参数传递和寄存器使用规则与c 编译器遵守的一样,将这 些汇编函数保存在独立的文件中,由链接器将编译好的c 代码和汇编好的汇编代码结合起 来。另一种方法是将汇编与c 代码混合起来9 j 。 此处主要介绍本课题操作系统代码中的c 内嵌汇编。c 内嵌汇编允许用户直接往编译 器产生的代码序列中插入汇编代码。可以提供一些特性,以指定指令操作数和向编译器说明 汇编指令要覆盖哪些寄存器,得到的是与机器高度相关的代码,不同类型机器指令是不兼容 的。 内嵌汇编语法如下: a s m ( 汇编语句模板:输出部分:输入部分:破坏描述部分) 共四个部分:汇编语句模板,输出部分,输入部分,破坏描述部分,各部分使用“:”格开, 汇编语句模板必不可少,其他三部分可选,如果使用了后面的部分,而前面部分为空,也需 要用“:”隔开,相应部分内容为空。例如:mv o l a t i l e _ ( ”e l i ”: m e m o r y ) l 、汇编语句模板 汇编语句模板由汇编语句序列组成,语句之间使用“;, n 或w 分开。指令中的操作 数可以使用占位符引用c 语言变量。 2 、输出部分 输出部分描述输出操作数,不同的操作数描述符之间用逗号格开,每个操作数描述符由 限定字符串和c 语言变量组成。每个输出操作数的限定字符串必须包含- ”表示他是一个输 出操作数。描述符字符串表示对该变量的限制条件,这样g c c 就可以根据这些条件决定 如何分配寄存器,如何产生必要的代码处理指令操作数与c 表达式或c 变量之间的联系。 3 、输入部分 输入部分描述输入操作数,不同的操作数描述符之间使用逗号格开,每个操作数描述符 由限定字符串和c 语言表达式或者c 语言变量组成。 7 东南大学磺士学位论文 4 、破坏描述部分 破坏描述符用于通知编译器我们使用了哪些寄存器或内存,由逗号格开的字符串组成, 每个字符串描述一种情况,一般是寄存器名;除寄存器外还有“m o r y ,。 2 2 2开发环境 本课题使用g n u 的l i n u x 系统下的g c c ( g n ucc o m p i l e r ) 作为开发环境,g - c c 是 可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平 均效率要高2 0 3 0 。g c c 编译器能将c 、c + + 语言源程序、汇编程序和目标程序编译、 链接成可执行文件。虽然g c c 是c 语言的编译器,但使用g c c 由c 语言源代码文件生成 可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤:预处理( 也称预 编译,p r e p r o c e s s i u g ) 、编译( c o m p i l a t i o n ) 、汇编( a s s e m b l y ) 和连接( l i n k i n g ) 。g c c 中包括了 汇编器a s 、c 编译器g c c 、c + + 编译器g + + 、链接器l d 和相关的一些二进制的转换工具。 由于开发的是基于u n i c o r e 架构的嵌入式l i n u x ,因此需要使用北京大学微电子中心提 供的针对u n i e o r e 架构的g c cf o ru n i c o r e 3 2 编译器,分别是u n i e o r e 1 i n u x - a s 、u n i c o r e - l i n u x - g e e 、u n i e o r e - l i n u x - g + + 、u n i e o r e l i n u x - l d 等。 在l i n u x 下安装g c cf o ru n i c o r e 3 2 交叉编译器,安装过程分几步进行: ( 假定源代 码在p o r t i n g ,s o u t c e 目录下,要安装到目录 m r t i n 加l l i l d _ c r o s s ) 1 获取相应的软件包,包括 二进制工具集b i n u t i l s - 2 1 0 1 - - u a i c o r e 3 2 t a r g z g c c :g c c - 2 9 5 3 - - u n i c o r e 3 2 t a r g z g l i b c :g l i b c - 2 1 3 - - u n i c o r e 3 2 t a r g z l i n u xk e r n e lh e a d e r s :k e r n e l - h e a d e r s u n i e o r e 3 2 t a r g z 拷贝到p o r t i n g s o u r c e 目录下并解压缩 c d p o r t i n g s o u r c e t a r z v x f b i n u t i l s - 2 1 0 1 - - u n i e o r e 3 2 t a r g z t a rz v x f g c c 一2 9 5 3 - - u n i c o r e 3 2 t a r g z t a r z v x f g f i b c - 2 1 3 - - u n i c o r e 3 2 t a r g z t a rz v x f k e m e l - h e a d e r s - u n i c o r e 3 2 t a r g z 2 b u i l d - - 进$ u m 具集,包括汇编器,链接器等 c d p o r t i n g m k d i rb u i l db i n u t i l s c db u i l db i n u t i l s p o r t i n g s o u r c e b i n u t i l s 一2 1 0 1 c o n f i g u r e - t a r g e t = - u n i c o r e 3 2 - 1 i n u x - p r e f i x = p o r t i n g b u i l d _ _ c r o s s m a k e m a k ei n s t a l l 其中- t a r g e t 指明目标系统为u n i e o r e 3 2 1 i n u x ,- p r e f i x 指明安装目录。 3 b u i l dg c cw i t h o u tg l i b c c d p o r t i n g m k d i rb u i l d _ g e e c d b u i l dg e e 印p o r t i n g s o u r c e i n c l u d e p o r t i n g b u i l d _ e r o s s u n i c o r e 3 2 - l i n u r d - r e x p o r tp a t h = p o r t i n g b u i l d _ e r o s s b i n :s p a t h p o n m g s o u r c c g c c - 2 9 5 3 c o n f i g u r e - t a r g e t = u n i c o r e 3 2 - 1 i n u x 8 第二章开发系统 - p r e f i x = p o r t i n g b u i l d _ c r o s s - d i s a b l e - t h r e a d s - e n a b l e l a n g u a g e s = c m a k e m a k ei n s t a l l 4 b u i l dg l i b c c d p o r t i n g m k d i rb u i l dg l i b c c db u i l d g l i b c p o r t i n g s o u r c e g l i b c - 2 1 3 c o n f i g u r eu n i c o r e 3 2 - l i n u x - b u i l d = i 3 8 6 - p c - l i n u x g n u - p r e f i x = p o r t i n g b u i l d _ c r o s s u n i c o r e 3 2 一l i n u x - e n a b l e o a d d - 0 1 1 s = l m u x t h r e a d sc r y p t m a k e m a k ei n s t a l l 完成以上步骤后,就将g c cf o r u n i c o r e 3 2 交叉编译器安装到t p o r t i n g b u i l d _ c r o s s b i n 目录下。 b i n u t i l s 是一组开发工具,包括连接器,汇编器和其他用于目标文件和档案的工具。以下列 出的这些的工具在内核镜象文件的编译与调试阶段大多数均需用到: a r 此工具用于产生、修改打包文件,以及从打包文件中提取文件。 n m 一此工具从给定的目标文件中列出符号。 o b j c o p y 一l 比工具拷贝并翻译一个目标文件到另一个目标文件。 o b j d u m p _ 此工具显示一个或多个目标文件中的信息。具体显示什么信息由参数给出。 r a n l m 一产生打包文件内容的索引。 s i z e 列出目标文件中每个s e c t i o n 的大小以及总共的大小。 s t r 矾g s - 列出文件中可打印的字符串。 s t r i p _ 剔除目标文件中的符号表。 a d d r 2 l i n e 将文件中的地址转化成文件名和行号。 g a s p - _ g n u 汇编器的预处理器。 r e a d e l f - 1 卖取e l f 文件的各种信息。 p r o t o i z e p r o t o i z e 程序是g n uc 中的一个任选部分。这个程序将函数原型增加至c 程序中从而转换这个程序为符合a n s ic 标准的程序。 u n p r o t o i z e 进行与p r o t o i z c 相反的转换,它从所找到的任何函数原型中去掉参数类 型部分。 2 3调试手段 内核开发过程中调试起着举足轻重的作用,但是,l i n u x 系统的开发者出于保证内核代 码正确性的考虑,不愿意在l i n u x 内核源代码中加a - - 个调试器 2 0 1 。尽管缺乏一种内置的 调试内核的有效方法,但是l i n u x 系统在内核发展的过程中也逐渐形成了一些监视内核代 码和错误跟踪的技术,比如k d b 、k g d b 等,这些都是需要针对相应的平台打补丁,由于 t m i c o r e 平台的特殊性,无补丁可用。因此在本课题中调试的手段主要是通过串口与y f a g 口输出调试消息。在调试启动部分的汇编文件时用汇编语言直接往串口或j t a g 口写调试消 息,当控制台初始化完成后可使用p r i n t k 函数。p r i n t k 是调试内核代码时最常用的一种技术, 在内核代码中的特定位置加入p r i n t k ( ) ,可以直接把所关心的信息打印到屏幕上,从而可以 观察程序的执行路径和所关心的变量、指针等信息。 9 东南大学硕士学位论文 2 3 1 串口调试 8 0 5 + 内置有u a r t ( 通用异步收发器) 一般也称为串口。u a r t 支持r s - 2 3 2 标准的非 归零的编码格式,也支持红外模式下的编码格式。u a r t 通过r s - 2 3 2 协议和外设间进行串 行通信。另外,通过外围电路将红外信号转变成电信号( 接收信息时) 或将电信号转变成红外信 号( 发送时) ,然后再和u a r t 进行串行通信,这样就可以支持低速红外通信。u a r t 收发字 符位数是可配置的,可以是5 - 8 位。在发送时,数据从数据总线上写入1 6 个字节深度的发 送f i f o ,然后再被送入移位寄存器转换成串行数据从t x d 引脚输出。在接收时,数据从 r x d 引脚串行地接收,先送入接收移位寄存器,然后再送入1 6 个字节深度的f i f o 。接收 f i f o 和发送f i f o 都具有可屏蔽的、可用软件配置触发级的中断。当f i f o 中的数据量达到 预先设定的触发级时,产生中断。u a r t 传输波特率取决于输入时钟和软件可配置的分频器。 可以配置停止位数目,奇偶校验。在接收时,可以检测帧错误、空闲状态、停止位、奇偶 校验错误和溢出错误。u a r t 模块具有红外串行通信单元,可以对串行红外信号进行编码、 解码。 将目标机上的串口与p c 机上的串口连接,在p c 上用超级终端连接c o i n 设备,如果串 口有数据就会直接打印到显示器上。在b o o t l o a d e r 启动环节会将串口进行初始化,将串口的 配置用参数形式传给内核。当进入到内核启动环节就不需要再初始化串口而可以直接使用。 程序中只要将数据写到串口t r a n s m i t t e r f i f o 对应的地址,数据就可以直接在串口显示出来。 2 3 2j t a g 调试 8 0 5 + 处理器片内调试器( o nc h i pd e b u g g e r ,以下均简称o c d ) 是支持对系统芯片的硬件 和软件调试的部件。它基于i e e es t d 1 1 4 9 1 1 9 9 0 标准测试访问接口和边界扫描结构,在处 理器核心内包含了用于高级调试特性的硬件扩展。调试扩展部件允许核心被以下情况中断: 给定的指令取出( b r e a k p o i n t ,指令断点) ; 数据访问( w a t c h p o i n t ,数据断点) ; 外部的调试请求; 软件断点指令( b k p t ) 。 当以上情况发生时,核心进入调试状态。这时可以检测核心的内部状态和系统的外部状 态。检测结束后,可恢
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某年度数据采集传输系统竞争策略分析报告
- 远程医疗平台感染防控年度工作计划
- 机电工程项目经理年度总结与计划调整
- 教育机构招生宣传片策划方案
- 破产清算审计工作流程的关键环节
- L市农村初中“双减”政策执行困境与治理策略-基于教师视角的研究
- 基于深度学习的多病种OCT医疗影像识别方法研究
- 2025-2030中国工程机械租赁行业市场发展现状及竞争格局与投资发展研究报告
- 中小学网络安全教育管理职责
- 航空业职业健康保障措施探讨
- 地下工程防水技术规范
- 《医院手术室净化施工方案》培训
- 【正版授权】 ISO/IEC 19790:2025 EN Information security,cybersecurity and privacy protection - Security requirements for cryptographic modules
- 国家安全教育大学生读本课件高教2024年8月版课件-第七章坚持以军事、科技、文化、社会安全为保障
- 整套课件-证券投资学(第二版)赵锡军
- 2025年《教师专业成长与专业发展》培训心得(3篇)
- 2025年重庆市环卫集团有限公司招聘笔试参考题库含答案解析
- 植物的逆境生理-课件
- TSG 07-2019电梯安装修理维护质量保证手册程序文件制度文件表单一整套
- 高等院校国际交流管理制度
- 《兔子坡》小学生阅读分享课课件
评论
0/150
提交评论