原创 移植uclinux到lpc220实例

2007-3-9 12:46 3419 5 7 分类: MCU/ 嵌入式
移植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文件。

文章评论2条评论)

登录后参与讨论

用户1205135 2007-12-26 23:48

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

用户37685 2007-12-23 22:13

你在skyeye上运行过没?

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

能否帮小弟解决一下?

相关推荐阅读
用户1205135 2010-01-22 17:09
把emacs配置成source insight-转
来源:www.cublog.cn/opera/showart.php?blogid=5421&id=37299把emacs变成代码浏览器,类似sour...
用户1205135 2010-01-13 10:09
A new approach to China
Like many other well-known organizations, we face cyber attacks ofvarying degrees on a regular basis...
用户1205135 2009-12-27 21:18
11个有趣的程序员小幽默[forward]
我们经常会看到一些关于程序员有趣的事或是在代码注释里看到程序员的幽默,例如以下11个。1.// // 敬爱的维护者://// 如果你在优化本例程函数时遇到麻烦,请自增下面的计数器// 以提醒下一个维护...
用户1205135 2009-11-24 23:57
Issue "errno:EINTR,while it calls msgrcv."
Fix the issue "errno:EINTR,while it is suspended by msgrcv."If the calling process is blocked until ...
用户1205135 2009-06-14 22:50
Android build errors fix under Ubuntu 9.04
-----------------------------------------------------------------------------------------------Envir...
用户1205135 2009-06-09 21:47
1st Reading note of Android A Programmer's Guide
Today i read the book<Android - A Programmer's Guide> written by J.F. DiMarzio .1. downloading...
我要评论
2
5
关闭 站长推荐上一条 /2 下一条