- 博客(30)
- 资源 (1)
- 收藏
- 关注
转载 使用 Addr2line 将函数地址解析为函数名
Addr2line 工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具。这种功能对于将跟踪地址转换成更有意义的内容来说简直是太棒了。要了解这个过程是怎样工作的,我们可以试验一个简单的交互式的例子。(我直接从 shell 中进行操作,因为这是最简单地展示这个过程的方法,如清单 4 所示。)这个示例 C 文件(tes
2013-08-28 09:28:56 1297
转载 于关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 774
转载 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 1051
转载 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 1993 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 760
转载 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 859
转载 ARM指令集与Thumb指令集的区别
一、现在先区分下ARM指令集与Thumb指令集 Thumb 指令可以看作是 ARM 指令压缩形式的子集,是针对代码密度的问题而提出的,它具有 16 位的代码密度但是它不如ARM指令的效率高 .Thumb 不是一个完整的体系结构,不能指望处理只执行Thumb 指令而不支持 ARM 指令集.因此,Thumb 指令只需要支持通用功能,必要时可以借助于完善的 ARM 指令集,比如,所有异常
2013-08-11 15:47:20 2580
转载 ARM处理器模式切换(含MRS,MSR指令)
除了用户模式和系统模式,其余模式下都有一个私有SPSR保存状态寄存器,用来保存切换到该模式之前的执行状态,之所以用户模式和系统模式没有SPSR是因为,通常CPU大部分时间执行在用户模式下,当产生异常或系统调用时会分别切换进入另外几种模式,保存用户模式下的状态,当切换回原先模式时,直接回复SPSR的值到CPSR就可以了,因此,用户模式和系统模式下不需要SPSR,其详细操作查看下节异常处理。
2013-08-09 20:22:41 1325
转载 ARM指令集
ARM指令集www.hxhack.com 阅读: ------------------------------------------------------------------ 特点:Load / Store结构(存储器操作仅包括load和store,所有其他操作在寄存器中完成)32位固定指令宽度3地址指令格式(即两个源操作数和结果寄存器都独立指定
2013-08-09 19:33:24 990
转载 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 1326
转载 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 859
转载 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 1929
转载 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 861
转载 Linux的bg和fg命令
我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的任务。假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示(方括号中的是作业号):[1]+ Stopped /roo
2013-08-07 08:43:38 741
转载 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 3451
转载 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 1049
转载 解决: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 3542
原创 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 2235
转载 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 2133
转载 使用telnet来进行远程调试和开多终端
板子要有个 telnetd -l /bin/sh 的进程。然后配好IP,能ping通即可,有线无线皆可。然后:telnet 192.168.1.121即可。优点: 1.可以远程控制,调试2.可以开多个终端。
2013-08-06 10:03:03 1728
转载 利用tmux为板子开多个终端
优化性能时,时常要一直开着top,显示资源的使用状况,而同时又要有一个终端来操作一些命令。以前用telnet开多个终端,这种方法需要网络比较麻烦。也可以用tmux来为板子开多个终端,如下:tmux --- terminal mutiplexer类似screen。可以detach 会话,然后需要的时候再attach。转载自:https://wiki.freebsdchin
2013-08-06 09:58:05 1652
转载 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 11816 2
转载 uboot lowlevel_init.S解析
/*下面不厌其烦地解析一下lowlevel_init.S这个原文件*/ #define BWSCON 0x48000000……#define Tchr 0x2 /* 3clk */#define REFCNT 0x0459/*****************************
2013-08-05 10:34:35 1683
转载 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 976
转载 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 6016 1
转载 类vim软件-vimperator
chromuim中的vimium并不是很好用。so安装firefox version 20.0并在工具->附加组件中搜索安装vimperator3.7.1
2013-08-02 14:37:54 1149
转载 ARM的协处理器操作--mrc和mcr
MRC和MCR指令MCR指令的格式为:MCR{条件}协处理器编码,协处理器操作码1,源寄存器,目的寄存器1,目的寄存器2,协处理器操作码2。MCR指令用于将ARM处理器寄存器中的数据传送到协处理器寄存器中,若协处理器不能成功完成操作,则产生未定义指令异常。其中协处理器操作码1和协处
2013-08-02 11:12:54 1221
转载 ARM状态寄存器 CPSR SPSR
CPSR:程序状态寄存器(current program status register) ,cpsr在用户级编程时用于存储条件码。CPSR包含条件码标志,中断禁止位,当前处理器模式以及其他状态和控制信息。 SPSR:程序状态保存寄存器。SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。CPSR(当前程序状态寄存器)在任何处理器模式下被访问。它包含了条件标志
2013-08-02 10:13:01 2163
转载 Vimium 用 Vim 的方式利用键盘快捷地浏览网页
Vimium 和 Vimperator 的使用:Vimium 其实是一款 Chrome 浏览器中的插件,而 Vimperator 则是 FireFox 火狐浏览器的插件,虽然名字不同,但是他们的操作基本上没有什么区别,所以下面我就以介绍 Vimium 为主吧。Vimperator 的同学可以作为参考一下……Vimium 用 Vim 的方式利用键盘快捷地浏览网页
2013-08-01 16:54:35 2853
原创 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 2778
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人