自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SdustLiYang的专栏

厚积薄发

  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

转载 使用 Addr2line 将函数地址解析为函数名

Addr2line 工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具。这种功能对于将跟踪地址转换成更有意义的内容来说简直是太棒了。要了解这个过程是怎样工作的,我们可以试验一个简单的交互式的例子。(我直接从 shell 中进行操作,因为这是最简单地展示这个过程的方法,如清单 4 所示。)这个示例 C 文件(tes

2013-08-28 09:28:56 1276

转载 于关u-boot中的.balignl 16,0xdeadbeef的理解

原文http://haoyeren.blog.sohu.com/84511571.html最近在分析u-boot的源代码,看到这一行:.balignl 16,0xdeadbeef不理解了,不知道为什么要这样写,0xdeadbeef,明显是个单词组,写在这里有何意义呢?然后在查阅了众多资料的时候才晃然大悟。下面我一步步来说明:首先要弄明白.balignl的意思

2013-08-26 10:22:22 754

转载 built-in function

最近在看linux内核剖析,想在windows下用mingw进行编译,可今天在编译string.c时出现一下提示warning: conflicting types for built-in function 'strchr'后来查了资料也弄明白,在C语言标准中,有些通用函数被定义为built-in function(内建函数),像printf,strchr,memset等

2013-08-17 16:19:18 1029

转载 warning: target CPU does not support interworking 解决办法

warning: target CPU does not support interworking 解决:       一看就知道是跟CPU有关,到u-boot根目录下执行 #vi "cpu/arm920t/config.mk" 把 PLATFORM_CPPFLAGS += -march=armv4 改成 PLATFORM_CPPFLAGS += -march=ar

2013-08-17 10:31:01 1885 1

转载 uboot源码下载

uboot源码所有版本的u-boot源代码压缩包都可以在ftp://ftp.denx.de/pub/u-boot/下载。关于u-boot源代码的信息,看http://www.denx.de/wiki/U-Boot/SourceCode

2013-08-14 10:33:36 743

转载 uboot源码下载

uboot源码所有版本的u-boot源代码压缩包都可以在ftp://ftp.denx.de/pub/u-boot/下载。关于u-boot源代码的信息,看http://www.denx.de/wiki/U-Boot/SourceCode

2013-08-14 10:33:05 838

转载 ARM指令集与Thumb指令集的区别

一、现在先区分下ARM指令集与Thumb指令集       Thumb 指令可以看作是 ARM 指令压缩形式的子集,是针对代码密度的问题而提出的,它具有 16 位的代码密度但是它不如ARM指令的效率高 .Thumb 不是一个完整的体系结构,不能指望处理只执行Thumb 指令而不支持 ARM 指令集.因此,Thumb 指令只需要支持通用功能,必要时可以借助于完善的 ARM 指令集,比如,所有异常

2013-08-11 15:47:20 2554

转载 ARM处理器模式切换(含MRS,MSR指令)

除了用户模式和系统模式,其余模式下都有一个私有SPSR保存状态寄存器,用来保存切换到该模式之前的执行状态,之所以用户模式和系统模式没有SPSR是因为,通常CPU大部分时间执行在用户模式下,当产生异常或系统调用时会分别切换进入另外几种模式,保存用户模式下的状态,当切换回原先模式时,直接回复SPSR的值到CPSR就可以了,因此,用户模式和系统模式下不需要SPSR,其详细操作查看下节异常处理。 

2013-08-09 20:22:41 1300

转载 ARM指令集

ARM指令集www.hxhack.com 阅读: ------------------------------------------------------------------ 特点:Load / Store结构(存储器操作仅包括load和store,所有其他操作在寄存器中完成)32位固定指令宽度3地址指令格式(即两个源操作数和结果寄存器都独立指定

2013-08-09 19:33:24 967

转载 uboot详细解读

大多数bootloader都分为stage1和stage2两部分,u-boot也不例外。依赖于CPU体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。1、Stage1 start.S代码结构 u-boot的stage1代码通常放在start.S文件中,他用汇编语言写成,其

2013-08-09 15:44:47 1308

转载 busybox编译

由于我的系统中缺少ncurses.h头文件,所以必须首先下载与之有关库    sudo apt-get install libncurses5-dev libncurses5-dbg libncurses51.下载busybox-1.21.0.tar.bz22.make menuconfig3.    Busybox Settings --->          Build

2013-08-09 14:41:43 839

转载 ldr指令详解

ARM指令集中,LDR通常都是作加载指令的,但是它也可以作伪指令。(1)LDR   r0,=name,像这种带等号的是伪指令,而不是ARM指令,LDR 伪指令用于加载立即数或一个地址值到指定寄存器.*如果name是立即数的话:LDR R0,=0X123;//将0X123存入R0       *如果name是个标识符:LDR R0,=NAME;//将NAME的地址存入R0      

2013-08-08 10:11:21 1750

转载 uboot main_loop分析

1。main_loopcommon/main.c main_loop又臭又长,去掉宏注释掉的部分就只剩下一点点了。如下: void main_loop (void){#ifndef CONFIG_SYS_HUSH_PARSER    static char lastcommand[CONFIG_SYS_CBSIZE] = {

2013-08-07 14:14:08 843

转载 Linux的bg和fg命令

我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的任务。假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示(方括号中的是作业号):[1]+ Stopped /roo

2013-08-07 08:43:38 730

转载 iostat、top查看系统性能统计\hdparm查看磁盘的速度

iostatiostat用于输出CPU和磁盘I/O相关的统计信息. 命令格式:iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ]  ]       [ interval [ count ] ]1)iostat的 简单使用i

