移植uclinux到lpc220实例
一、选择开发环境
1、选择编译器。
在uClinux移植中使用的编译器为GCC。因为uClinux中使用了很多GCC特有的语法,所以在编译器上只能选择GCC。
2、选择调试器。
在内核移植工作中,使用的调试器为模拟器SkyEye。
二、移植内核
1、添加体系架构和机型相关的代码
A、添加机型在include/asm-armnommu/mach-types.h中添加LPC开发板体系结构号。
B、添加描述机型的数据结构。添加文件arch/armnommu/mach-lpc/arch.c
C、添加LPC2200的启动代码。
在linux-2.4.x/arch/kernel/head-armv.S中添加启动代码。读出前面添加的处理器序号和机型序号。
2、添加中断系统
A、LPC2200的中断系统简介。32个中断源。分为3类:快速中断、向量化的中断和非向量化的中断。
B、内核中中断系统的实现代码。
C、添加中断初始化的代码。
添加include/asm-armnommu/arch-lpc/irq.h
D、添加中断的底层函数。
添加arch/armnommu/mach-lpc/irq.c
E、添加定义中断号的头文件。
添加include/asm-armnommu/arch-lpc/irqs.h
F、实现get_irqnr_and_base宏。
在arch/armnommu/kernel/entry-armv.s第一部分适当位置添加。
G、添加异常处理函数的位置。
在include/asm-armnommu/arch-lpc/hardware.h定义RAM_BASE变量。
3、增加其它代码
A、添加include/asm-armnommu/arch-lpc/dma.h
B、添加include/asm-armnommu/arch-lpc/memory.h
C、添加include/asm-armnommu/arch-lpc/processor.h
D、添加include/asm-armnommu/arch-lpc/hardware.h
4、修改Makefile和配置菜单
A、修改config.in文件,
修改arch/armnommu/config.in
B、修改Makefile文件,
修改mach-lpc/Makefile,
修改linux-2.4.x/Makefile,
修改arch/armnommu/Makefile
C、修改autoconf.h 和 config.h
三、移植驱动程序
1、时钟驱动程序的移植
A、添加include/asm-armnommu/arch-lpc/time.h
B、添加include/asm-armnommu/arch-lpc/timex.h
2、串口驱动程序的移植
在include/asm-armnommu/arch-lpc/目录下添加serial.h文件。
用户1205135 2007-12-26 23:48
用户37685 2007-12-23 22:13
你在skyeye上运行过没?
好像有点问题:停在Calibrating delay loop...不动。
能否帮小弟解决一下?