- 博客(16)
- 资源 (5)
- 收藏
- 关注
原创 rpi uboot 2016的关键跳转点
VERSION = 2016PATCHLEVEL = 11SUBLEVEL =EXTRAVERSION = -rc1NAME =1最开始的启动部分第一句代码从start.S移动到了vector.S。arm/lib/vector.S line 48_start:b reset直接跳到了cpu/arm1176/start.S顺序执行到line
2016-10-21 12:08:33 658
原创 core-image-minimal分析1
先不去考虑local.conf里面的一些配置内容,比如MACHINE等等,同时也不深入分析代码的构建那一部分,我们只分析通过Documentation可以查询到的。只从bb文件以及配置的角度来查看。image的一些定制内容和参考可以在这里找到http://www.yoctoproject.org/docs/2.1/ref-manual/ref-manual.html
2016-10-19 16:06:05 4009
原创 arm汇编文件编译以及代码查看
汇编文件一般为.S结尾(S大写,小写的s一般不会有预处理的过程和语句。大写的S一般有预处理等等)首先编写一个main.Smain:mov r0,#1mov r1,#2ldr r2,add_func_lbl r2die:b dieadd_func:add r0,r0,r1bx lr.align 4add_func_l:.word add_f
2016-10-19 14:07:53 2395 1
原创 ubuntu虚拟机扩充磁盘
在关闭虚拟机的情况下。右键->设置->硬盘->实用工具->扩展容量 设置合适的大小。点击扩展开机进入操作系统 安装gparted分区软件sudo apt-get install gpartedsudo gparted 进入界面/dev/sda1后面是/dev/sda2和/dev/sda5要删除/dev/sda2和/dev/sda5才
2016-10-19 10:08:32 1714 2
原创 uboot调试和符号
用gdb第一阶段调试的时候,符号应该没有任何问题。但是由于uboot将自己拷贝到RAM里面去。随后跳转到RAM执行。所以debug的时候符号就失效了。比如初始的地址是abc。拷贝后的地址是1000abc。随后跳转到0x1000xxx的地址执行了,而你的break do_mem_md,依然在原来的abc。这样就无法中断下来。为了解决这个问题。要重新加载符号表。总的ub
2016-10-17 13:56:49 2100
原创 最新uboot的Kbuild系统 6 简单比较不同板子
这里用rpi和rockchip的比较一下编译的时候将一些数据打印出来在makefile.build中添加 saveobjy将进入每个目录构建的.o文件打印出来objf=objdetailsaveobjy=\ @if [ ! -d "$(objf)/$(obj)" ];then \ mkdir -p $(objf)/$(obj);\ fi; \ echo $(obj-y) >$
2016-10-13 16:05:51 834
原创 在makefile中执行shell
在makefile中执行shell需要注意1 执行的时候一行就是一个shell。所以一个完整的shell命令必须在一行之内,因此要用\连接起来。比如if [ "$(obj)X" = "fsX" ]; then \echo "ONE1 $(KBUILD_BUILTIN)"; \echo "ONE2 $(builtin-target)"; \echo "ONE3 $(l
2016-10-12 16:57:17 9543 2
原创 最新uboot的Kbuild系统 5 make构建Uboot obj的产生和构建
前面可以看到 rpi的编译主要是由arch/arm/cpu/arm1176/start.o xxx/built-in.oarch/arm/lib/eabi_compat.oarch/arm/lib/lib.a这些文件构成的。u-boot:$(u-boot-init)$(u-boot-main)先看 $(u-boot-init)u-boot
2016-10-12 13:43:31 1290
原创 gnu make关键点解释
在命令行中执行make的时候。make会在当前目录中寻找Makefile的文件。对其中的对应目标进行构建。make最基本的语法是targets: prerequisitescommand..........targets是需要构建的目标 prerequisites是构建这个目标需要的依赖command是执行的命令注意command前面有一个TAB
2016-10-12 10:03:47 429
原创 最新uboot的Kbuild系统 4 make构建Uboot简略流程
前面第三章生成了.config,实际上还是不清楚细节上如何移植,不同的板子怎样设计.confg文件。我们只是知道在.config里面 配置了很多CONFIG_XXX以及各种变量。实际上先了解makefile构建uboot的整个流程。我们才能最终知道构建Uboot编译了哪些文件。然后先编译一个rpi再编译几个其他板子,查看他们哪些编译是通用的。哪些编译是不通用的就知道移植一块板子
2016-10-10 14:57:41 1612
原创 最新uboot的Kbuild系统 3 .config的生成
前面的工作产生了一个conf关键点是由conf产生.config的过程最后是通过执行scripts/kconfig/conf --defconfig=arch/../configs/rpi_defconfig Kconfig 生成的Kconfig包含了当前目录中可以进行的一些配置信息。rpi_defconfig包含了默认的配置信息。conf根据rpi_defc
2016-10-10 11:06:46 2546 1
原创 最新uboot的Kbuild系统 2 make rpi_defconfig
查看 make rpi_defconfig 的执行过程匹配顶层Makefile中%config: scripts_basic outputmakefile FORCE$(Q)$(MAKE) $(build)=scripts/kconfig $@依赖于 scripts_basic outputmakefile。再展开后面命令为 ($(build)在include scrip
2016-10-10 09:41:03 1105
原创 最新uboot的Kbuild系统 1
linux kernel和最新的uboot都采用了kbuild来实现构建。所以有必要了解一下KBuild基础知识。KBuild是基于gnu make 实现的一个内核构建系统,也就是对于gnu make的扩展,将公共的一些部分提取到scripts/makefile.build中,一些使用的函数提取到scripts/makefile.lib中。通过在顶层的makefile中in
2016-10-09 14:10:01 2503 1
原创 uboot的makefile过程
这里使用的是树莓派的来做解析 https://github.com/gonzoua/u-boot-pi使用的命令是make ARCH=arm CROSS_COMPILE=/xx/xxx/xx/arm-linux-gnueabihf- rpi_b开始编译## (C) Copyright 2000-2012# Wolfgang Denk, DENX Software Enginee
2016-10-08 15:04:19 1947
原创 uboot的.boards.depend和make rpi_b
http://chxxxyg.blog.163.com/http://chxxxyg.blog.163.com/u-boot实现原理完全分析当我们uboot执行make rpi_b的时候。根本没有发现makefile里面没有rpi_b这个目标那么rpi_b这个目标是哪里来的呢?原来makefile中有这么一句:sinclude $(obj).boar
2016-10-08 14:39:28 1463
deepin-scrot2.0deb
2017-02-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人