自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

永久指针

2012 我来了~

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

转载 JLINK与JTAG的区别

调试arm,总要遵循arm的调试接口协议吧,jtag就是其中的一种。当仿真时,iar,keil,ads等等都有一个公共的调试接口,RDI就是其中的一种,那么我们如何完成RDI-->arm调试协议(JTAG)的转换呢?有两种做法: 1.在电脑上写一个服务程序,把keil,ads,iar中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气物理层上的转换,就像

2012-01-05 11:33:31 1400

转载 目标文件格式分析工具: ar,nm,objdump,objcopy,readelf

前言如果普通编程不需要了解这些东西,如果想精确控制你的目标文件的格式或者你想查看一下文件里的内容以便作出某种判断,那么你可以看一下下面的工具:ar,nm,objdump,objcopy。具体用法请参考man在线手册。ar基本用法    ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做

2012-01-04 16:31:11 952

转载 dwarf 调试信息格式入门

一个程序的完成过程一般是编码、编译、运行的过程,当然这是一个理想的过程,所有的开发几乎都不可能是一帆风顺的,总会有些意想不到的错误,这时便需要调试,良好的调试器应该每一个程序员的必备。那么调试器使用的调试信息是从哪里来的呢?答案简单的很,是从编译后的文件中来的(注意这里编译的时候要使用特定的编译选项,如VC使用debug模式,GCC使用”-g”)。在编译的时候,编译器会从源文件中收集大量的信息

2012-01-04 16:00:04 2432

转载 解读uCos中优先级判定表OSUnMapTbl原理

OSOSRdyTbl[0]的bit7-bit0对应于优先级7-0, OSOSRdyTbl[1]的bit7-bit0对应于优先级15-8, OSOSRdyTbl[2]的bit7-bit0对应于优先级23-16, OSOSRdyTbl[3]的bit7-bit0对应于优先级31-24, OSOSRdyTbl[4]的bit7-bit0对应于优先级39-32, OSOSRdyTbl[5]

2011-12-30 14:16:34 11051 3

转载 【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之三--U-BOOT在AT91RM9200上的移植

U-BOOT全线移植分析系列之三――U-BOOT在AT91RM9200上的移植 Sailor_forever sailing_9806@163.com转载请注明http://blog.csdn.net/sailor_8318/archive/2008/08/05/2773307.aspx 【摘要】本节介绍了U-boot在AT91RM9200上移植的详细过程。首先分析AT

2011-12-29 10:51:18 1669

转载 【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之二--U-boot基础

U-BOOT全线移植分析系列之二――U-boot基础Sailor_forever sailing_9806@163.com转载请注明http://blog.csdn.net/sailor_8318/archive/2008/08/04/2768049.aspx 【摘要】本节介绍了U-boot的基本概念。首先介绍了U-boot源代码的目录结构,并给出了一个实例。接着简单介绍了

2011-12-29 10:50:32 1036

转载 【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之一--BOOTLOADER介绍

U-BOOT全线移植分析系列之一――――BOOTLOADER介绍Sailor_forever sailing_9806@163.com转载请注明http://blog.csdn.net/sailor_8318/archive/2008/08/04/2768049.aspx  【摘要】本节介绍了bootloader的基本概念。首先分析了为什么要针对特定的CPU和开发板移植

2011-12-29 10:49:55 1176

转载 ARM指令集

原文:http://www.eefocus.com/article/08-08/49787s.htmlARM指令集 6种类型(53种主要助记符) : 数据处理指令(22种主要助记符) 跳转指令(4种主要助记符) Load/Store指令(16种主要助记符) 程序状态寄存器指令(2种主要助记符) 协处理器指令(5种主要助记符) 软件中断指令 (2种主要助记符)

2011-12-29 10:31:53 1504

转载 ARM指令格式和寻址方式

原文:http://www.eefocus.com/article/08-08/49786s.htmlARM指令的编码格式 实际指令语法格式为: ADDEQS R0,R1,R2; 该指令的编码格式为: ARM指令的助记符 ARM指令在汇编程序中用助记符表示,一般ARM指令的助记符格式为: {} {S} ,, 其中: 操作码,如ADD表示算术加操作指