2013-08-07 08:35:16 3416

转载 kill -l 查看signal

1)SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR213) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT17) SIGCHLD 18) S

2013-08-06 21:41:06 1022

转载 解决:busybox编译 fatal error: curses.h: 没有那个文件或目录

ubuntu11.04下编译busybox执行make menuconfig时出现如下错误@ubuntu:/home/dev/busybox-1.19.3# make menuconfig  HOSTCC  scripts/kconfig/lxdialog/checklist.oIn file included from scripts/kconfig/lxdialog/c

2013-08-06 17:10:33 3523

原创 start.s里面打印一个寄存器的值的汇编实现

/*a0 = addrt2 = *(addr)t4 for right shift*/LEAF(print_reg)  li t0,UART0_BASE_ADDR  li t1,10  lw t2,0(a0)  li    t4,32 1:  sub t4,4  move t3,t2  srl t3,t4  and t3,0xf  blt

2013-08-06 16:11:30 2210

转载 uboot中对.balignl和0xdeadbeef的理解

通过查看uboot源码顶层目录下的链接脚本u-boot.lds:点击(此处)折叠或打开OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS{. = 0x00000000;. = ALIGN(4);.te

2013-08-06 13:20:56 2100

转载 使用telnet来进行远程调试和开多终端

板子要有个 telnetd -l /bin/sh 的进程。然后配好IP,能ping通即可,有线无线皆可。然后:telnet 192.168.1.121即可。优点: 1.可以远程控制,调试2.可以开多个终端。

2013-08-06 10:03:03 1684

转载 利用tmux为板子开多个终端

优化性能时,时常要一直开着top,显示资源的使用状况,而同时又要有一个终端来操作一些命令。以前用telnet开多个终端,这种方法需要网络比较麻烦。也可以用tmux来为板子开多个终端,如下:tmux --- terminal mutiplexer类似screen。可以detach 会话,然后需要的时候再attach。转载自:https://wiki.freebsdchin

2013-08-06 09:58:05 1590

转载 arm mvn 指令

mvn:与mov指令用法差不多,唯一的区别是:它赋值的时候,先按位取反 eg1:   mvn r0,0xa0000007   执行结果:r0=0x5ffffff8  eg2:    mvn r0,#4执行结果:r0=-5 过程分析:先对4转换成2进制(00000100),取反(11111011),求其补码,因为是负数,所以先对其正数(01111011)求

2013-08-05 13:44:39 11441 2

转载 uboot lowlevel_init.S解析

/*下面不厌其烦地解析一下lowlevel_init.S这个原文件*/ #define BWSCON  0x48000000……#define Tchr                      0x2   /* 3clk */#define REFCNT                        0x0459/*****************************

2013-08-05 10:34:35 1663

转载 ARM LR寄存器

MOV PC,LR看下面这个ARM汇编吧BL NEXT ;跳转到子程序......... ;NEXT处执行NEXT..........MOV PC,LR ;从子程序返回这里的BL是跳转的意思,LR(R14)保存了返回地址PC(R15)是当前地址,把LR给PC就是从子程序返回这里有一下总结首先1.SP(R13) LR(R14)PC(R15)2.lr

2013-08-05 09:52:35 965

转载 shell脚本中的shift的用法

Shell编程中Shift的用法位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。非常有用的 Unix 命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值

2013-08-03 12:22:43 5941 1

转载 类vim软件-vimperator

chromuim中的vimium并不是很好用。so安装firefox version 20.0并在工具->附加组件中搜索安装vimperator3.7.1

2013-08-02 14:37:54 1131

转载 ARM的协处理器操作--mrc和mcr

MRC和MCR指令MCR指令的格式为:MCR{条件}协处理器编码,协处理器操作码1,源寄存器,目的寄存器1,目的寄存器2,协处理器操作码2。MCR指令用于将ARM处理器寄存器中的数据传送到协处理器寄存器中,若协处理器不能成功完成操作,则产生未定义指令异常。其中协处理器操作码1和协处

2013-08-02 11:12:54 1200

转载 ARM状态寄存器 CPSR SPSR

CPSR:程序状态寄存器(current program status register) ,cpsr在用户级编程时用于存储条件码。CPSR包含条件码标志,中断禁止位,当前处理器模式以及其他状态和控制信息。  SPSR:程序状态保存寄存器。SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。CPSR(当前程序状态寄存器)在任何处理器模式下被访问。它包含了条件标志

2013-08-02 10:13:01 2096

转载 Vimium 用 Vim 的方式利用键盘快捷地浏览网页

Vimium 和 Vimperator  的使用:Vimium 其实是一款 Chrome 浏览器中的插件,而 Vimperator 则是 FireFox 火狐浏览器的插件,虽然名字不同,但是他们的操作基本上没有什么区别,所以下面我就以介绍 Vimium 为主吧。Vimperator 的同学可以作为参考一下……Vimium 用 Vim 的方式利用键盘快捷地浏览网页

2013-08-01 16:54:35 2814

原创 PMON代码分析备忘

#ifndef _KERNEL#define _KERNEL#endif#include #include #include #include #include "pmon/dev/ns16550.h"#include "target/prid.h"#include "target/sbd.h"#include "target/hisense

2013-08-01 10:17:03 2748

linux设备驱动程序学习笔记.rar

整理的对LDD的学习笔记,非常适合新手入门看。。。

2011-01-14

空空如也

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

TA关注的人

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