linux u-boot跟踪方法总结
拿到一块板子,其中很重要的一项就是看电路图还有Datasheet。
这个真的很重要,首先你要知道cpu的架构是什么,armv7?arvmv5?还是其他的,哪个公司的芯片?是freescale 还是TI还是MTK,还是samsung,Hisilicon还是一些其他的什么芯片,现在的CPU的数据手册都比较全,都很容易在官网找到相关的资料,但是还要在官网找到其他的一些有用的信息,比如说官方对于这个芯片有没有评估板,对于这块板子有哪些支持的系统,相关的工具,比如说烧写系统的工具,都是很有用的。
其实一款嵌入式产品,除了初期产品规划时候规划的功能以外,cpu已经给这款产品定了型。
今天就记录一下针对一款产品u-boot 的跟踪方法。
纯属个人土方法,不正确望指出。
1.如果拿到板子的时候已经给了一套系统给你,确定了正确的烧写方式,确定了正确的sysboot。那么就可以着手开始跟踪u-boot,在以前的随笔里有一些记录,但是也是不是很成熟很通俗易懂,今天讲一个比较俗的跟踪方法。
首先,确定你的makefile 的正确配置,将这个u-boot配置一次,然后编译成功出来一次。
就拿以前的tiny4412那块板子来说,u-boot的正确配置是 make tiny4412_config make -j8 编译成功后。
他会生成几个重要的文件,u-boot.bin , u-boot.lds 第一个是编译完的二进制文件,第二个是编译链接脚本。
我们开始的地点就是u-boot.lds.
这里面会指定u-boot的开始位置,打个简单的比方,如果你的cpu是 armv7的架构,那个你的开始位置十有八九是arch/arm/cpu/armv7/start.S
不要问我为什么,这是经验。但是上述情况也有特殊情况,具体要看u-boot.lds,如果实在不行就看这个这个文件下有没有start.o文件,有的话就是了。
我的u-boot.lds是
- .text :
- {
- arch/arm/cpu/armv7/start.o (.text)
- board/samsung/tiny4412/libtiny4412.o (.text)
- arch/arm/cpu/armv7/exynos/libexynos.o (.text)
- *(.text)
- }
这说明我的开始位置就是刚才那个,第二个文件就下下面那个。。。。
那个文件还规定了入口是(_start)
接下来就是 _start reset cpu_init_crit board_init_f relocate_code board_init_r main_loop 反正就是这个套路,顺着下去就是了,如果不确定这个文件是不是自己要进去的,那么就搜索一下这个文件的.o文件,如果有,一般来说就是,但是还要看include/configs/********.h 文件,这个文件我在前面也介绍了。
如果你不知道u-boot的各个文件结构,看顶层文件的README应该有一些介绍。
linux u-boot跟踪方法总结的更多相关文章
- Andoird Crash的跟踪方法,使用腾讯Bugly来捕捉一些疑难杂症,让我们APP稳定上线
Andoird Crash的跟踪方法,使用腾讯Bugly来捕捉一些疑难杂症,让我们APP稳定上线 我们在开发中常常会注意到一些Crash,这正是很头疼的,而且Crash会带来很多意想不到的状态,很恶心 ...
- (转)Linux I/O 调度方法
Linux I/O 调度方法 转自https://blog.csdn.net/theorytree/article/details/6259104 操作系统的调度有 CPU调度 CPU sche ...
- 嵌入式linux应用程序调试方法
嵌入式linux应用程序调试方法 四 内存工具 五 C/C++代码覆盖.性能profiling工具 四 内存工具 您肯定不想陷入类似在几千次调用之后发生分配溢出这样的情形. 许多小组花了许许多多时间来 ...
- Linux学习-Boot Loader: Grub2
boot loader 的两个 stage 在 BIOS 读完信息后,接下来就是会到第一个开机装置 的 MBR 去读取 boot loader 了.这个 boot loader 可以具有选单功能.直接 ...
- traceroute在linux中的使用方法
traceroute在linux中的使用方法 一.traceroute的实现原理 二.traceroute命令使用方法 1.命令格式 2.常用命令参数 3.使用实例 一.traceroute的实现原理 ...
- Spring Boot部署方法
Spring Boot部署方法 网上搜到的部署方法无非是打成jar包,然后shell执行nohup java调用jar命令,或者是打成war包然后部署到tomcat或者jetty容器上面. S ...
- 嵌入式linux应用程序移植方法总结
嵌入式linux应用程序移植方法总结 前段时间一直在做openCapwap的移植和调试工作,现在工作已接近尾声,编写本文档对前段工作进行一个总结,分享下openCapwap移植过程中的经验和感悟.江浩 ...
- 1008win7与虚拟机中的linux共享文件的(详细)方法
转自http://jingyan.baidu.com/article/ca00d56c74dde4e99eebcfd2.html 好东西一起分享 win7与虚拟机中的linux共享文件的(详细)方法 ...
- KCF目标跟踪方法分析与总结
KCF目标跟踪方法分析与总结 correlation filter Kernelized correlation filter tracking 读"J. F. Henriques, R. ...
随机推荐
- python操作数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
- ubuntu下安装TexLive和Texmaker
也可以参考ubuntu14.04配置中文latex完美环境(texlive+texmaker+lyx) 设置中文字体的时候参考ubuntu 下安装 texlive 并设置 ctex 中文套装 1.首先 ...
- IM即时通讯
即时通讯,由于项目需求和不可抗力因素用的融云 当然我更倾向于用环信亲加等 使用融云遇到的那些坑: 1.集成时的坑: ,编译环境要求太高 项目中有很多旧的东西 达不到其标准 直接用最新版,出错, ...
- cmake 静态调用 c++ dll 的类的一个例子(Clion IDE)[更新1:增加1.模版的应用,2.ma 的算法]
CMakeLists.txt project(aaa) add_library(aaa SHARED aaa.cpp) add_executable(bbb bbb.cpp) target_link_ ...
- Python + OpenCV2 系列:2 - 图片操作
这些相当于我的学习笔记,所以并没有很强的结构性和很全的介绍,请见谅. 1 读取.写入图像 下面是一个简短的载入图像.打印尺寸.转换格式及保存图像为.png的例子: # -*- coding: utf- ...
- ECSHOP MYSQL 公用类库中的autoExecute方法
include/cls_mysql.php 正常操作 例如: $sql = “UPDATE ecs_user SET user = ‘buxuan’ WHERE user_id = ″; $db-&g ...
- NopCommerce Url分析
using System; using System.Web; using System.Web.Routing; using Nop.Core; using Nop.Core.Data; using ...
- SCWS分词扩展在WINDOWS下的安装方法
安装之前先确认您是否拥有主机的安装权限,否则无法进行安装,安装步骤如下: 1. 根据您当前用的 PHP 版本,下载相应已编译好的 php_scws.dll 扩展库. 目前支持以下版本 [PHP-4 ...
- OC-内存管理-基本原理与引用计数器
基本原理 1. 什么是内存管理 移动设备的内存极其有限,每个app所能占用的内存是有限制的 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间.比如回收一些不需要使用 ...
- MVC中的@section
在前文<MVC中 _ViewStart _Layout Index三个页面中的加载顺序> 中另外指定母版页 Layout.cshtml时...遇到了这个问题.. 报错: 以下各节已定义,但 ...