日志档案

发表于 2007-3-9 12:46:00

0

标签: 无标签

移植uclinux到lpc220实例

移植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文件。

系统分类: ARM   |   用户分类: ARM   |   来源: 整理   |   【推荐给朋友】

    阅读(1247)    回复(2)  

投一票您将和博主都有获奖机会!

  • yan

    2007-12-23 22:13:01

    你在skyeye上运行过没?

    好像有点问题:停在Calibrating delay loop...不动。

    能否帮小弟解决一下?

  • alexanderlee

    2007-12-26 23:48:53

    没有,是在周工的书上总结的。你可以参看他的驱动开发。