4. 内核的下载和执行
要想使目标板的Linux系统脱离交叉开发环境,直接在目标机上本地启动运行,必须通过U-boot将U-boot映像,内核映像和RAMDISK 映像烧写到FLASH中,因为使用U-boot引导程序需要使用U-boot格式的内核映像和RAMDISK映像,可以通过以下命令来实现:
($U-BOOT-PATH)/tools /mkimage -A arm -O linux -T kernel -C gzip –a 0x20008000 -e 0x20008000 –n “linux-2.4.19”-d linux.bin.gz uImage
($U-BOOT-PATH)/tools/mkimage-A arm -O linux -T ramdisk -C gzip –a 0x21100000 -e 0x21100000 –n “RAMDISK”-d ramdisk.bin ramdisk
通过U-boot将uImage和ramdisk烧写到flash相应的分区中去,烧写到flash相应分区的地址如图7所示:烧写完毕后设置u- boot的环境变量,让系统自动启动,系统复位后,Linux系统就可以完全自动从本地flash启动了,启动后,进行地址映射,u-boot会把u- boot压缩映像,kernel压缩映像,ramdisk压缩映像全部拷贝到SDRAM的相应地址,SDRAM的映射地址如图8所示,这时Linux系统完全在SDRAM中运行了,Linux系统真正启动起来了。
5. 总结
本文根据一个特定的目标平台,结合AT91RM9200的开发经验,详细介绍了将Linux移植到ARM构建的嵌入式系统上的主要技术和整个流程,实现了Linux 向目标系统AT91RM9200的移植,移植后的操作系统在目标板上运行稳定,并且可以根据实际需要编写相应的控制程序,将其应用于实际工业控制中。掌握这些技术,对于开发嵌入式系统十分重要,对开发其他类型的嵌入式系统同样具有参考意义。
本论文作者创新点:从软件与硬件的相互关系, 硬件对软件的制约、硬件对软件的支持这个角度对裁减和移植进行了分析,同时在Bootloader(启动代码)的移植,Kernel(内核)的裁减和移植过程中,把代码分成了两部分,一部分是和硬件相关的部分,一部分是和硬件无关的部分,这样做不仅思路清晰,而且可以大大减少工作量。
4. 内核的下载和执行
要想使目标板的Linux系统脱离交叉开发环境,直接在目标机上本地启动运行,必须通过U-boot将U-boot映像,内核映像和RAMDISK 映像烧写到FLASH中,因为使用U-boot引导程序需要使用U-boot格式的内核映像和RAMDISK映像,可以通过以下命令来实现:
($U-BOOT-PATH)/tools /mkimage -A arm -O linux -T kernel -C gzip –a 0x20008000 -e 0x20008000 –n “linux-2.4.19”-d linux.bin.gz uImage
($U-BOOT-PATH)/tools/mkimage-A arm -O linux -T ramdisk -C gzip –a 0x21100000 -e 0x21100000 –n “RAMDISK”-d ramdisk.bin ramdisk
通过U-boot将uImage和ramdisk烧写到flash相应的分区中去,烧写到flash相应分区的地址如图7所示:烧写完毕后设置u- boot的环境变量,让系统自动启动,系统复位后,Linux系统就可以完全自动从本地flash启动了,启动后,进行地址映射,u-boot会把u- boot压缩映像,kernel压缩映像,ramdisk压缩映像全部拷贝到SDRAM的相应地址,SDRAM的映射地址如图8所示,这时Linux系统完全在SDRAM中运行了,Linux系统真正启动起来了。
5. 总结
本文根据一个特定的目标平台,结合AT91RM9200的开发经验,详细介绍了将Linux移植到ARM构建的嵌入式系统上的主要技术和整个流程,实现了Linux 向目标系统AT91RM9200的移植,移植后的操作系统在目标板上运行稳定,并且可以根据实际需要编写相应的控制程序,将其应用于实际工业控制中。掌握这些技术,对于开发嵌入式系统十分重要,对开发其他类型的嵌入式系统同样具有参考意义。
本论文作者创新点:从软件与硬件的相互关系, 硬件对软件的制约、硬件对软件的支持这个角度对裁减和移植进行了分析,同时在Bootloader(启动代码)的移植,Kernel(内核)的裁减和移植过程中,把代码分成了两部分,一部分是和硬件相关的部分,一部分是和硬件无关的部分,这样做不仅思路清晰,而且可以大大减少工作量。
举报