嵌入式Linux系统Bootloader启动调试技术(回想)
嵌入式系统搭建过程中,对于系统平台搭建project师最初的一步一般是移植Bootloader ,当然移植有几个级别,通常最常见的是參考的EVM 的硬件有了改动(如更改了FLASH ,更改了SDRAM 、DDR SDRAM 等)。而且是初次调试硬件。更大的困难是公司为节省成本不打算买上万的EVM 开发板,或者EVM 开发板须要license 才干购买,这时移植Bootloader 是比較难做的,只是也不是没有方法,最有效的有两个--点灯和串口打印
。(作者通过这样的方法调试成功过IXP2400(Xscale) 的Redboot 、EP9307(ARM9) 的U-boot 等Bootloader )。
Bootloader 调试技术- 点灯 ,当烧写好Bootloader 。启动Bootloader ,肯定是从一个固定的地址開始运行程序。最初的程序是从FLASH 中读取运行的,有些处理器是直接使用FLASH 地址,有些会影射到FLASH 地址。此时SDRAM 能够觉得没用到。怎样确认程序有没有直接运行。通经常使用点灯来验证,在Bootloader 入口代码段尽量靠前初加入点灯代码(使用GPIO 控制)。跟踪代码的运行。假设确认点灯代码没问题,程序没运行,那可能是启动地址没有指向FLASH
地址,硬件晶振没起振,硬件IC 电源供电问题,硬件IC 引脚接地问题,CPU 配置字问题(如启动模式),CPLD 时序调节问题等等,这须要硬件和软件project师联合调试(这须要团队精神)。当然假设移植Bootloader 的project师做过硬件那是再好只是的。全部的问题排查和解决之后,点灯成功是种必定。
Bootloader 调试技术- 串口打印 ,点灯成功之后就能够对重要的配置參数跟踪调试,比較重要的是程序跳转到SDRAM 运行( 重点是SDRAM 时序參数和clk 配置正确) ,而后就须要打通串口。打通串口须要对UART 參数进行正确配置,測试用输出字符函数(这里可没printf() 函数可用)。通常点灯成功之后打通串口相对easy。这里重点是使用串口调试程序。在printf() 函数可用之前使用低级别的串口输出函数实现程序的跟踪调试(一般是调试汇编代码),在printf()
函数可用之后使用printf() 调试代码。
如上是Bootloader 调试过程中最重要的两个调试技术。灵活使用将带来工作效率的提升,无论是U-boot 、Redboot 还是厂商专有的Bootloader( 如rrload 、vivi 等) ,两个调试技术都有效。
(作者 冯青华 信庭嵌入式工作室- 主管)
<转载请注名来路>
嵌入式Linux系统Bootloader启动调试技术(回想)的更多相关文章
- 浅析嵌入式Linux系统的构成和启动过程
在我们的周围,大量的嵌入式设备都是基于Linux系统来构建的,嵌入式Linux与主机Linux相比有着自己的一些特点,本文就嵌入式Linux系统的构成和启动过程做一些总结. 一.嵌入式Linux系统构 ...
- 嵌入式Linux系统的构成和启动过程
转自:http://blog.csdn.net/weiganyi/article/details/11561859 在我们的周围,大量的嵌入式设备都是基于Linux系统来构建的,嵌入式Linux与主机 ...
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...
- 探索 Linux 系统的启动过程
引言 之所以想到写这些东西,那是因为我确实想让大家也和我一样,把 Linux 桌面系统打造成真真正正日常使用的工具,而不是安装之后试用几把再删掉.我是真的在日常生活和工作中都使用 Linux,比如在 ...
- Holer实现外网访问ARM嵌入式Linux系统
公网访问ARM嵌入式Linux系统 实验室里的ARM嵌入式Linux系统,只能在局域网内访问,怎样从公网也能访问内网ARM嵌入式Linux系统? 本文将介绍使用holer实现的具体步骤. 1. 准备工 ...
- 外网访问ARM嵌入式Linux系统
外网访问ARM嵌入式Linux系统 实验室里的ARM嵌入式Linux系统,只能在局域网内访问,怎样从外网也能访问ARM嵌入式Linux系统? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并 ...
- 详解linux系统的启动过程及系统初始化
一.linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检 -->BIOS(Boot Sequence)-->加载对应引导上的MBR(boot ...
- Linux系统快速启动方案
========================= 基本常识 ========================= Linux系统基本启动流程: 1. CPU从ROM(如果有的 ...
- 嵌入式linux系统的构建
前期工作:a.配置好tftp服务器:在嵌入式的童年中有介绍 b.开发板可以pc,linux 三者可以互相ping通 c.配置好nfs服务器:同样在嵌入式的童年中有介绍 一.嵌入式linux内核的制作( ...
随机推荐
- phpcms安装完成后总是跳转到install/install.php
很多人在本地安装phpcms后总是跳转到install/install.php.由于很多人是第一次使用phpcms,不知道为何会出现这个错误.出现这个大都是phpcms的缓存所致. 如何解决ph ...
- 趣味C程序100.1 .2 绘制正弦曲线
说明:1.本问题来源于<C语言经典.趣味.实用程序设计编程百例精解>,所有程序为本人自己编写.与原程序不同之处作有标记. 2.本系列所有程序均使用codeblocks编译,操作系统为Win ...
- 如何分析matlab程序的主要效率问题
利用profile on 在需要分析效率的程序段前后加入 profile on profile off 然后,在common line中输入profile viewer即可观察到这段程序的效率
- android学习小例子——验证码倒计时按钮
1.activity_main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andro ...
- java rest接口返回不完整的json数据
ngix配置有问题,数据量大时把部分数据给拦截了. {"userId":237,"loginName":"mingshi","us ...
- 消息队列msmq
http://q.cnblogs.com/q/26895/ 远程队列必须现在运程服务器上创建. 在 Windows Server 2008 上安装 IIS 服务和 MSMQ 功能后,系统会在 IIS ...
- 减少 WAF 漏报的 8 种方法 !
近十年来,WAF 已经逐渐发展成熟,被软件行业接受并成为无数企业保护应用的不二选择.很多大型企业甚至相继亲自设计或通过并购涉足其中,在这个硕大的市场里逐鹿竞争,同时也推动了应用层防火墙的技术演进. 与 ...
- Asterix and Obelix
uva10246:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&am ...
- 【UVALive - 3713】Astronauts (2-SAT)
题意: 有n个宇航员,按照年龄划分,年龄低于平均年龄的是年轻宇航员,而年龄大于等于平均年龄的是老练的宇航员. 现在要分配他们去A,B,C三个空间站,其中A站只有老练的宇航员才能去,而B站是只有年轻的才 ...
- WPF Image控件中的ImageSource与Bitmap的互相转换
原文:WPF Image控件中的ImageSource与Bitmap的互相转换 1.从bitmap转换成ImageSource [DllImport("gdi32.dll", ...