新闻  |   论坛  |   博客  |   在线研讨会
嵌入式系统 Boot Loader 技术内幕(4)
tongxin | 2009-04-13 12:38:03    阅读:762   发布文章


%A 移动通信
%A   GSM
%A   CDMA
%A   3G
%A 嵌入式开发
%A   ARM
%A   DSP
%A   Symbian
%A   WinCE
%A   Linux
%A   BREW
%A   J2ME
%A 硬件研发
%A   硬件综合
%A   射频微波
%A   EMI/EMC
%A   RFID
%A ・文章搜索 SEARCH
%A         
%A 标题 内容         
%A                 
%A  首页 > 技术文章 > 手机研发 > 软件 > 正文
%A 嵌入式系统 Boot Loader 技术内幕(4)
%A www.52RD.com 2005年9月22日 我爱研发网 詹荣开
%A
%A 四. 关于串口终端
%A
%A
%A 在 boot loader 程序的设计与实现中,没有什么能够比从串口终端正确地收到打印信息能更令人激动了。此外,向串口终端打印信息也是一个非常重要而又有效的调试手段。但是,我们经常会碰到串口终端显示乱码或根本没有显示的问题。造成这个问题主要有两种原因:(1) boot loader 对串口的初始化设置不正确。(2) 运行在 host 端的终端仿真程序对串口的设置不正确,这包括:波特率、奇偶校验、数据位和停止位等方面的设置。
%A
%A 此外,有时也会碰到这样的问题,那就是:在 boot loader 的运行过程中我们可以正确地向串口终端输出信息,但当 boot loader 启动内核后却无法看到内核的启动输出信息。对这一问题的原因可以从以下几个方面来考虑:
%A
%A (1) 首先请确认你的内核在编译时配置了对串口终端的支持,并配置了正确的串口驱动程序。
%A
%A (2) 你的 boot loader 对串口的初始化设置可能会和内核对串口的初始化设置不一致。此外,对于诸如 s3c44b0x 这样的 CPU,CPU 时钟频率的设置也会影响串口,因此如果 boot loader 和内核对其 CPU 时钟频率的设置不一致,也会使串口终端无法正确显示信息。
%A
%A (3) 最后,还要确认 boot loader 所用的内核基地址必须和内核映像在编译时所用的运行基地址一致,尤其是对于 uClinux 而言。假设你的内核映像在编译时用的基地址是 0xc0008000,但你的 boot loader 却将它加载到 0xc0010000 处去执行,那么内核映像当然不能正确地执行了。
%A
%A 5. 结束语
%A Boot Loader 的设计与实现是一个非常复杂的过程。如果不能从串口收到那激动人心的"uncompressing linux.................. done, booting the kernel……"内核启动信息,恐怕谁也不能说:"嗨,我的 boot loader 已经成功地转起来了!"。
%A%A
%A

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
最近文章
寂寞如雪
2009-05-19 19:01:18
夜色花
2009-05-19 18:56:22
没有爱可以重来
2009-05-19 18:54:59
推荐文章
最近访客