自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ldzq_sue的博客

人生如逆旅,我亦是行人。

  • 博客(20)
  • 收藏
  • 关注

原创 linux内核常用宏container_of

linux内核常用宏container_of定义如下:/* linux-2.6.38.8/include/linux/kernel.h *  * container_of - cast a member of a structure out to the containing structure  * @ptr: the pointer to the member.  * @type:   the...

2018-05-23 17:20:45 255

原创 GNU C typeof

typeof 是 GNU C 标准里特有的扩展,标准的 ISO C 并没有这个关键字,所以在编译的时候不能加任何 ISO 的 C 标准选项,否则会报错。使用时加入-std=gnu90 即 GNU 的标准即可。typeof的作用类似与sizeof,区别在于sizeof是得到参数的大小而typeof则是推导出参数的类型。typeof的参数可以是两种形式:表达式或类型。 如:typeof(int *) ...

2018-05-23 17:20:12 298

原创 setjmp和longjmp

setjmp 和 longjmp 在C标准库<setjmp.h>中setjmp( jmp_buf j)必须首先被调用。它表示“使用变量 j 记录现在的位置。函数返回 0 ”。longjmp( jmp_buf j, int i)可以接着被调用。它表示“回到 j 所记录的位置,让它看上去像是从原先的 setjmp()函数返回一样,但函数返回 i,使代码能够知道它实际上是用过 longjmp...

2018-05-23 17:18:41 2913 2

原创 u-boot学习总结

1.移植前准备Ubuntu 配置ssh、tftp、nfs。烧写uboot前格式化SD卡。 1) Unsupported SD reader 2) /dev/sdb is NOT identified.Vmware出问题在控制面板->程序和功能->Vmware->更改,选择修复。uboot烧写后感觉SD卡没用,要先破坏板载iNand内的uboot。板子型号是smdkv21...

2018-05-23 17:16:08 1006 1

原创 uboot移植(二)

从 uboot 官方下载一个合适的 uboot,由于新版 uboot 采用了内核的配置方式,这里选用 2013.10 版本。下载地址:ftp://ftp.denx.de/pub/u-boot/在 uboot/board/samsung 文件夹下找到最接近板子的配置:s5p_goni,具体在 include/configs/s5p_goni.h 文件中可以看到定义了 #define CONFIG_S...

2018-04-02 20:39:43 309

原创 uboot移植(一)

这次移植是将三星移植过的 uboot 移植到九鼎的开发板上,难度不大,算是对之前 uboot 学习的一个阶段性的总结和回顾。一、 搭建 tftp 服务器,为测试启动内核做准备( 开发板用 tftp 方式下载内核到DDR )搭建 tftp 服务器参考网上资料,比如:http://www.linuxidc.com/Linux/2013-07/87366.htm测试 tftp 服务器 在

2017-11-10 12:21:10 557

原创 S5PV210-uboot解析(五)-do_bootm函数分析

在main_loop函数中倒计时结束后就执行 bootcmd 命令跳转到 do_bootm函数引导内核启动。/* * Legacy format image header, * all data in network byte order (aka natural aka bigendian). */typedef struct image_header {    

2017-11-04 21:05:59 545

原创 S5PV210-uboot解析(四)-main_loop函数分析

main_loop是在uboot启动最后阶段进行命令解析、引导内核的函数,在common/main.c中。#include #include #include #ifdef CONFIG_MODEM_SUPPORT#include       /* for free() prototype */#endif #ifdef CFG_HUSH_PARSER#

2017-11-03 15:03:55 324

原创 uboot启动阶段总结

uboot启动主要分为两个阶段,第一个阶段由start.S引导,主要进行SoC内部器件的初始化,代码运行在SRAM中。第二阶段由start_armboot引导,主要进行板级的硬件初始化,代码运行在DRAM中。uboot的启动过程:x210内部的iROM内的BL0代码:初始化系统时钟,特定设备(与启动介质相关)控制器并且启动设备BL0加载bootloader的前16KB到

2017-11-01 18:48:10 432

原创 S5PV210-uboot解析(三)-start_armboot解析

start_armboot解析start_armboot函数在lib_arm/board.c文件里,除了函数本身,还有一些用到了的定义和宏。S5PV210-uboot解析-start.S解析(二)-gd_t和init_sequence函数.notetypedef int (init_fnc_t) (void);这里定义的是一个函数类型,不是函数指针。下面是正

2017-10-31 08:40:58 405

原创 S5PV210-uboot解析(三)-start_armboot解析-gd_t和init_sequence函数指针数组

#define DECLARE_GLOBAL_DATA_PTR     register volatile gd_t *gd asm ("r8")这个宏用来定义gd_t类型的gd指针,后面的asm ("r8")代表指定arm里的r8寄存器存储。gd_t里面存储着很多全局变量供整个uboot使用,里面还有个bd_t存放了开发板的硬件相关的参数,这里用宏定义来声明这个变量,需要用到gd_t的地方就

2017-10-30 13:31:07 491

原创 S5PV210-uboot解析(二)-start.S解析

start.S解析(一)首先是头文件包含#include #include #if defined(CONFIG_ENABLE_MMU)#include #endif#include  #ifndef CONFIG_ENABLE_MMU#ifndef CFG_PHY_UBOOT_BASE#define CFG_PHY_UBOOT_BASE C

2017-10-27 16:15:29 1096

原创 S5PV210-uboot解析(二)-start.S解析-lowlevel_init函数分析

lowlevel_init函数分析lowlevel_init函数是uboot启动阶段调用的第一个函数,主要功能就是初始化S5PV210的各个硬件部分。#include #include  #include #include "smdkc110_val.h"包含头文件,主要是s5pc110.h文件,里面包含了板子的硬件寄存器的地址。lo

2017-10-26 15:55:42 759

原创 S5PV210-uboot解析(一)-mkconfig分析

mkconfig分析首先要注意一点,mkconfig文件是用来配置主Makefile中的一些参数的,但mkconfig文件本身并不是Makefile,Makefile文件只有文件名为Makefile或makefile以及后缀名为.mk的文件才是Makefile文件。mkconfig文件是一个shell脚本。在主Makefile的后半段有对uboot的配置相关的命令,如下:x

2017-10-23 18:00:21 383

原创 S5PV210-uboot解析(一)-主Makefile分析

主Makefile分析——uboot源码是由九鼎创展移植的三星S5PV210(s5pc11x)板子的uboot。uboot的主Makefile在uboot源码的根目录下。首先是简介,随后是定义了四个变量,用来描述uboot的版本信息。VERSION = 1PATCHLEVEL = 3SUBLEVEL = 4EXTRAVERSION =U_BOOT

2017-10-23 17:56:37 819

原创 C语言typeof详解

typeof 是 GNU C 标准里特有的扩展,标准的 ISO C 并没有这个关键字,所以在编译的时候不能加任何 ISO 的 C 标准选项,否则会报错。使用时加入-std=gnu90 即 GNU 的标准即可。typeof的作用类似与sizeof,区别在于sizeof是得到参数的大小而typeof则是推导出参数的类型。typeof的参数可以是两种形式:表达式或类型。如:typeof(in

2017-07-25 21:55:55 2366

原创 fdisk命令找不到的解决方法

最近买了个移动硬盘装Linux,结果发现Windows下由于Linux采用ext4文件系统而Windows识别不了无法在Windows下拷贝文件,遂打算在Linux里创建新的分区。分区时发现所需的命令fdisk找不到,如下movable-sue@movable-sue-PC:~$ fdiskbash: fdisk: 未找到命令解决办法:将fdisk添加到命令搜索路径中方

2017-07-24 21:17:37 11971 1

原创 ARM ldr与adr指令对比

adr指令与ldr指令,都是加载,而他们的区别在于:     adr指令加载符号时加载运行地址(相对位置),编译器编译后改成add指令或sub指令     ldr指令加载符号时加载链接地址(绝对位置),编译器编译后仍是ldr指令(原来的ldr是伪指令)。实际测试以下程序:.global _start_start:    adr r0, _start 

2016-11-28 20:49:47 546

转载 Vi/Viim查找替换方法

vi/vim 中可以使用 :s 命令来替换字符串。该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询。     :s/vivian/sky/ 替换当前行第一个 vivian 为 sky     :s/vivian/sky/g 替换当前行所有 vivian 为 sky     :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行

2016-11-10 09:13:03 654

原创 Linux下执行可执行文件提示:No such file or directory的解决方法

最近在Linux下安装交叉编译链工具,解压完成后执行却提示:No such file or directory。查了一下发现我是64位的Ubuntu系统但是执行的是32位程序,缺少32位lib库所以无法执行。  tips: uname命令可打印系统信息file命令可打印文件信息   解决方法: 安装i386架构及系列库  root权限下 dpkg --add-archite

2016-11-09 12:38:16 8504

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除