基于PXAxxx平台的Andriod(Linux kernel 2.6.29)内核移植到Meego(linux kernel 2.6.35)过程三
来源:互联网 发布:java科研管理系统源码 编辑:程序博客网 时间:2024/06/13 12:00
移植mach-mmp/下面的ttc_dkb.c 文件。
ttc_dkb.c 文件是整个平台init各种device drivers 入口。整个平台的device drivers 都是从这里开始init。
first, 看一下在mach-mmp目录树下的内容:
|-- aspenite.c
|-- avengers_lite.c
|-- clock.c---------------------------------(6)
|-- clock.h
|-- common.c
|-- common.h
|-- devices.c----------------------------(5)
|-- flint.c
|-- include--------------------------------(3,4,5,6,7,8)
|-- irq-mmp2.c
|-- irq-pxa168.c
|-- jasper.c
|-- Kconfig-------------------------(2)
|-- Makefile------------------------(1)
|-- Makefile.boot
|-- mmp2.c
|-- pxa168.c-------------------------(3)
|-- pxa910.c--------------------------(4)
|-- pxa910-squ.c
|-- resource
|-- tavorevb.c
|-- time.c-------------------------------(7)
|-- ttc_dkb.c---------------------------(8)
1,2 参考Android 平台对mach--mmp的Kconfig 和makefile的修改,来修改mach--mmp的kconfig 和Makefile。
下面我们看一下ttc_dkb.c 的2.6.35内核中初始化函数的内容。
MACHINE_START(TTC_DKB, "PXA910-based TTC_DKB Development Platform")
.phys_io = APB_PHYS_BASE,
.boot_params = 0x00000100,
.io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc,
.map_io = pxa_map_io,
.init_irq = pxa910_init_irq,
.timer = &pxa910_timer,
.init_machine = ttc_dkb_init,
MACHINE_END
map_io 的入口是pxa_map_io函数 在common.c 文件中init。
init_irq 指向的函数是 pxa910_init_irq,其定义在pxa910.c和.h中。这个文件需要修改。主要定义的CPU interrupt,GPIO, Address等内容。
time.c 先不要改动。
然后进行编译,中间会出一些小错误,编译成功后,flash到版子上以后,可以启动,并可以看见trace的输出。
这说明板子的ARCH架构的移植基本上完成了。
然后看一下ttc_dkb.c的init函数:ttc_dkb_init(void)
static void __init ttc_dkb_init(void)
{
printk(KERN_NOTICE "<ttc_dkb.c>ttc_dkb_init(void) init ->start/n");
mfp_config(ARRAY_AND_SIZE(ttc_dkb_pin_config));
/* on-chip devices */
pxa910_add_uart(1);
pxa910_add_uart(2);
pxa910_add_uart(3);
//你可以在这里按照一定的顺序添加驱动程序。
/* off-chip devices */
//platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices));
}
从这个函数开始初始化各种device drivers。
在ttc_dkb_init(void)中可以开始添加相关的设备驱动了。
我这里添加了pxa910_add_uart 2和3。 后面我们可以开始移植device driver了。
- 基于PXAxxx平台的Andriod(Linux kernel 2.6.29)内核移植到Meego(linux kernel 2.6.35)过程三
- 基于PXAxxx平台的Andriod(Linux kernel 2.6.29)内核移植到Meego(linux kernel 2.6.35)过程四--device driver 移植---内核初始化优化宏
- 基于PXAxxx平台的Andriod(Linux kernel 2.6.29)内核移植到Meego(linux kernel 2.6.35)过程一
- 基于PXAxxx平台的Andriod(Linux kernel 2.6.29)内核移植到Meego(linux kernel 2.6.35)过程二
- 移植Linux 2.6.30.4到mini2440(Kernel)
- Linux Kernel 2.6.5 内核编译过程
- 把linux kernel 2.4 上的driver 移植到 2.6 kernel
- AT91RM9200Linux移植笔记(三)-移植Linux kernel 2.6.17
- 移植 kernel linux-2.6.30.4
- Linux内核目录结构(2.6版本以上的kernel)
- arm linux kernel 从入口到start_kernel 的代码分析(2.6内核)
- 编译你自己的Linux内核(Kernel)
- 编译你自己的Linux内核(Kernel)
- 基于S3C2410平台的Linux 2.6.14内核+平台驱动的移植指南(最终版)
- 基于S3C2410平台的Linux 2.6.14内核+平台驱动的移植指南(最终版)
- 移植linux内核到s3c6410(kernel 打印:Uncompressing Linux ... done , booting the kernel.后无响应问题的解决。)
- FL2440 Linux kernel + yaffs2根文件移植过程(一)
- FL2440 Linux kernel + yaffs2根文件移植过程(二)
- 关于const 的小测试
- 关于LCD的视角
- 周报——网络资源教学平台设计之课程管理系统E-R图及数据表
- 如何根据需求设计测试用例
- 构建中小企业智能数据展现分析平台
- 基于PXAxxx平台的Andriod(Linux kernel 2.6.29)内核移植到Meego(linux kernel 2.6.35)过程三
- linux 实现通过记录登陆后的IP地址和某用户名所操作的历史记录
- arm-linux-gcc工具链下载
- Java Web开发中几种经典模式
- SD模块 各表的关系,总结
- c++builder中TDateTime与c中time_t的转换
- Flex中DataGrid绑定ComboBox ,自动显示行号,增加行,删除行,保存数据
- android平台中编写jni模块的方法(1)
- TestComplete