当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]在 boot loader 程序的设计与实现中,没有什么能够比从串口终端正确地收到打印信息能更令人激动了。此外,向串口终端打印信息也是一个非常重要而又有效的调试手段。

在 boot loader 程序的设计与实现中,没有什么能够比从串口终端正确地收到打印信息能更令人激动了。此外,向串口终端打印信息也是一个非常重要而又有效的调试手段。但是,我们经常会碰到串口终端显示乱码或根本没有显示的问题。造成这个问题主要有两种原因:(1) boot loader 对串口的初始化设置不正确。(2) 运行在 host 端的终端仿真程序对串口的设置不正确,这包括:波特率、奇偶校验、数据位和停止位等方面的设置。

此外,有时也会碰到这样的问题,那就是:在 boot loader 的运行过程中我们可以正确地向串口终端输出信息,但当 boot loader 启动内核后却无法看到内核的启动输出信息。对这一问题的原因可以从以下几个方面来考虑:

(1) 首先请确认你的内核在编译时配置了对串口终端的支持,并配置了正确的串口驱动程序。

(2) 你的 boot loader 对串口的初始化设置可能会和内核对串口的初始化设置不一致。此外,对于诸如 s3c44b0x 这样的 CPU,CPU 时钟频率的设置也会影响串口,因此如果 boot loader 和内核对其 CPU 时钟频率的设置不一致,也会使串口终端无法正确显示信息。

(3) 最后,还要确认 boot loader 所用的内核基地址必须和内核映像在编译时所用的运行基地址一致,尤其是对于 uClinux 而言。假设你的内核映像在编译时用的基地址是 0xc0008000,但你的 boot loader 却将它加载到 0xc0010000 处去执行,那么内核映像当然不能正确地执行了。


Boot Loader 的设计与实现是一个非常复杂的过程。如果不能从串口收到那激动人心的"uncompressing linux.................. done, booting the kernel……"内核启动信息,恐怕谁也不能说:"嗨,我的 boot loader 已经成功地转起来了!"。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发中,总线错误(Bus Error)与段错误(Segmentation Fault)并称两大"程序杀手"。不同于段错误源于非法内存访问,总线错误本质是硬件对访问方式的严格约束被突破,尤其在ARM架构中表现尤...

关键字: 嵌入式开发 CAN总线

在嵌入式系统开发中,硬件依赖、模块耦合和资源限制使得传统单元测试难以实施。CMock作为专为C语言设计的自动化Mock框架,通过解析头文件自动生成Mock模块,成为破解嵌入式测试难题的核心工具。

关键字: 嵌入式开发 CMock

在资源受限的嵌入式系统中,C++继承机制常被视为"奢侈特性",但合理运用可显著提升代码复用性与可维护性。本文从嵌入式开发特性出发,解析继承机制的最佳应用场景与实践准则。

关键字: C++ 嵌入式开发

在资源受限的嵌入式系统中,传统调试工具(如JTAG)往往成本高昂且占用引脚资源。本文介绍一种基于串口的低成本调试方案,通过自定义协议实现内存数据的实时监控,硬件成本可降低80%以上,特别适用于8/16位MCU开发场景。

关键字: 嵌入式 串口 内存数据

在物联网设备、工业控制器等嵌入式系统中,固件升级是功能迭代与漏洞修复的关键环节。然而,升级过程中断电或固件损坏可能导致设备变砖(无法启动)。本文聚焦双分区固件升级架构与防砖保护机制,提供可落地的开发方案。

关键字: Bootloader 嵌入式开发

在嵌入式通信开发中,协议解析是连接硬件层与应用层的核心环节。基于前文设计的ITLV(改进型TLV)协议框架,本文深入对比一次性解析与流式解析两种策略,重点分析粘包、断包及数据噪声等典型场景下的处理机制。

关键字: 嵌入式开发 协议解析

在嵌入式设备智能化浪潮中,用户对交互体验的要求日益严苛。传统嵌入式GUI开发常面临开发效率低、跨平台适配难、视觉效果受限等痛点。CDroid作为一款基于C++11开发的跨平台GUI引擎,通过移植Android开发模式,为...

关键字: 嵌入式开发 UI开发

在嵌入式开发中,我们常陷入这样的困境:一个简单的功能随着需求变更,逐渐演变成层层嵌套的if-else迷宫。某医疗设备的控制程序就曾因20层嵌套的if语句,导致维护时误删关键逻辑引发事故。状态机架构正是破解这一难题的利器,...

关键字: 嵌入式状态机 嵌入式开发

在嵌入式系统开发中,一个高效且功能丰富的交互式Shell对于开发者调试、管理和控制设备至关重要。CherrySH作为专为嵌入式应用程序设计的微型Shell,以其轻量级、功能完备的特点,成为嵌入式开发领域的得力助手。

关键字: CherrySH 嵌入式开发 Shell

医学实验室中分析仪种类繁多 , 通信方式均不相同 ,无法整合到统一的流水线系统中应用 。为提高校验效率 , 统筹分析各家分析仪通信需求 ,设计基于串 口 的实验室流水线分析仪接口通信方案 ,打通分析仪并入流水线的通信障碍...

关键字: 医学实验室流水线 分析仪接口 通信方案设计 串口 异步通信
关闭