天气: 晴朗
心情: 高兴
当使用处理器已经被uClinux支持时,主要的工作就是针对硬件电路板的区别进行的板级移植。板级移植的主要内容是由电路板存储区外围电路所决定的相关程序地址设置,如果有需要会涉及部分驱动程序的编写。
1. 存储器参数
存储器参数在文件uClinux/linux-x.x.x/include/linux/autoconf.h中定义,包括DRAM_BASE、DRAM_SIZE、FLASH_MEM_BASE和FLASH_SIZE四个参数,分别定义内存的起始地址、内存的长度、Flash的起始地址和Flash的长度。针对不同的电路板,这些参数可能不同。
2. 内核运行起始地址
内核运行起始地址符号TEXTADDR,一般在RAM区或FLASH区起始地址偏移0x8000位置,在linux-2.4.x/arch/armnommu/makefile中定义,由链接脚本linux-2.4.x/arch/armnommu/vmlinux.lds引用。
3. 内核解压引导程序相关地址
内核解压引导程序运行起始地址符号ZTEXTADDR,解压程序从这个地址开会是运行。解压后的内核放置的起始地址ZRELADDR,与内核运行起始地址TEXTADDR相同。这两个参数在linux-2.4.x/arch/armnommu/boot/makefile中定义。
4. 内核解压引导程序存储区初始化
linux-2.4.x/arch/armnommu/boot/compressed/head.S文件中存储区映射(memory map)代码,必须根据外围存储区电路的硬件实现进行修改。
5、驱动程序 37
一个基本的驱动程序就是串行口驱动,串行口驱动在内核启动之初即可提供调试用的终端,内核通过start_kernel函数里的console_init函数调用终端,console_init函数在linux-2.4.x/drivers/char/tty_io.c文件中定义。