2011-12-29 10:30:36 10356 1

转载 ARM编程模型

原文:http://www.eefocus.com/article/08-08/49601s.htmlARM寻址方式与指令系统 ARM编程模型 ARM指令格式和寻址方式 ARM指令集 Thumb指令集 机器指令、伪指令和宏指令 机器指令:能被处理器直接执行,而伪指令宏和宏指令不能。机器指令包括ARM指令集和Thumb指令集 ; 伪指令:在源程序汇编期间,由汇编编

2011-12-29 10:28:57 1312

转载 uboot之start.s分析

开始start.s分析,根据S3C2410来跟踪代码,参考了S3C2410的datasheet和网上各个帖子一般来说,大家都是从start.s来分析UBOOT,但是事实是流程是从makefile中来的,也就是说是在敲入make smdk2410_config和make all后才进入start.s中,makefile在这里不做分析,韦东山的那本书有详细的说明,这里要提到的是makefile传进

2011-12-29 10:25:01 858

转载 手动建立makefile简单实例解析!

假设我们有一个程序由5个文件组成,源代码如下:/*main.c*/#include "mytool1.h"#include "mytool2.h"int main(){        mytool1_print("hello mytool1!");        mytool2_print("hello mytool2!");        return

2011-12-29 10:19:14 934 1

转载 Linker Script,LMA,VMA

以前在学ld的script时两个比较重要的概念,即指定一个输出section的lma和vma(分别是load memory address和virtual memory address),vma的作用是很明显地,就是决定run time address嘛,但lma有什么用呢?恩,对运行在linux这样的操作系统上面的应用程序来说,是没什么用的,毕竟应用程序都是被'load'到虚拟地址空间中。但是在

2011-12-29 10:05:38 1034

转载 关于uboot.lds文件的分析

原文:http://blog.163.com/shenmou/blog/static/1082062201072592830134/ gcc等编译器内置有缺省的连接脚本。如果采用缺省脚本,则生成的目标代码需要操作系统才能加载运行。为了能在嵌入式系统上直接运行,需要编写自己的连接脚本文件。编写连接脚本,首先要对目标文件的格式有一定了解。GNU编译器生成的目标文件缺省为elf格式。elf文件由若干

2011-12-29 10:04:48 710

转载 汇编语言基础之 移位指令

原文:http://bdxnote.blog.163.com/blog/static/移位指令是一组经常使用的指令,包括:算数移位、逻辑移位、双精度移位、循环移位、带进位的循环移位;移位指令都有一个指定需要移动的二进制位数的操作数,该操作数可以是立即数,也可以是CL的值;在8086中,该操作数只能是1,但是在其后的CPU中,该立即数可以是定义域[1,31]之内的数;一、算数移位指令:

2011-12-28 16:57:47 3102

转载 关于项目管理的思考

原文:http://blog.csdn.net/wwwxuhong/article/details/222804项目管理是个很大的课题所有的事物都有其规律项目管理的规律是什么?前几天看到一个理论让我眼睛一亮,陈述如下,希望对大家有点启发PDCA循环是由美国统计学家戴明博士提出来的,它反映了质量管理活动的规律。P(Plan)表示计划;D(Do)表示执行;C(Check

2011-12-20 20:57:09 900

转载 进程间通信方式总结(windows 和linux)

原文:http://blog.163.com/laylau_ll/blog/static/178625909201173131345423/平时看的书很多,了解的也很多,但不喜欢总结,这不昨天面试的时候被问到了进程间通信的方式,因为没有认真总结过,所以昨天答得不是特别好。现在将linux和windows的进程间通信方式好好总结一下。          windows的进程间的通信方式有

2011-12-19 22:01:05 2299

转载 a 和&a的区别

void main(){int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));}打印出来的值为多少呢?对指针进行加 1 操作,得到的是下一个元素的地址,而不是原有地址值直接加 1。所以,一个类型为 T 的指针的移动,以 sizeof(T) 为移动单位。 因此,对上题

