对于学习Android系统移植方法的探讨(一)----linux内核移植

来源:互联网 发布:大数据 普惠金融 论文 编辑:程序博客网 时间:2024/06/06 19:15

学了多半年的Android系统移植了,一开始最大的困难就是找不到一个正确的(或者弯路较少的)学习方法。买到的开发板基本上都是已经移植好的系统,其uboot、kernel和根文件系统都已经做的非常完美了,鼓捣了好长时间,还是不知道针对一款特定的开发板其移植工作该怎么开始。学了很多零零碎碎的东西,但是总是不能给人一种俯视的快感。即便到现在也还是在努力去探究一条适合自己的学习之路。下面是我自己制定的一个简答的计划,感觉比较有可操作性,当然这也是针对稍微有点嵌入式Linux基础的人来说。

1、目的:
移植TQ210的内核到smart210

2、要完成的驱动,按顺序如下所示:
串口打印信息、nand支持yaffs、I2C、电容屏、触摸屏、按键、网卡、I2S、音频、RTC、看门狗、摄像头、SDIO wifi、USB wifi、usb优盘、SD卡

3、主要学习过程
3.1 uboot
对于uboot先只关注它的启动机器码,其他内容暂时不考虑。

3.2 搞清楚linux内核启动过程,至少要明白内核如何对硬件进行的初始化,是如何运行到了板级文件,如mach-mini210.c

3.3 对于驱动程序的研究入口是 static struct platform_device *mini210_devices[] __initdata 板级设备初始化数组。
首先做这样一件事,可以先把其他所有驱动屏蔽掉,然后一个接一个的开启,然后记录下启动信息,配合make menuconfig命令和Kconfig、Makefile文件,分析每个驱动都用到了哪写源文件。分析驱动的实现流程,最好画出流程图。确定有哪些代码涉及到了硬件相关的操作。

3.4 参考一个正确的内核去修改要移植的内核。

比如mini210的linux内核是正确无误的内核,要修改的TQ210的内核就对照着mini210的内核来依次进行修改。修改顺序按照内核启动顺序来进行。


以上是Linux内核移植过程的学习方法,关于Android源代码系统定制和移植是后话,一点点来吧。以上过程也是我自己的一个学习过程,这里面若有不妥的地方欢迎大家指正。

0 0
原创粉丝点击