基于ARM11的Android的操作系统的移植
- 格式:doc
- 大小:32.50 KB
- 文档页数:5
ARM11系统板内核修改说明书程序版本:起草人:审核人:批准人:分发号:密级:机密©版权所有不得复制文档控制记录目录文档控制记录................................................................................................ I I 1.引言 . (1)2. 内核修改相关说明 (2)2.1修改字符设备驱动加载方式 (2)2.2卸载USB等一系列不需要的模块 (4)2.2修改4G版本内核的nandflash配置部分 (5)2.3移植SPI驱动模块,读写flash w25q64bvsfig (9)1.引言目的:本文档旨在对采集机系统板的内核修改做相关说明,基本操作和指导都进行图片和文字讲解,由于是在原厂内核的基础上做项目相关的功能扩展和修改,因此不会涉及太多的内核相关知识。
内核的相关修改操作都是基于搭建好交叉编译环境的基础之上,交叉编译环境的搭建,可以参见相关搭建文档,在此不再说明。
对象:系统板维护的研发人员。
2. 内核修改相关说明2.1修改字符设备驱动加载方式说明:修改内核中字符设备加载方式,使其能够在内核启动后,可以通过命令行动态加载,卸载字符设备驱动模块。
1、进入到内核目录中,如图2-1-1内核根目录:图2-1-1内核根目录2、命令行输入命令make menuconfig,会弹出内核配置的图形化界面,如图2-1-2内核配置图形界面:图2-1-2内核配置图形界面3、选中第三行,按enter键进入,如图2-3字符设备驱动加载选项:图2-1-3字符设备驱动加载选项请按照图2-1-3字符设备驱动加载选项所示,选中该配置的选项(*号代表选中对应项),按空格键进行选中取消,按上下键可以移动选项行数的位置。
4、配置好字符设备驱动加载选项后,通过Exit选项退出当前配置菜单,最后会提示是否保存当前配置信息,选中save保存退出即可,如图2-1-4配置信息保存。
基于ARM11的μC/OS-II操作系统内核移植实验的设计滕艳平;贾思禹;金梅;李丽丽【摘要】Based on the analysis of the kernel of embedded real‐timeμC/OS‐II operating system and aiming at the ARM11 Micro‐Processor , a migration scheme of μC/OS‐II is put forward , and its multi‐tasking synchronous demo is performed .The testing results by the RealView Development Suite(RVDS)Integrated Development Environment show that the migrated‐operating system can run steadily and the goals of the switch between many tasks are realized ,which meets the demands for real‐time quality and stability .%在分析嵌入式实时操作系统μC/OS‐II内核结构的基础上,针对ARM11微处理器,提出了μC/OS‐II移植的方案,并在所移植的操作系统上进行了多任务同步设计。
通过RVDS集成开发环境的测试结果表明,移植后的操作系统运行正常,实现了多个任务之间的切换,并满足系统对实时性、稳定性的需求。
【期刊名称】《实验技术与管理》【年(卷),期】2016(033)003【总页数】5页(P142-146)【关键词】操作系统;内核移植;ARM11;μC/OS-II;RVDS【作者】滕艳平;贾思禹;金梅;李丽丽【作者单位】齐齐哈尔大学计算机与控制工程学院,黑龙江齐齐哈尔 161006;齐齐哈尔大学计算机与控制工程学院,黑龙江齐齐哈尔 161006;齐齐哈尔大学计算机与控制工程学院,黑龙江齐齐哈尔 161006;齐齐哈尔大学计算机与控制工程学院,黑龙江齐齐哈尔 161006【正文语种】中文【中图分类】TP316.2ARM11系列微处理器是ARM公司近年推出的新一代RISC处理器,它具有ARM 新指令架构,提供高性能处理能力,使其在嵌入式系统开发中得到广泛的应用。
DOI:10.19551/ki.issn1672-9129.2021.01.077基于Cortex-A9架构的Android系统移植研究刘瑞光(衡水湖旅游服务中心㊀河北㊀053000)摘要:Android系统开放性优势凸显,推动了开发者涉足于Android系统移植和应用开发相关领域㊂本论文是基于对应标准Cortex-A9架构的MT6577处理器开发的Android系统移植,通过对同处理器的不同机型完成上百次的系统定向移植后,总结和归纳的部分要点㊂关键词:Android;系统移植;架构;内核中图分类号:TP391.41;TH878㊀㊀㊀文献标识码:A㊀㊀㊀文章编号:1672-9129(2021)01-0080-02㊀㊀Android系统显著的开放性优势为移动终端厂商带来了更为宽广和自由的开发环境,可以说开源的Android系统游走于众多的硬件平台之上,激发了更多的厂商对于软件资源的开发热情,丰富的应用带来了更为优质的用户体验㊂相比于过去的Symbian㊁Windows Mobile和现在的IOS,Android系统已经借助其开放性和包容性的优势占据了主流移动终端操作系统的半壁江山,从而带动了更多软件开发人才跻身于Android开发者阵营㊂本文是作者基于对应标准Cortex-A9架构的MT6577处理器开发的Android系统,针对定制版卡刷ROM开展的移植研究记录,为开发者提供部分技术参考㊂1㊀搭建Android编译环境方案一,搭建Android Kitchen,主要用于简易式定制化编译㊂Android Kitchen首先在宿主机选择性安装JDK(Ja-va TM平台标准版开发套件)并配置好Java环境,然后安装Cygwin㊂Cygwin是一个在Windows平台运行的类UNIX模拟环境,由Cygnus Solutions开发的多种自由软件的集合㊂将定制好的Android Kitchen拷贝到Cygwin制定目录下,完成最终环境搭建㊂方案二,依靠Ubuntu搭建Android SDK,主要用于深度编译㊂Ubuntu是一个以桌面应用为主的Linux操作系统,也是全球最有影响力的Linux开源系统之一㊂在主机上安装VMware虚拟主机和Ubuntu镜像,运行Ubuntu后,安装JDK 和Android SDK安卓模拟器㊂连接好移植目标终端,确保开启USB调试功能,在Ubuntu Shell下能够熟练运用Android SDK中最重要的工具adb(android debug bridge),保证移植顺利开展㊂2㊀Android系统架构简析Android安卓是一种基于Linux内核而开发的自由开放型操作系统,主要应用于移动设备,Android系统是基于Linux的一个应用层,安卓智能终端为其提供了Linux平台和运行环境㊂Android系统架构采用了分层模式主要分为:应用程序层(Applications)㊁应用框架层(Application Frame-work)㊁系统运行库层和开发者熟知的也是最重要的Linux 内核层㊂3㊀关于Bootloader是否需要移植的问题Bootloader广泛用于有操作系统的手持终端设备㊁智能家电及机顶盒等嵌入式设备上,它负责完成硬件初始化㊁操作系统引导和系统配制等,是整个系统运行的基础[1]㊂MT6577对应的Bootloader分为两部分,分别是preloader和u -boot㊂如果只是针对使用该芯片的同一终端设备的卡刷ROM定制,Bootloader移植不是必须步骤,卡刷脚本可以不对其进行二次烧写㊂4㊀Android内核移植Android内核移植是本次移植研究的核心内容,内核移植直接关系到系统移植的成败㊂Boot.img是Android的内核镜像文件,它包含kernel和ramdisk两部分㊂移植过程以ubuntu操作为例:Wget下载split-bootimg.pl解包boot.img:$split-bootimg.pl boot.img记录基址base为0x10000000,page_size偏移2048,以备重新打包使用㊂建立新的ramdisk文件夹:$mkdir ramdisk进入ramdisk文件夹:$cd ramdisk解包ramdisk.gz:$gzip-dc../boot.img-ramdisk.gz| cpio-i使用可视化编辑器对ramdisk包括的初始化系统核心文件进行编辑,主要包括init.factory.rc㊁init.rc㊁default.prop等文件,对比原包部分参数内容进行编辑修改㊂编辑完成后重新打包ramdisk目录:$mkbootfs./ram-disk|gzip>ramdisk.gz重新打包生成新的boot.img:$mkbootimg--cmdline' console=ttyXXXX androidboot.hardware=xxxx'--kernel kernel --ramdisk ramdisk.gz--base0x10000000--pagesize2048-o boot.img㊂解包工具有很多种,Windows系统下的bootimg.exe,An-droid Kitchen中的Boot image以及Ubuntu的split-bootimg均可完成㊂5㊀Android系统文件移植(1)移植应用层和框架层,分别对应移植系统的system/ app和system/framework,该两部分文件可直接替换到目标系统的对应文件目录㊂应用层是存放系统应用程序的区域,而框架层在Android系统中担当着重要角色,它提供了整个系统的运作机制㊂有些应用和framework的jar包是当初厂家特意定制加入的,所以对应的apk和odex文件是必须全部移植的㊂(2)移植配置文件,将移植系统中的system/etc目录下的firmware㊁mddb㊁和wifi对应配置文件替换到目标系统对应目录㊂system/etc目录存放是一些配置文件,和属性配置文件不一样㊂一般来说,一些脚本程序,例如大家熟知的GPS和APN配置文件在这个目录中㊂(3)移植库文件,将移植系统中的system/lib下的hw㊁modules和system/vendor/lib下的so库文件和ko驱动模块文件,全部或部分替换到目标系统对应目录㊂System/lib文件夹主要保存的是Android系统的动态链接库,这里面有一些是系统硬件相关的接口,以及一些系统层应用需要调用的库文件,Android定义的这套硬件接口主要是为了适配不同厂家的不同硬件㊂(4)编辑修改build.prop初始化文件,这个文件内包含了系统启动初始的一些参数属性㊁功能开关等,通过调整相关参数可以调校系统性能偏重点,还可以开启附加功能,诸如系统版本自定义㊁USB模式㊁虚拟键盘等等㊂6㊀烧写系统镜像(1)编辑META-INF\com\google\android\updater-script,提前确认各分区对应的ext编号,根据需要选择是否对system和data分区进行format格式化操作㊂(2)做好symlink链接库脚本移植,参照原厂脚本通过symlink创建所有的busybox命令㊂(3)做好set_perm权限,通过set_perm命令设置好文件和目录的访问权限㊂(4)烧写单独的镜像文件可以通过ubuntu系统与终端联机后,通过adb指令adb fastboot flash XXX.img完成㊂卡刷烧写完整的系统包,则可以通过进入终端recovery模式,㊃08㊃DOI:10.19551/ki.issn1672-9129.2021.01.078PLC技术在电气工程自动化控制中的应用探究盛永惠(特润丝(湖州)润滑材料科技有限公司㊀浙江㊀湖州㊀313000)摘要:当前,我国大力推进基础设施建设,电气工程广泛应用于诸多社会领域,其间各级政府围绕电气工程建设出台了各种支持政策,有力推动了电气工程自动化控制技术的发展与应用㊂当前,PLC技术是电气工程自动化控制的核心技术,将PLC技术融入电气自动化控制中,可以有效提升电气工程行业的生产力,提高电气工程企业的经济效益㊂新时代,PLC技术在电气工程自动化控制中扮演着越来越重要的角色,实际应用范围进一步拓宽,因此有必要分析PLC技术在电气工程自动化控制中的应用㊂关键词:PLC技术;电气工程;自动化控制中图分类号:TM76;TP273㊀㊀㊀文献标识码:A㊀㊀㊀文章编号:1672-9129(2021)01-0081-01㊀㊀引言:近年来,随着科学技术的不断发展,人们在各类技术领域获得了新的突破㊂信息化㊁智能化成为电气工程发展的方向,PLC技术在大规模运用在集成电路的发展状况下,极大地促进了电气工程自动化的发展㊂现如今的电气工程自动化控制体系中,PLC技术是常用的处理器,相较于传统的DCS系统,PLC技术的自动化程度更高,可靠性更强㊂PLC技术作为一种可编程控制器技术,能够全面弥补自动化控制体系中存在的缺陷,提升电气工程控制的质量和水平,维护电气工程的安全,有效促进电气行业的发展㊂1㊀PLC技术概述PLC技术就是可编程逻辑控制器技术,它通过数字化技术以及可编程存储器电子系统来对各种工程内部结构进行各种操作和指令,当用户收到这些指令时,就可以通过模拟传输功能来对所有机器进行有效控制㊂因为PLC的综合性能较强,所以它常常被应用于工业领域之中,并且所有技术以及运行原理都进行了相对应的设计,以此来确保PLC技术可以与工业系统进行完美融合,进而保证PLC技术在工业领域之中发挥最大效用㊂2㊀PLC技术在电气工程自动化控制中的应用2.1顺序控制㊂对于顺序控制系统而言,可以说是整个电子工程自动化plc技术的核心内容,许多的技术性人员则需要在发展当中将PLC技术予以使用进而促使电子自动化依据相应的顺序控制来进行运转㊂在现实发展当中,PLC控制系统被当做是一种顺序控制器㊂比如:在火力发电厂当中,通过PLC技术能够对火炉之中的残渣和灰尘予以清理,在之后的发电运转当中,还能够随之运用PLC技术代替原有的顺序控制器对发电残渣进行清理,这样就能够非常明确而且及时㊁有效的做好清理工作㊂2.2开关量控制㊂目前,PLC技术也广泛应用于电气工程及其开关量的自动控制中,在实际控制操作过程中,PLC 技术以可编程存储器的形式控制继电器动作,以满足用户的实际需要㊂一般来说,在电气工程和自动控制系统中,电流继电器的开关量都是采用PLC技术来控制的,如果仍采用之前的PLC技术,则很难满足现阶段的要求,而且运行情况也不理想,设备使用时间会越来越长㊂如果不能及时进行调整和优化,将严重影响电力工程项目的开发和运营㊂如果采用先进的人工操作直接干预和控制各种操作,将造成资源的大量浪费,不利于电气工程建设的长远发展㊂只有从根本上不断优化系统功能,才能满足将来在运行中系统功能的需求㊂2.3模拟控制模式㊂目前列车车厢的温湿度调节都是通过空调设施进行恒定值调节,但是若车厢载客过大时车厢温湿度可能升高,引起旅客身体不适,若列车某节车厢载客量不大或无人时,温湿度仍持续保持不变,这就在某种程度上耗费了机车的能源㊂同时车厢载客量过大时,会造成车厢空气浑浊,难以满足旅客的要求㊂当列车行驶通过隧道或者昼夜交替时段,车厢的照明系统不能及时地发生变化,而目前列车车厢都是趋于整节列车调节,还不能满足对某一节车厢进行单独控制㊂为了使本系统能够随意安装在车厢乘务室内而不占据空间,以及考虑到成本与抗干扰性和运行可靠,因此本系统采用S7-200PLC主控制器,上位机采用体积较小㊁易操作㊁可视化程度高的触摸屏,以及其他附属器件,该系统的功能结构由三部分组成:车厢环境舒适度㊁车厢环境安全度和乘客的便利度㊂以每一节车厢为一个基础单元,那么该基础单元的逻辑控制如下,该系统的器件主要有:可编程控制器S7-200PLC,CPU选择为226,具有两个RS-485接口,供电电压为DC24V,24路DC24V输入,16路晶体管输出;西门子模拟量输入模块,具有4路模拟量输入,其功耗2W,输入电压DC5V,注意输入电流不大于20MA,输入电压为DC24V,输入电流不大于60MA,威纶系列触摸屏TK6071iP,具有4线模拟电阻式,内存为128MB,COM连接口COM1(RS232,2W),COM2(RS485,4W),输入电压为24V;以及空气温湿度传感器,光照传感器,烟雾传感器,报警灯,照明等,风扇,轻触式开关,空气开关㊂结语:当前,我国社会经济稳步发展,PLC技术应用越来越广泛㊂PLC技术具有非常强的通用性和灵活性,具有良好的可靠性与安全性,具有很好的抗冲击和抗电磁能力,对环境的要求不高,可以满足不同环境的应用需要㊂企业将PLC 技术应用于电气自动化控制中,极大地提高了生产作业效率,增加了自身的经济效益㊂未来,人们要充分认识到PLC 技术应用的重要性,加快PLC技术与电气自动化控制的结合,使得PLC技术更好地应用在电气工程自动化控制中㊂参考文献:[1]张同君.电气及仪表自动化控制系统研究[J].通信电源技术,2019(6):105-106.[2]陈建明.电气控制与PLC应用[M].北京:电子工业出版社,2014.将我们打包好的完整的系统ZIP包拷贝到终端存储器中,然后update刷入㊂7㊀移植测试和问题修复烧写完成后,并不代表移植成功,可能会存在无法正常进入系统,或系统部分功能不可用的情况㊂如果无法进入系统,可检查内核移植问题,重新编译boot.img;如果能够进入系统,但功能异常,例如wifi㊁gps㊁相机㊁蓝牙和电子罗盘等不能工作,可检查内核ramdisk下的init.rc㊁系统库文件以及刷机脚本中的symlink链接和set_perm权限是否移植到位㊂结语:Android系统移植是一个较繁杂的过程,既需要搭建编译环境,安装编译和调试工具,又要求开发者深入了解系统架构,熟悉系统运行基本原理和重要文件参数配置㊂与此同时,作为目前智能终端主流操作系统的Android版本在不断升级中,相信未来Android系统移植技术会有进一步的提升㊂参考文献:[1]韩少云,奚海蛟,谌利编著.ARM嵌入式系统移植实战开发.北京航空航天大学出版社.2012.05㊃18㊃。
第节绪沦内核精小、效率高,并且具有,:百度的模块化和扩一展性:具备文件和日录针理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(A川),开发应用程序简单;嵌入式应用软件丰富。
第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。
目前大多数嵌入式系统还孤立于Internet之外,但随着工nternet的发展以及工nternet技术与信息、家电、工业控制技术等结合日益密切,嵌入式设备与InteI'net的结合将代表着嵌入式技术的真正未来。
妇.2嵌入式操作系统的主要特点随着嵌入式系统的不断发展,可以看到嵌入式操作系统在嵌入式系统中的作用日显重要,它可以为嵌入式系统开发人员提供一个基本的软件开发和运行的支撑平台,从而大大减少了复杂嵌入式系统的开发难度和开发周期,增强了系统的稳定性,降低开发和维护成本。
本论文的工作也是针对特定的嵌入式通用操作系统一嵌入式L1nux展开的,故我们首先对嵌入式操作系统作进一步的阐述。
嵌入式操作系统并不是简单嵌入的操作系统,它与通常意义上的操作系统有一定的区别。
嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、调度工作,控制协调并发活动,它必须体现所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。
根据各文献的描述,嵌入式操作系统具有如下一些特征: 1.小巧。
一般嵌入式系统所能够提供的资源有限,所以嵌入式操作系统必须做到小巧以满足嵌入式系统硬件的限制。
2.实时性。
据统计,有许多嵌入式系统工作在实时性要求很高的环境中,这就要求嵌入式操作系统必须将实时性作为一个重要的指标来考虑。
在信息时代, 人们必须在有效的时间内对收到的信息进行处理,从而为进一步的决策分析争取时间如GSI客户端的信息处理。
所以,嵌入式操作系统必须体现一定的实时性。
3.可定制性。
由于嵌入式系统需要根据应用的要求进定制,所以嵌入式操作系统也必须能够根据应用的要求进行定制,去掉多余的部分,或者简化相应的模块。
基于ARM平台的Lniux系统移植此文档为毕业设计,word格式下载后可随意编辑修改2017年9月修订目录摘要 (I)Abstract (II)前言 (1)第一章嵌入式技术概况 (2)1.1背景介绍 (2)1.2研究意义 (3)1.3嵌入式系统现状及发展趋势 (4)第二章系统需求分析 (7)2.1 开发平台介绍 (7)2.2 ARM微处理器简介 (7)2.3 UP-TECH硬件平台 (7)2.3.1 硬件介绍 (7)2.3.2 S3C2410 ARM MPU (8)第三章嵌入式linux 移植的实现 (9)3.1 移植环境搭建 (9)3.1.1 Tftp服务搭建 (10)3.2 bootloader概念 (11)3.2.1 Bootloader的安装媒介 (12)3.2.2 Bootloader的工作模式 (12)3.3 u-boot 简介 (13)3.3.1 u-boot目录结构 (13)3.3.2 u-boot 移植 (14)3.3.3 u-boot支持dm9000网卡 (16)3.3.4 编译u-boot (18)3.4 内核概念 (18)3.4.1 Linux内核源代码目录结构 (19)3.4.2 内核移植 (19)第四章根文件移植 (23)4.1 Linux文件系统简介 (23)4.2 Linux根文件系统介绍 (23)4.3 Busybox生成工具集 (24)4.4 yaffs文件系统简介 (24)4.5 根文件系统移植 (24)第五章设备驱动 (30)5.1 设备驱动的概念 (30)5.2 网络驱动程序移植 (31)5.2.1 DM9000 网卡驱动移植 (31)5.2.2 LCD 设备驱动移植 (34)结论 (36)参考文献 (38)附录 (40)附录1 (40)附录2 (46)致谢 (51)总结与体会 (52)基于ARM平台的Linux系统移植摘要随着计算机技术和通讯技术的迅速发展以及Internet的不断扩展,嵌入式系统得到了越来越广泛的应用。
2018年 / 第11期 物联网技术智能处理与应用Intelligent Processing and Application85基于ARM9平台上的嵌入式Linux系统移植刘 迪,周 强(安徽理工大学,安徽 淮南 232001)摘 要:随着嵌入式技术的广泛应用,ARM9平台上的嵌入式Linux 操作系统成为一个焦点。
在诸多嵌入式操作系统中,Linux 凭借其低成本开发,可应用于多种硬件平台,可定制内核,性能优异,良好的网络支持等优势成为嵌入式系统的首选。
针对当前复杂的嵌入式产品,以Linux 移植到嵌入式平台的过程为对象,内容包括Boot Loader 叙述,内核和根文件系统定制等。
关键词:ARM9;嵌入式Linux ;操作系统;移植中图分类号:TP274 文献标识码:A 文章编号:2095-1302(2018)11-0085-02————————————————收稿日期:2018-07-02 修回日期:2018-08-01DOI :10.16667/j.issn.2095-1302.2018.11.0270 引 言嵌入式系统是传感器、微电子、计算机和半导体等先进技术相结合的产物。
嵌入式系统适合对功耗、成本、功能、可靠性等严格要求的专用计算机系统[1-2]。
随着嵌入式系统的迅速发展,其应用领域越来越广范。
嵌入式系统中的操作系统选择Linux 。
Linux 是一种具有开发成本低,可应用于多种硬件平台,可定制的内核,性能优异,良好的网络支持等优势的系统[3]。
Linux 具有的诸多优势,注定它将在嵌入式操作系统的应用中,给人们带来意想不到的惊喜,使生活越来越便捷。
1 Boot Loader 引导程序及移植系统加电后运行的第一段程序是Boot Loader 。
通常由BIOS 和位于MBR 的操作系统Boot Loader 组成,系统的加载启动任务交由Boot Loader 完成,这段小程序,可以初始化必要的硬件设备,把内核需要的信息创建出来,并且这些有用的信息经相关机制可传递给内核,将软件和硬件系统的环境带到合适的状态。
ARM平台 Android 移植与驱动核心开发Android嵌入式智能操作系统是基于Linux内核和驱动的,对于 HTC、华为等公司开发Android操作系统时,需要专门将Android移植到特定硬件平台下,同时将必要的驱动进行编写及开发。
本课程旨在让学员成为Android的核心层开发者,让学员在这种嵌入式设备厂商中谋得核心开发人员的职位。
◆1. Android系统体系及移植相关工具1.1 Android操作系统体系结构介绍Android Linux内核移植介绍文件系统, toolbox等移植存储驱动移植Bootloader相应方案与移植Android虚拟器Dalvik移植介绍1.2 ARM处理器介绍ARMv5TJSARM中断处理ARM体系结构与ARM处理器的体系结构IP核、芯片与开发板ARM处理器结构处理器模式. 寄存器. 流水线结构C语言内嵌汇编格式与编程实例1.3 ARM指令系统. 算术逻辑指令. 指令对状态寄存器的影响. 比较指令. 分支指令. 移位. 指令位图. 识别机器指令1.4内存访问与内存控制. 数据总线与地址总线的使用与实例. STR/LDR1.5 ARM过程调用标准. LDM/STM. 反汇编. APCS. C语言函数与汇编的互相调用【案例】使用Android Linux patch进行Linux内核的构建2. Android Linux内核移植与核心开发2.1 ARM处理器的Android系统构建2.2 输入输出设备驱动移植2.3 存储设备nand flash,MMC/SD卡驱动移植2.4 Framebuffer移植2.5 Touchscreen移植2.6 Open Binder IPC移植【案例】2.7 在ARM处理器上移植Android试验2.8 编写Nand flash驱动2.9 移植Framebuffer驱动2.10 硬件相关部分(键盘、触摸屏、LCD等)3. Android相关环境库、以及Bionic系统移植3.1 libc移植3.2 libm移植3.3 libdl移植3.4 libm移植3.5 busybox, toolbox移植【案例】1. 移植glibc2. 移植busybox和toolbox4. Android Dalvik移植一4.1 JNI Call Bridge相关原理4.2 dx, dalvitvm原理和使用4.3 Dalvik指令格式4.4 Dalvik执行格式dex4.5 Java字节码格式5. Android Dalvik移植二5.1 Dalvik Library原理5.2 dalvit libcore核心库移植5.3 dalvit/vm/native移植5.4 Dalvik Interpreter原理5.5 Dalvik Mterp6. ARM AT&T汇编. AT&T汇编语法详解. gas工具的使用. label标签的作用. 数据与代码的分布7. 链接脚本ld-script. 段地址的确定. 编写ld-script. ELF格式与libc函数库的关系8. 时序电路基础. 电平信号. 电路图分析. 时序图分析. datasheet查看. OMAP3530的外围器件结构. GPIO操作9. AMBA总线标准. AMBA总线标准. FCLK/HCLK/PCKL频率分配与设置. Watchdog计时操作. UART操作. ARM中断体系. 异常向量表. ARM模式切换. ARM中断控制器. 软中断. Linux系统调用的实现10. Nand Flash控制器. Flash原理. Nand控制器原理及时序分板. OMAP3530 NAND Flash时序分析11. 内存控制器. OMAP3530物理地址分布. SDRAM原理与时序. 内存控制器的物理连接. 地址对齐. SRAM访问12. 内存管理单元. MMU的原理. ARM协处理器指令. section模式. small page模式. I & D TLBs. I & D Cache. 哈佛结构的原理与实现13. DMA 直接内存访问的机制与使用. DMA的状态机. DMA的控制14. 触摸屏接口与ADC接口与实例. ADC原理. 触摸屏接口与控制15. LCD控制器. 图形显示原理. LCD控制器. LCD时序LCD驱动相关的框架与体系16. I2S音频总线. 音频硬件原理. I2S时序. OMAP3530上I2S的操作音频设备的裸驱动讨论17. DM9000网卡控制. 逻辑链路层与MAC层. DM9000原理与时序分析后续网卡裸驱动讨论与体系结构18. TCP/IP协议栈移植,与网络体系结构. LwIP TCP/IP协议栈简介. LwIP配置与编译. tftp配置与编译19. Bootloader原理与移植. u-boot的配置、编译. u-boot启动过程分析. ARM-Linux的启动要求. ARM-Linux kernel的ld-sript分析. u-boot到ARM-Linux的跳转代码分析. 使用mkimage制作启动镜像文件20. ARM-Linux原理与移植. ARM-Linux的配置、编译. ARM-Linux启动代码分析. ARM-Linux 地址映射的关系;. Busybox的配置、编译。
基于ARM11的Android的操作系统的移植[摘要] Android是一个专为移动设备设计的软件综合平台,凭借良好的可移植性、应用程序的硬件平台无关性及其开放性,迅速成为主流的手机平台之一。
本文重点研究了基于Linux平台的开源操作系统Android移植到ARM11的过程。
[关键词] Android 移植ARM111、引言目前,随着移动通信技术的发展,移动终端正在向多媒体化和网络化的方向发展,手机操作系统已经成为嵌入式系统发展的一个重要方向。
Google与开放手机联盟联合开发的一个专为移动设备设计的软件开放平台—Android。
其凭借很强的开放性、可移植性和丰富的应用程序极大的满足了用户的需要以及技术的发展。
本课题以ARM11系列的S3C6400开发板为系统移植目标平台,重点分析了Android的Linux内核的移植过程。
2、Android操作系统简介Android 是Google于2007 年11月宣布的基于Linux平台开源手机操作系统名称,号称是首个为移动终端打造的真正开放和完整的移动软件。
Google 重新设计Java虚拟机和系统,使得Android的Java应用更接近于底层系统效率更高;另外使用虚拟机技术使得Android的应用在被监控的情况下运行,安全性更高。
Android是一个对第三方软件完全开放的平台。
其平台采用了整合的策略思想,包括底层Linux操作系统、中间层的中间件和上层的Java应用程序。
操作系统的体系结构从上到下分为5个部分,分别是:应用程序、应用程序框架、程序库、Android运行环境、Linux核心层。
Linux内核层用来提供系统的底层服务,位于硬件和其它软件层之间,采用YAFFS2文件系统。
Android运行库包含一组核心库和Dalvik虚拟机,Android提供丰富的数据库支持且大部分为开源代码,如采用嵌入式数据库SQLite。
应用框架层为Android 开发人员提供了访问框架应用程序接口的全部权限,采用结构化设计简化了组件之间的重用。
在应用程序层,Android本身附带了一些核心的应用程序,大大简化了Android应用程序的开发。
3、基于ARM11的Android的操作系统的移植本课题采用ARM11系列的S3C6400为移植目标,主要过程:安装Linux环境安装编译工具下载Linux kernel 安装Android SDK 获得root file system 修改Linux kernel源码配置Linux kernel 修改root file system 编译Linux kernel 下载kernel Image1.安装Linux环境安装Ubuntu Linux系统,从网站上下载操作系统安装光盘映像,地址:/ubuntu/releases/8.04/,下载ubuntu-8.04.2-desktop-i386.iso,刻录成光盘安装,安装可以在windows系统下进行,选取有15G 空间的硬盘安装,输入用户密码开始安装。
这一步结束退出光盘重启进入Ubuntu系统,完成余下系统安装。
Linux安装完成,进入Ubuntu系统,确保电脑连接Internet,安装一些必要软件。
打开终端输入命令框,进行下面的操作:$ sudo apt-get install ssh$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-devbuild-essential zip curl $ sudo apt-get install valgrind $ sudo apt-get install sun-java6-jdk $ sudo apt-get install libncurses5-dev 所有软件系统会自动从网络下载安装,完成后可以开始Android的移植。
2.安装编译工具下载:$ wget/public/gnu_toolchain/arm-none-linux-gnueabi/arm -2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2安装:$ tar -xjvf arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz23.下载Linux kernel从下面地址获得:/p/android/downloads/list?can=1&q=&colspec=Filename +Summary+Uploaded+Size+DownloadCount Kernel : linux-2.6.23-android-m5-rc14.tar.gz解压文件:$ tar -xf linux-2.6.23-android-m5-rc14.tar.gz4.安装Android SDK从网上下载linux版本的Android SDK,如下:/android/android-sdk_m5-rc15_linux-x86.zip下载后解压,获得android-sdk_m5-rc15_linux-x86 文件5.获得root file system⑴下载busybox工具从下面地址http://benno.id.au/blog/2007/11/14/android-busybox(linux环境中下载)⑵运行emulator 获取root file system$ cd / android-sdk_m5-rc15_linux-x86/tools$ ./emulator& 等待emulator启动,看到出现Android系统画面,进入菜单ALL/Dev Tools/Development Settings下,将Wait for debugger,Show running processes,Show screen updates这三项打勾,回到命令输入终端。
通过busybox 工具获得了emulator 的文件并打包,再建立root文件目录,最后Android root 文件系统的initial_ram_disk就做好了。
6.修改Linux kernel 源码下载的kernel文件是不支持smdk6400开发板的,必须加入smdk6400的配置文件到kernel中,同时修改Kconfig和Makefile文件。
修改如下:1>选择/arch/arm/mach-s3c2410/Makefile.boot 改为下面内容,zreladdr-$(CONFIG_PLAT_S3C24XX) := 0x30008000params_phys-$(CONFIG_PLAT_S3C24XX) := 0x30000100zreladdr-$(CONFIG_PLAT_S3C64XX) := 0x50008000params_phys-$(CONFIG_PLAT_S3C64XX) := 0x500001002>从成熟的smdk6400平台文件中拷贝下面文件到kernel目录/arch/arm/mach-s3c6400 /drivers/serial/s3c6400.c /drivers/input/touchscreen/s3c-ts.c/drivers/usb/gadget3>拷贝/drivers/android/ashmem.c 文件到相应目录下从另外的android kernel (The Android source code for 2.6.23 不包含此文件)4>修改相应的Kconfig和Makefile文件,使最终能编译到加载的smdk6400文件。
7.配置Linux kernel修改kernel后进行配置,用到第2步的编译工具$ cd$ make CROSS_COMPILE=/bin/arm-none-linux-gnueabi- ARCH=armmenuconfig这时进入kernel配置画面,注意配置Initramfs source file选项指定到initial_ram_disk文件。
8.修改root file system配置Touchscreen使之能正常工作,initial_ram_disk文件下修改/etc/init.rc,加入下面内容TSLIB_CONSOLEDEVICE none TSLIB_FBDEVICE /dev/graphics/fb0TSLIB_TSDEVICE /dev/input/ts0 TSLIB_CALIBFILE /etc/pointercalTSLIB_CONFFILE /etc/ts.conf TSLIB_PLUGINDIR /lib/ts9. 编译Linux kernel$ make CROSS_COMPILE=/bin/arm-none-linux-gnueabi- ARCH=armzImage 编译成功,在arch/arm/boot下面是生成的zImage文件。
10.下载kernel image进入Windows系统,下载过程在Windows系统中完成。
①打开:程序\附件\通讯\超级终端,配置COM口,115200,8N1②连接smdk6400开发板和电脑通过串口线,打开开发板电源,可以在超级终端中看到输出信息,bootloader启动,按空格键进入命令输入状态。
③板子上连接USB线到电脑,安装USB驱动程序④运行dnw.exe程序,配置Configuration/Options,地址0x57e00000,确定⑤在超级终端中输入相应命令,开始下载$ run bootup (下载bootloader) $ run kernelup (下载kernel Image)$ run rootup (下载root file system)⑥这里我们输入$ run kernelup等待dnw发送文件,dnw 显示[COM1,115200bps][USB:OK][ADDR:0x57e00000]说明连接成功,选择USB Port>Transmit,选取编译成功的zImage文件,开始下载。
下载完成,重启开发板,等待,LCD上出现一些Android字符,一段时间白屏,出现一个左右滚动的红色滚动条,进入主界面,Android移植成功。
4、结束语本文在简单介绍Android操作系统的基础上,详细分析了Android移植到S3C6400开发板的步骤。
作为一个开源的、可移植性良好的操作系统,Android 的发展会越来越好。
参考文献[1]叶炳发. Android操作系统移植及关键技术研究. [硕士学位论文]. 暨南大学,2010.[2]郭秋平. 基于ARM系统的Linux平台移植研究. [硕士学位论文]. 杭州:浙江大学,2006.[3]郭宏志. Android应用开发详解[M]. 电子工业出版社,2010.6.[4]姚星星,刘卫国. Android的架构与应用开发研究[D]. 长沙:中南大学,2008.[5]S3C6400/6410移植Android内核ANDROID开发网, .。