<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[永久指针]]></title><description><![CDATA[2012 我来了～]]></description><link>https://blog.youkuaiyun.com/Bresponse</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Bresponse]]></copyright><item><title><![CDATA[JLINK与JTAG的区别]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7177620</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7177620</guid><author>Bresponse</author><pubDate>Thu, 05 Jan 2012 11:33:31 +0800</pubDate><description><![CDATA[调试arm，总要遵循arm的调试接口协议吧,jtag就是其中的一种。当仿真时，iar,keil,ads等等都有一个公共的调试接口,RDI就是其中的一种，那么我们如何完成RDI-->arm调试协议(JTAG)的转换呢？有两种做法：
 
1.在电脑上写一个服务程序，把keil,ads,iar中的RDI命令解析成相关的JTAG协议，然后通后一个物理转换接口（注意，这个转换只是电气物理层上的转换，就像]]></description><category></category></item><item><title><![CDATA[目标文件格式分析工具: ar,nm,objdump,objcopy,readelf]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7175468</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7175468</guid><author>Bresponse</author><pubDate>Wed, 04 Jan 2012 16:31:11 +0800</pubDate><description><![CDATA[前言


如果普通编程不需要了解这些东西，如果想精确控制你的目标文件的格式或者你想查看一下文件里的内容以便作出某种判断，那么你可以看一下下面的工具：ar,nm,objdump,objcopy。具体用法请参考man在线手册。

ar基本用法



    ar命令可以用来创建、修改库，也可以从库中提出单个模块。库是一单独的文件，里面包含了按照特定的结构组织起来的其它的一些文件（称做]]></description><category></category></item><item><title><![CDATA[dwarf 调试信息格式入门]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7175271</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7175271</guid><author>Bresponse</author><pubDate>Wed, 04 Jan 2012 16:00:04 +0800</pubDate><description><![CDATA[一个程序的完成过程一般是编码、编译、运行的过程，当然这是一个理想的过程，所有的开发几乎都不可能是一帆风顺的，总会有些意想不到的错误，这时便需要调试，良好的调试器应该每一个程序员的必备。
那么调试器使用的调试信息是从哪里来的呢？答案简单的很，是从编译后的文件中来的(注意这里编译的时候要使用特定的编译选项，如VC使用debug模式，GCC使用”-g”)。在编译的时候，编译器会从源文件中收集大量的信息]]></description><category></category></item><item><title><![CDATA[解读uCos中优先级判定表OSUnMapTbl原理]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7164895</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7164895</guid><author>Bresponse</author><pubDate>Fri, 30 Dec 2011 14:16:34 +0800</pubDate><description><![CDATA[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]]]></description><category></category></item><item><title><![CDATA[【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之三－－U-BOOT在AT91RM9200上的移植]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7161184</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7161184</guid><author>Bresponse</author><pubDate>Thu, 29 Dec 2011 10:51:18 +0800</pubDate><description><![CDATA[U-BOOT全线移植分析系列之三
――U-BOOT在AT91RM9200上的移植
 
Sailor_forever 
sailing_9806@163.com转载请注明
http://blog.youkuaiyun.com/sailor_8318/archive/2008/08/05/2773307.aspx
 
【摘要】本节介绍了U-boot在AT91RM9200上移植的详细过程。首先分析AT]]></description><category></category></item><item><title><![CDATA[【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之二－－U-boot基础]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7161178</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7161178</guid><author>Bresponse</author><pubDate>Thu, 29 Dec 2011 10:50:32 +0800</pubDate><description><![CDATA[U-BOOT全线移植分析系列之二
――U-boot基础
Sailor_forever 
sailing_9806@163.com转载请注明
http://blog.youkuaiyun.com/sailor_8318/archive/2008/08/04/2768049.aspx
 
【摘要】本节介绍了U-boot的基本概念。首先介绍了U-boot源代码的目录结构，并给出了一个实例。接着简单介绍了]]></description><category></category></item><item><title><![CDATA[【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之一－－BOOTLOADER介绍]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7161174</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7161174</guid><author>Bresponse</author><pubDate>Thu, 29 Dec 2011 10:49:55 +0800</pubDate><description><![CDATA[U-BOOT全线移植分析系列之一
――――BOOTLOADER介绍
Sailor_forever 
sailing_9806@163.com转载请注明
http://blog.youkuaiyun.com/sailor_8318/archive/2008/08/04/2768049.aspx
 
 
【摘要】本节介绍了bootloader的基本概念。首先分析了为什么要针对特定的CPU和开发板移植]]></description><category></category></item><item><title><![CDATA[ARM指令集]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7161107</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7161107</guid><author>Bresponse</author><pubDate>Thu, 29 Dec 2011 10:31:53 +0800</pubDate><description><![CDATA[原文:http://www.eefocus.com/article/08-08/49787s.html
ARM指令集 
6种类型（53种主要助记符） ： 
数据处理指令（22种主要助记符） 
跳转指令（4种主要助记符） 
Load/Store指令（16种主要助记符） 
程序状态寄存器指令（2种主要助记符） 
协处理器指令（5种主要助记符） 
软件中断指令 （2种主要助记符）]]></description><category></category></item><item><title><![CDATA[ARM指令格式和寻址方式]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7161099</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7161099</guid><author>Bresponse</author><pubDate>Thu, 29 Dec 2011 10:30:36 +0800</pubDate><description><![CDATA[原文:http://www.eefocus.com/article/08-08/49786s.html

ARM指令的编码格式 
实际指令语法格式为： 
ADDEQS R0,R1,R2; 
该指令的编码格式为： 


ARM指令的助记符 
ARM指令在汇编程序中用助记符表示，一般ARM指令的助记符格式为： 
{} {S} ,, 
其中： 
 操作码，如ADD表示算术加操作指]]></description><category></category></item><item><title><![CDATA[ARM编程模型]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7161095</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7161095</guid><author>Bresponse</author><pubDate>Thu, 29 Dec 2011 10:28:57 +0800</pubDate><description><![CDATA[原文：http://www.eefocus.com/article/08-08/49601s.html
ARM寻址方式与指令系统 
ARM编程模型 
ARM指令格式和寻址方式 
ARM指令集 
Thumb指令集 

机器指令、伪指令和宏指令 
机器指令：能被处理器直接执行，而伪指令宏和宏指令不能。机器指令包括ARM指令集和Thumb指令集 ； 
伪指令：在源程序汇编期间，由汇编编]]></description><category></category></item><item><title><![CDATA[uboot之start.s分析]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7161082</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7161082</guid><author>Bresponse</author><pubDate>Thu, 29 Dec 2011 10:25:01 +0800</pubDate><description><![CDATA[开始start.s分析，根据S3C2410来跟踪代码，参考了S3C2410的datasheet和网上各个帖子
一般来说，大家都是从start.s来分析UBOOT，但是事实是流程是从makefile中来的，也就是说是在敲入make smdk2410_config和make all后才进入start.s中，makefile在这里不做分析，韦东山的那本书有详细的说明，这里要提到的是makefile传进]]></description><category></category></item><item><title><![CDATA[手动建立makefile简单实例解析！]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7161053</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7161053</guid><author>Bresponse</author><pubDate>Thu, 29 Dec 2011 10:19:14 +0800</pubDate><description><![CDATA[假设我们有一个程序由5个文件组成，源代码如下：

/*main.c*/

#include "mytool1.h"
#include "mytool2.h"

int main()
{
        mytool1_print("hello mytool1!");
        mytool2_print("hello mytool2!");
        return]]></description><category></category></item><item><title><![CDATA[Linker Script，LMA，VMA]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7161000</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7161000</guid><author>Bresponse</author><pubDate>Thu, 29 Dec 2011 10:05:38 +0800</pubDate><description><![CDATA[以前在学ld的script时两个比较重要的概念，即指定一个输出section的lma和vma(分别是load memory address和virtual memory address)，vma的作用是很明显地，就是决定run time address嘛，但lma有什么用呢？恩，对运行在linux这样的操作系统上面的应用程序来说，是没什么用的，毕竟应用程序都是被'load'到虚拟地址空间中。但是在]]></description><category></category></item><item><title><![CDATA[关于uboot.lds文件的分析]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7160992</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7160992</guid><author>Bresponse</author><pubDate>Thu, 29 Dec 2011 10:04:48 +0800</pubDate><description><![CDATA[原文:http://blog.163.com/shenmou/blog/static/1082062201072592830134/
 gcc等编译器内置有缺省的连接脚本。如果采用缺省脚本，则生成的目标代码需要操作系统才能加载运行。为了能在嵌入式系统上直接运行，需要编写自己的连接脚本文件。编写连接脚本，首先要对目标文件的格式有一定了解。GNU编译器生成的目标文件缺省为elf格式。elf文件由若干]]></description><category></category></item><item><title><![CDATA[汇编语言基础之 移位指令]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7109442</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7109442</guid><author>Bresponse</author><pubDate>Wed, 28 Dec 2011 16:57:47 +0800</pubDate><description><![CDATA[原文:http://bdxnote.blog.163.com/blog/static/
移位指令是一组经常使用的指令,包括:算数移位、逻辑移位、双精度移位、循环移位、带进位的循环移位;
移位指令都有一个指定需要移动的二进制位数的操作数,该操作数可以是立即数,也可以是CL的值;在8086中,该操作数只能是1,但是在其后的CPU中,该立即数可以是定义域[1,31]之内的数;
一、算数移位指令:]]></description><category></category></item><item><title><![CDATA[关于项目管理的思考]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7089283</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7089283</guid><author>Bresponse</author><pubDate>Tue, 20 Dec 2011 20:57:09 +0800</pubDate><description><![CDATA[原文：http://blog.youkuaiyun.com/wwwxuhong/article/details/222804

项目管理是个很大的课题
所有的事物都有其规律

项目管理的规律是什么？
前几天看到一个理论让我眼睛一亮，陈述如下，希望对大家有点启发

PDCA循环是由美国统计学家戴明博士提出来的，它反映了质量管理活动的规律。P（Plan）表示计划；D（Do）表示执行；C（Check]]></description><category></category></item><item><title><![CDATA[进程间通信方式总结（windows 和linux）]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7085774</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7085774</guid><author>Bresponse</author><pubDate>Mon, 19 Dec 2011 22:01:05 +0800</pubDate><description><![CDATA[原文：http://blog.163.com/laylau_ll/blog/static/178625909201173131345423/

平时看的书很多，了解的也很多，但不喜欢总结，这不昨天面试的时候被问到了进程间通信的方式，因为没有认真总结过，所以昨天答得不是特别好。现在将linux和windows的进程间通信方式好好总结一下。
          windows的进程间的通信方式有]]></description><category></category></item><item><title><![CDATA[a 和&a的区别]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7085762</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7085762</guid><author>Bresponse</author><pubDate>Mon, 19 Dec 2011 21:56:47 +0800</pubDate><description><![CDATA[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) 为移动单位。 因此，对上题]]></description><category></category></item><item><title><![CDATA[#运算符 ##预算符]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7085757</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7085757</guid><author>Bresponse</author><pubDate>Mon, 19 Dec 2011 21:53:12 +0800</pubDate><description><![CDATA[#也是预处理？是的，你可以这么认为。那怎么用它呢? 别急，先看下面例子：
#define SQR(x) printf("The square of x is %d.\n", ((x)*(x)));
如果这样使用宏：
SQR(8);
则输出为：
The square of x is 64.
注意到没有，引号中的字符 x 被当作普通文本来处理，而不是被当作一个可以被替换的语言
符号。]]></description><category></category></item><item><title><![CDATA[C笔试题（判断大端小端模式及大小端模式转换）]]></title><link>https://blog.youkuaiyun.com/Bresponse/article/details/7085741</link><guid>https://blog.youkuaiyun.com/Bresponse/article/details/7085741</guid><author>Bresponse</author><pubDate>Mon, 19 Dec 2011 21:50:42 +0800</pubDate><description><![CDATA[判断大端小端模式

int checkEndion( void )
{
    union check
    {
        int i;
        char ch;
    }c;
    c.i = 1;
    return (c.ch ==1);
}
变量 i 占 4 个字节，但只有一个字节的值为 1，另外三个字节的值都为 0。如果取出低地址上的值为 0]]></description><category></category></item></channel></rss>