- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统项目报告嵌入式系统项目报告
嵌入式系统项目报告
项目名称:
1.项目开发目的
本次项目开发的目的如下:
基于DM3730处理器研究Android系统的启动过程及其主要流程;Android系统的启动流程移植Android系统启动过程中的和动画;修改Android系统的指定桌面,让系统启动直接跳入自己的应用程序。
2.项目开发内容
在Ubuntu下载Android专用源码,完成Android系统的开发环境的搭建;
在EVM37x开发板上搭建Android系统的开发环境;
Android系统的init进程和init.rc文件解析;
Android系统启动的动画和Logo的修改;Android系统桌面源码的修改3.项目开发软硬件设备
(1)硬件平台:DM3730,
(2)操作系统
(3)PC端的开发平台(4)开发所需的IDE
4.项目开发流程
4.1 项目开发前期准备4.1.1 Android源码下载和编译
本项目是在Ubuntu宿主机上完成Android源码的下载和编译。在此之前需要完成以下工作,主要包括各种开发所需的插件,编译所需的基础库以及开发调试的minicom终端等
下载Android源码的过程和命令:
Android源码的编译:
x-loader编译:
u-boot编译Linux Kernel编译:
Android文件系统编译
整个系统编译过程约3个小时左右,占用空间达12G因此对PC机的要求较高。Android文件系统
到此为止,整个Android系统的各个部分都编译和制作完成。
4.1.2 EVM板硬件环境的搭建
这里说的硬件开发环境的搭建,主要是指将上述编译好的Android系统所需的xloader、u-boot、Linux kernel和文件系统镜像通过tftp协议下载到Linux的NandFlash上去。
使用如下命令进行镜像文件的烧录:
通过以上主要内容,顺利完成项目开发所需的软硬件开发环境的搭建,为后续项目的顺利进行打下了良好的基础。
4.2 Android启动init进程和init.rc文件的解析
Android中的内核启动后,kernel会启动第一个用户级别的进程:init,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级别的进程,完成系统的引导。init始终是第一个进程,位于/sbin/init下面。而init.rc是init进程启动读取的第一个文件,该文件时一个配置Android系统所需要启动的服务和相关Android应用程序最初始化的配置。
因为它与Android启动的界面有直接的联系,所以为了项目的顺利进行,有必要先对其进行理解和熟悉。
分析init进程需要结合init.rc进行,在这里主要通过分析部分代码,做合理的解释。Init进程的源代码位于Android源码的system/core/init/init.c下面,由于代码过于庞大这里不在。
1. uevent进程
if (!strcmp(basename(argv[0]), ueventd))return ueventd_main(argc, argv);
2.init.rc的解析
INFO(reading config file\n);init_parse_config_file(/init.rc);
init.rc是一个配置文件,内部有许多的语言规则,所有语言会在init_parse_config_file中进行解析。调用流程如下init_parse_config_file—read_file—parse_config.
parse_config
通过对这个文件的解析,会启动Android的应用程序,使得Android进入Java的世界。
4.3 Android启动Logo和动画移植
在这里主要对Android系统的3个画面进行移植,bootanimation。
4.3.1 Android启动第一个Logo图标移植
Android系统是基于Linux内核设计而成的,Linux下使用帧缓冲(Framebuffer)的概念来表示一个显示接口,通俗理解就表示一块LCD。帧缓冲区的相关驱动在内核启动时调用fbmem_init,在该函数中主要完成使用register_chrdev来注册了一个名称为fb的字符设备,最后调用函数class_create在/sys/class目录下创建了一个graphics目录等。同样的驱动加载中会调用硬件平台相关LCD的驱动初始化函数omapfb_init。
这个函数会针对对个fb,完成相关节点的创建在/dev/graphics/fb0,fb1...等
您可能关注的文档
- 岳阳旅游景点大全.doc
- 岳阳楼记同步指导.doc
- 岳阳楼记练习及答案.doc
- 岳阳楼记经典练习题附答案.doc
- 岳阳王家河大桥.doc
- 岳飞后裔考略.doc
- 岳麓三样题命题.doc
- 岳麓书院解说词.doc
- 岳麓版七下历史复习提纲.doc
- 岳麓版历史总复习提纲.doc
- 原电池电动势的测定实验报告.pdf
- 与业主、设计、总包、监理和他承包人的配合措施.pdf
- 公司管理流程.pptx
- 2024_2025学年新教材高中地理第1章地球的运动素养综合训练新人教版选择性必修1.doc
- 2024_2025学年新教材高中地理第3章大气的运动第1节常见天气系统第1课时锋与天气分层作业新人教版选择性必修1.doc
- 2024_2025学年新教材高中地理第1章地球的运动第2节地球运动的地理意义第4课时正午太阳高度的变化四季更替和五带划分分层作业课件新人教版选择性必修1.pptx
- 2024_2025学年新教材高中地理第2章地表形态的塑造第2节构造地貌的形成第1课时地质构造与地貌课件新人教版选择性必修1.pptx
- 2024_2025学年新教材高中地理第1章地球的运动问题研究人类是否需要人造月亮课件新人教版选择性必修1.pptx
- 五片小雪花课件.pdf
- 2024_2025学年新教材高中地理第3章大气的运动第2节气压带和风带第1课时气压带和风带的形成分层作业课件新人教版选择性必修1.pptx
文档评论(0)