NIOS软核处理器的Linux引导程序U-boot设计
改U-boot代码时,要特别注意和开发板及CPU相关的部分,要设置成专门的Nios配置。
CONFIG_Nios——定义了所有Nios32的板子。
CFG_Nios_CONSOLE—consoleUART的基地址。
CFG_GBL_DATA_OFFSET—在Nios移植中所用到全局变量的偏移量,简单来讲是全局数据的地址。
CFG_Nios_TMRBASE—计时器的基地址。
CFG_Nios_TMRIRQ——分配给计时器的中断请求。
下面介绍如何用GERMS执行U-boot。
在没有将U-boot编入Flash之前,键入nios-run命令来运行U-bootmonitor,步骤如下:
*打开一个Niossdkshell。
*把目录转换到含有U-boot.src文件的目录。
*执行下列命令:
$nios-run-ru-boot.srec
这时我们可以看到:
u-boot1.0.0pre(Jan2004-07:36:40)
cpunios-32Rec3.18(03018)
RegfileSize:256
LO_LIMIT/HI_LINIT:2/14
Board:AlteraNios1C20DevelopemtKit
In:Serial
Out:Serial
Err:Serial
==>
*在下载完之后,GERMSmonitor将自动启动U-boot。可以看到U-boot命令符号“==>”,看到后,退出nios-run。
*启动终端,应该被设置在115200,N,8,1处运行。
*开始用U-boot了,试着从U-boot符号那里执行help命令:
==>help
将U-boot放到Flash存储器里,在U-boot的提示符下,进行擦除Flash的一个区。
==>erase400004ffff
把U-boot代码装载到RAM:把一个二进制映像装载到RAM。
==>loadb800000
把这个二进制映像从RAM拷贝到Flash。
==>cp.b800004000010000
这样,当通过标准的32位设置后,开发板重置,U-boot自动启动。若用安全模式下启动U-boot,输入下列的GERMS命令:+g40000。
结语
U-bootbootloader是操作系统和硬件的枢纽,相对于操作系统内核来说,它是一个硬件抽象层。它负责初始化硬件,引导操作系统内核,检测各种参数给操作系统内核使用。一个功能完备的大型bootloader的工作量,相当于一个小型的操作系统。嵌入式领域中,操作系统移植的关键在于:bootloader的移植和操作系统内核硬件相关部分移植。设计和实现一个好的U-boot将大大提高操作系统移植的稳定性,并大大加快操作系统移植的周期。
《NIOS软核处理器的Linux引导程序U-boot设计(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/166656.html
CONFIG_Nios——定义了所有Nios32的板子。
CFG_Nios_CONSOLE—consoleUART的基地址。
CFG_GBL_DATA_OFFSET—在Nios移植中所用到全局变量的偏移量,简单来讲是全局数据的地址。
CFG_Nios_TMRBASE—计时器的基地址。
CFG_Nios_TMRIRQ——分配给计时器的中断请求。
下面介绍如何用GERMS执行U-boot。
在没有将U-boot编入Flash之前,键入nios-run命令来运行U-bootmonitor,步骤如下:
*打开一个Niossdkshell。
*把目录转换到含有U-boot.src文件的目录。
*执行下列命令:
$nios-run-ru-boot.srec
这时我们可以看到:
u-boot1.0.0pre(Jan2004-07:36:40)
cpunios-32Rec3.18(03018)
RegfileSize:256
LO_LIMIT/HI_LINIT:2/14
Board:AlteraNios1C20DevelopemtKit
In:Serial
Out:Serial
Err:Serial
==>
*在下载完之后,GERMSmonitor将自动启动U-boot。可以看到U-boot命令符号“==>”,看到后,退出nios-run。
*启动终端,应该被设置在115200,N,8,1处运行。
*开始用U-boot了,试着从U-boot符号那里执行help命令:
==>help
将U-boot放到Flash存储器里,在U-boot的提示符下,进行擦除Flash的一个区。
==>erase400004ffff
把U-boot代码装载到RAM:把一个二进制映像装载到RAM。
==>loadb800000
把这个二进制映像从RAM拷贝到Flash。
==>cp.b800004000010000
这样,当通过标准的32位设置后,开发板重置,U-boot自动启动。若用安全模式下启动U-boot,输入下列的GERMS命令:+g40000。
结语
U-bootbootloader是操作系统和硬件的枢纽,相对于操作系统内核来说,它是一个硬件抽象层。它负责初始化硬件,引导操作系统内核,检测各种参数给操作系统内核使用。一个功能完备的大型bootloader的工作量,相当于一个小型的操作系统。嵌入式领域中,操作系统移植的关键在于:bootloader的移植和操作系统内核硬件相关部分移植。设计和实现一个好的U-boot将大大提高操作系统移植的稳定性,并大大加快操作系统移植的周期。
《NIOS软核处理器的Linux引导程序U-boot设计(第3页)》