2011-12-19 21:56:47 1145

转载 #运算符 ##预算符

#也是预处理?是的,你可以这么认为。那怎么用它呢? 别急,先看下面例子:#define SQR(x) printf("The square of x is %d.\n", ((x)*(x)));如果这样使用宏:SQR(8);则输出为:The square of x is 64.注意到没有,引号中的字符 x 被当作普通文本来处理,而不是被当作一个可以被替换的语言符号。

2011-12-19 21:53:12 964

原创 C笔试题(判断大端小端模式及大小端模式转换)

判断大端小端模式int checkEndion( void ){    union check    {        int i;        char ch;    }c;    c.i = 1;    return (c.ch ==1);}变量 i 占 4 个字节,但只有一个字节的值为 1,另外三个字节的值都为 0。如果取出低地址上的值为 0

2011-12-19 21:50:42 5174

转载 Linux实现 memcpy和memmove

/** * memcpy - Copy one area of memory to another * @dest: Where to copy to * @src: Where to copy from * @count: The size of the area. * * You should not use this function to access IO spa

2011-12-19 17:51:34 931

原创 如何不用sizeof判断操作系统的位数

void main(int argc,char** argv){   typedef char * PType;    PType array[2];    char *p0 = (char *)&array[0];    char *p1 = (char *)&array[1];    printf("%d",8*(p1 - p0));}常用数据类型对应字

2011-12-19 17:50:16 1901

转载 剖析程序的内存布局

原文:http://blog.csdn.net/drshenlei/article/details/4350928原文标题:Anatomy of a Program in Memory原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下。一来自己复习,二来与大家分享。]     内存

2011-12-14 16:47:06 676

原创 内核是如何管理内存的?

原文:http://blog.csdn.net/drshenlei/article/details/4350928 原文标题:How The Kernel Manages Your Memory原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下。一来自己复习,二来与大家分享。]

2011-12-14 16:45:43 667

转载 CALLBACK, WINAPI, AFXAPI和函数调用方式

原文:http://blog.163.com/patmusing/blog/static/13583496020103233446784/(VC编译器下) 1. CALLBACK,WINAPI和AFXAPI到底是什么?它们分别在什么地方被定义的?在头文件windef.h中,CALLBACK, WINAPI, APIENTRY……#define CALLBACK  __s

2011-12-06 09:41:47 798

转载 Ubuntu 10.04 下ssh,ftp,tftp服务配置

原文:http://blog.csdn.net/axdc_qa_team/article/details/6658717Ubuntu 10.04下SSH, FTP ,TFTP的配置过程一、SSH的配置过程1、安装和设置OpenSSH Server在Ubuntu和debian类的系统中,默认是没有安装OpenSSH Server 的,其安装命令为:# apt-get inst

2011-12-03 20:10:08 767

转载 玩转ptrace(二)

转自:http://blog.csdn.net/silentvoid/article/details/1477515by Pradeep PadalaCreated 2002-11-01 02:00翻译: Magic.D 在第一部分中我们已经看到ptrace怎么获取子进程的系统调用以及改变系统调用的参数。在这篇文章中,我们将要研究如何在子进程中设置断点和往运行中的程序里插入

2011-12-01 09:37:44 1248

转载 玩转ptrace(一)

转自:http://blog.csdn.net/silentvoid/article/details/1477439by Pradeep PadalaCreated 2002-11-01 02:00翻译: Magic.D E-mail: adamgic@163.com译者序:在开发Hust Online Judge的过程中,查阅了不少资料,关于调试器技术的资料在网上是很少,

2011-12-01 09:36:10 906

转载 STL中容器的几个容易混淆的成员函数-size, capacity, resize, reserve

1. container::size()用于表示容器中有几个元素,用n来表示, 并不能表示容器现有的内存最多能存多少个元素。 2. container::capacity()用于表示容器现有的内存最多能够存放多少个元素, 用m来表示。 如果想要计算容器现有的内存还能够存放几个元素 = capacity() - size(); 3. container::resize(siz

2011-11-22 16:58:57 593

转载 C++ 之“友元类”学习笔记

=======================什么是友元类=======================      当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。=======================友元类能做什么=======================      友元类可以通过自己的方法来访问把它当

2011-11-22 13:37:06 710

转载 OGRE架构

Root:是ORGE核心系统的一部分,必须在所有ORGE对象产生之前初始化,并在所有ORGE对象销毁之后销毁,用来配置系统。RenderSystem:是用来发送渲染操作的系统。它是一个抽象类,而另外拥有不同的实现。(OpenGL, DirectX)。SceneManager:除Root对象外最重要的ORGE部件。它创建和管理摄象机,可移动物体,灯光和材质,以及不可移动的场景的材质(如天空,

2011-11-21 17:09:51 1249

转载 STL中map用法详解

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有

2011-11-21 14:27:12 697

转载 OCTREE 教程

对OCTREE的描述  OCTREE 是对3D空间进行划分,也可以叫空间分割。他允许你只对你的3D世界中摄象机照射的区域进行作画。他也能用于冲突检测。下面讲一下为什么要进行空间分割。假设你建立了一个游戏世界,这个世界有超过100,000个多边形要画。如果你建立一个循环并传递这些多边形,那速度是很慢的。即使你有一块很好的显示卡,他也会有很大的麻烦。但是玩你游戏的玩家的显示卡不会超过300$。

2011-11-21 13:29:29 844

转载 四叉树与八叉树

前序四叉树或四元树也被称为Q树(Q-Tree)。四叉树广泛应用于图像处理、空间数据索引、2D中的快速碰撞检测、存储稀疏数据等,而八叉树(Octree)主要应用于3D图形处理。对游戏编程,这会很有用。本文着重于对四叉树与八叉树的原理与结构的介绍,帮助您在脑海中建立四叉树与八叉树的基本思想。本文并不对这两种数据结构同时进行详解,而只对四叉树进行详解,因为八叉树的建立可由四叉树的建立推得。若有不足之

2011-11-20 14:36:55 1230

转载 《见与不见》

《见与不见》   你见,或者不见我   我就在那里   不悲不喜   你念,或者不念我   情就在那里   不来不去  你爱,或者不爱我   爱就在那里   不增不减   你跟,或者不跟我   我的手就在你手里   不舍不弃   来我的怀里   或者   让我住进你的心里  默然相爱   寂静欢喜

2011-11-19 20:56:11 600

原创 用StartUML生成GoF设计模式类图与代码(c++)

先介绍一下startUMLStarUML(http://www.staruml.com)的前身是Plastic,从1996年开始开发。1998年开始,Plastic转变为UML建模工具。2005年改名为StarUML,最新版本StarUML 5.0已经是一款功能全面的产品,支持UML2.0,支持MDA,Java、C++、C#转换,MS-Office集成,XMI等。

2011-11-18 10:37:03 8892 1

转载 一个Linux下C线程池的实现

什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。   下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。   p

2011-11-17 14:24:30 703

转载 Unix 调试的瑞士军刀:lsof

这是“你应该知道的Unix和Linux命令”系列的第三篇,在这篇文章中,我会介绍lsof这个工具,如果说netcat是进行网络诊断的瑞士军刀,那么lsof就是Unix调试的瑞士军刀。Lsof是遵从Unix哲学的典范,它只做一件事情,并且做的相当完美——它可以列出某个进程打开的所有文件信息。打开的文件可能是普通的文件,目录,NFS文件,块文件,字符文件,共享库,常规管道,明明管道,符号链接,So

2011-11-17 10:19:18 645

原创 ascii tool - Ascii Art Studio

2011-11-16 17:51:58 947

转载 Posix 多线程编程—线程属性

一.线程属性线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。1.名称:pthread_attr_init/pthread_attr_destroy功能:对线程属性初始化/去除初始化头文件:#includ

2011-11-16 17:38:11 501

空空如也

空空如也

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

TA关注的人

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