新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > U-Boot在S3C44B0上的移植方法

U-Boot在S3C44B0上的移植方法

作者:时间:2012-04-19来源:网络收藏


具体修改操作

移植操作中这些文件修改过程的具体操作为:

(1)start.S 文件的修改。start.S 是汇编语言编写的 程序入口代码,位于cpu/ s3c44b0 下。
移植操作中需要对start.S 进行相应的修改,具体修改内容如下。

①设置WTCON = 0x0,禁止看门狗定时器,避免处理器强行复位。
②设置INTMSK = 0x7ffffff,禁止所有中断。 的执行过程中不必响应任何中断。
③根据嵌入式微处理器工作主频,修改宏CONFIG- - CLOCK- SPEED,使处理器能
够正常工作,本文的目标板上工作主频为66 MHz。在 源程序中多处用到该宏,所以根据不同的处理器工作主频进行相应修改。
④ 设置PLLCON寄存器。PLLCON锁相环控制寄存器中储存有计算系统时钟的相关参数,为了产生正确的系统时钟,必须根据外接晶振频率和处理器工作主频确定各个倍频系数。根据提供的计算式(1) 和式(2) 计算倍频系数M 、P、S 和PLLCON的值。设PLLCON值为Y为


式中, f in为晶振频率, f out为S3C44B0 微处理器工作主频,通常s 取1,使P + 2 = fin/2MHz ,可求得P。

(2)memsetup.S的修改。memsetup.S代码是对存储器空间的初始化,在start.S中被调用。修改内存映射相关参数,SDRAM 的刷新速度等,根据不同嵌入式系统板修改。

(3) /include/configs目录下嵌入式系统板头文件的修改。为了使串口能够正常工作,需要设置正确的波特率。本文嵌入式系统板的串口传输波特率为 115 200 bps。根据片上资源配置,修改内存映射相关参数。该头文件里还定义了的一些环境变量,这时可以不用修改, U-Boot启动后可以通过setenv命令来设定。其它参数与启动操作系统内核有关,需要与内核启动参数相匹配。

(4) 为了使串口能够正常工作,初始化串口4个相关寄存器。当只有一个串口时,只需对UART0的FIFO控制寄存器UFCON0、块控制寄存器 UL2CON0、控制寄存器UCON0、波特率除数寄存器UBRDIV0修改, S3C44B0的串口初始化函数在/cpu/ s3c44b0/ serial.c 文件中。

如果串口不能正常工作,可能是由于串口时钟设置错误。查看UBRDIV0寄存器内容是否计算正确,查阅S3C44B0 手册由式(3) 计算,设UBRDIVO值为0,串口波特率为b,处理器主频为M, 则

U = (int) ( M/ b ×16) - 1 (3)

式中,b = 115 200 bps,M = 66 MHz。

(5) 根据嵌入式系统板的配置,对S3C44B0 相应的I/ O 寄存器内容修改,修改源文件/ board/smdk4110/ smdk4110.c。由于SMDK4110 嵌入式系统板选用的FLASH 型号不是SST39VF160,而snds110嵌入式系统板选用的是SST39VF160 ,所以用snds110目录下的flash.c 替换原来的flash.c,使FLASH 芯片正常工作。

移植的基本工作已经作完,进入U-Boot主目录,在Shell下输入make命令编译U-Boot,编译后生成最终可以下载到FLASH中的uboot .bin 文件。

U-Boot 烧写及运行检查

需借助FLASH芯片烧写工具将编译好的U-Boot.bin 文件烧写进FLASH,检查U-Boot是否能正常工作。本文使用针对ARM处理器、运行在Lin2ux操作系统上的简易调试器软件J tager移植U-Boot。J tager支持本文基于ARM7TDMI核的S3C44B0 处理器的调试和对SST39VF160 FLASH芯片的读写。由于J tager是符合GPL公约、开放源代码的项目软件,用户可以免费从因特网获得该软件。

烧写完毕后,复位开发板,打开超级终端可以看到U-Boot的提示符。如果这时没有按任意键,U-Boot将自动加载操作系统内核和文件系统。若是按下任意键,则U-Boot停止自动加载,进入U-Boot命令行,可以输入命令进行调试。

结 论

本文结合分析U-Boot的运行机理和移植Boot-loader的必要条件,研究了U-Boot在基于S3C44B0的嵌入式系统板上的移植方法及具体的软件修改方法。本文移植情况是在硬件资源固定、不改变Boot-loader 框架前提下,对与嵌入式目标板和CPU 相关的代码进行修改。嵌入式开发人员应该在清楚了 工作机理、移植条件之后,针对自己的目标板进行移植工作,在遇到不同的目标板时能够灵活的选用合适的,根据具体情况裁剪Bootloader,最大限度地发挥Bootloader的功能。本文选用的Bootloader U-Boot目前能稳定地运行在使用的嵌入式系统板上。通过U-Boot可以实现串口与PC通信,查看、修改内存,引导u Clinux嵌入式操作系统等功能。前期的移植工作是嵌入式系统开发的必要环节,在此基础上可以进行深入的嵌入式系统开发,希望本文能为作相关工作的开发者提供参考。


上一页 1 2 3 下一页

关键词: Bootloader U-Boot S3C44B0

评论


相关推荐

技术专区

关闭