拿到一块板子,其中很重要的一项就是看电路图还有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跟踪方法总结的更多相关文章

  1. Andoird Crash的跟踪方法,使用腾讯Bugly来捕捉一些疑难杂症,让我们APP稳定上线

    Andoird Crash的跟踪方法,使用腾讯Bugly来捕捉一些疑难杂症,让我们APP稳定上线 我们在开发中常常会注意到一些Crash,这正是很头疼的,而且Crash会带来很多意想不到的状态,很恶心 ...

  2. (转)Linux I/O 调度方法

    Linux I/O 调度方法 转自https://blog.csdn.net/theorytree/article/details/6259104 操作系统的调度有 CPU调度    CPU sche ...

  3. 嵌入式linux应用程序调试方法

    嵌入式linux应用程序调试方法 四 内存工具 五 C/C++代码覆盖.性能profiling工具 四 内存工具 您肯定不想陷入类似在几千次调用之后发生分配溢出这样的情形. 许多小组花了许许多多时间来 ...

  4. Linux学习-Boot Loader: Grub2

    boot loader 的两个 stage 在 BIOS 读完信息后,接下来就是会到第一个开机装置 的 MBR 去读取 boot loader 了.这个 boot loader 可以具有选单功能.直接 ...

  5. traceroute在linux中的使用方法

    traceroute在linux中的使用方法 一.traceroute的实现原理 二.traceroute命令使用方法 1.命令格式 2.常用命令参数 3.使用实例 一.traceroute的实现原理 ...

  6. Spring Boot部署方法

    Spring Boot部署方法     网上搜到的部署方法无非是打成jar包,然后shell执行nohup java调用jar命令,或者是打成war包然后部署到tomcat或者jetty容器上面. S ...

  7. 嵌入式linux应用程序移植方法总结

    嵌入式linux应用程序移植方法总结 前段时间一直在做openCapwap的移植和调试工作,现在工作已接近尾声,编写本文档对前段工作进行一个总结,分享下openCapwap移植过程中的经验和感悟.江浩 ...

  8. 1008win7与虚拟机中的linux共享文件的(详细)方法

    转自http://jingyan.baidu.com/article/ca00d56c74dde4e99eebcfd2.html 好东西一起分享 win7与虚拟机中的linux共享文件的(详细)方法 ...

  9. KCF目标跟踪方法分析与总结

    KCF目标跟踪方法分析与总结 correlation filter Kernelized correlation filter tracking 读"J. F. Henriques, R. ...

随机推荐

  1. HTML学习笔记——图片显示、图片跳转、图片相对路径

    1>显示图片.用a标签实现点击图片跳转.地图标签/点击图片上固定区域跳转 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...

  2. ansible定时任务

    不得不说,ansible很强大,ansible定制任务模块显示 ansible all -m cron -a 'name="ban IP of login" minute=* ho ...

  3. Unreal模型文件调查

    http://en.wikipedia.org/wiki/UE_Viewer http://www.gildor.org/en/projects/umodel http://wiki.beyondun ...

  4. ecshop网站搬家缓存无法更新

    问题描述: 1.后台产品列表能改,数据也能看到,前端就是不显示 2.缓存无法删除 3.网上其他方法都试过,还是不行 症状:是因为缓存无法删除,无法更新,只需要能重新更新缓存文件即可.网站搬家丢失tem ...

  5. ie6下absolute:fixed问题,完美兼容

    普通css代码 .fix_foot{height: 30px; background: #ff0000; position: %; z-index:;} ie6兼容代码 * html,* html b ...

  6. tomcat 无法加载js和css 等静态文件的问题

    前段时间做了个网站,在本地tomcat测试都没有问题,但是部署到阿里云上之后,系统样式全没了.jsp等动态页面访问正常. 打开浏览器监控发现所有的css 和js 文件返回都是404 .直接访问单个的c ...

  7. Tween + 缓动函数

    Unity-Tween http://www.cnblogs.com/MrZivChu/p/UnityTween.html iTween: iTween大解构(一)之抛物线移动 http://blog ...

  8. nginx使用ssl模块配置支持HTTPS访问

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数. 需求: 做一个网站域名为 www.localhost.cn 要求通过htt ...

  9. [转] MemCached 的 stats 命令

    Memcached有个stats命令,通过它可以查看Memcached服务的许多状态信息.使用方法如下:先在命令行直接输入telnet 主机名端口号,连接到memcached服务器,然后再连接成功后, ...

  10. 边框(border)边距(margin)和间隙(padding)属性的区别

    边框属性(border):用来设定一个元素的边线.边距属性(margin):用来设置一个元素所占空间的边缘到相邻元素之间的距离.间隙属性(padding):用来设置元素内容到元素边界的距离.这三个属性 ...