- 博客(26)
- 收藏
- 关注
原创 面试题
<br />今天笔试题中有几道移位操作的题,印象比较深刻。<br />8 位二进制数按位进行反转(需要用最短的代码实现):当是是没做出来了啊!<br />后来上网查了一下发现可以这样来做;<br />首先需要采用有分治的思想 现将字符串的4位进行反转,然后在分别的4为内俩位进行反转,然后奇偶位进行反转。<br />例子<br />0101 1100-> 1100 0101--------->0011 0101-------->0011 0101 DONE!!<br />把这个过程反过来也是一样的。<br /
2011-05-21 20:06:00 442
原创 make 中的config详述
<br />help:<br /> @echo ' config - Update current config utilising a line-oriented program'<br /> @echo ' menuconfig - Update current config utilising a menu based program'<br /> @echo ' xconfig - Update current config utilising a QT based fron
2011-05-08 15:15:00 983
转载 内联汇编
我爱南开站 -- ziyuan的个人文集 发信人: Thunder (小正哥), 信区: LinuxDev标 题: Linux 中 x86 的内联汇编 ZZ发信站: 我爱南开站 (2004年02月23日01:39:24 星期一), 站内信件http://www-900.ibm.com/developerWorks/cn/linux/sdk/assemble/inline/index.shtml Linux 中 x86 的内联汇编将各个部分组合起来 Bharata
2011-05-06 20:22:00 682
转载 jmp指令
最近看链接器源码中,对位置无关代码PIC(共享库)的链接问题,发现对call和jmp很多不常用的用法,这里试验并总结了一下各种用法。<br />我们最常用的jmp形式,就是 jmp后面跟个标签!这个没什么可说的! 假如标签叫做mylabel,它的地址是0x8048377,而且有个全局变量b,b存储的内容就是mylabel的地址,而b的地址是0x80494A8。即有这样的赋值(加载)语句:movl$mylabel,%eax//把mylabel的地址加载到eax寄存器中<br />movl%eax,b//把my
2011-04-11 00:59:00 17126
原创 内核的创建流程与代码分析
<br />1. 顶层Makefile分析<br />核心代码:<br />all: vmlinux<br />vmlinux: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) vmlinux.o $(kallsyms.o) FORCE<br /># vmlinux is built from the objects selected by $(vmlinux-init) and(vmlinux-main)<br />vmlinux-init := $(h
2011-04-10 16:07:00 1276
原创 AT&T语法
<br />.6.2 AT&T汇编语言的相关知识<br /> 在Linux源代码中,以.S为扩展名的文件是“纯”汇编语言的文件。这里,我们结合具体的例子再介绍一些AT&T汇编语言的相关知识。<br /> 1.GNU汇编程序GAS(GNU Assembly和连接程序<br />当你编写了一个程序后,就需要对其进行汇编(assembly)和连接。在Linux下有两种方式,一种是使用汇编程序GAS和连接程序ld,一种是使用gcc。我们先来看一下GAS和ld:<br />GAS把汇编语言源文件(.o)转换为
2011-04-07 18:42:00 964
转载 深入浅出大端小端
<br />文章一: <br />端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big Endian和Little Endian也几乎引起一场战争。在计算机业界,Endian表示数据在存储器
2011-03-20 12:41:00 795
转载 深入浅出大端小端
<br />文章一: <br />端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big Endian和Little Endian也几乎引起一场战争。在计算机业界,Endian表示数据在存储器
2011-03-20 12:41:00 853
原创 IAP与ISP的异同
<br />ISP: 一种无需将存储芯片(如EPROM)从嵌入式设备上取出就能对其进行编程的过程,缩略为ISP。在系统编程需要在目标板上有额外的电路完成编程任务。其优点是,即使器件焊接在电路板上,仍可对其(重新)进行编程。在线系统可编程是Flash存储器的固有特性(通常无需额外的电路),Flash几乎都采用这种方式编程。 <br />优点:<br /> ISP技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和
2011-02-26 21:25:00 2723 1
原创 LPC2103 ISP烧写
放假前,朋友借我一块EasyArm开发平台,甚是欢喜啊,以为终于可以自己开发点东西玩玩了。谁知道没有JTAG,与串口。然后我问他要JTAG,他说没JTAG照样可以用。串口还好解决我去电子市场买了一个串口。放假在家准备开发一个程序玩玩的时候,看教程都是JTAG下载程序的。当我尝试用光碟中带的flash 烧写软件进行烧写的时候怎么也不出结果,那个郁闷啊!后来那块板子就凉家里没动弹,来学校后我找我同学跟他说没JTAG就是不行。他说板子也是朋友送他的,朋友说可以。然后让我调调。凭着对嵌入式的热爱。我再次拿起
2011-02-26 14:45:00 5166 1
转载 U盘
文章内容摘取之:http://forum.eet-cn.com/BLOG_ARTICLE_6610.HTMU盘是大家最熟悉不过的存储载体了。几乎我们每一天的生活都离不开它。它的便携性,即插即用特性,还有大容量,不错的读写速度是它成功的关键。可以你了解它背后的故事吗? U盘的诞生: U盘的全称是USB Disk。它很年轻,但成长却最快,故事也很多,大部分鲜为人知。1997年,随着Intel在主板芯片组方面对USB支持的不断加强,大量外设开始采用USB接口。于是,一种针对USB的移动存储应运而生
2011-02-25 18:50:00 1840
原创 Nor flash与Nand flash
NOR FLASH/NAND FLASH 是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。NOR 的传输效率很高,
2011-02-25 13:51:00 545
原创 EEPROM与EPROM
<br />EPROM就是Erasable Programmable Read Only Memory,<br />中文含意为“可擦除可编程只读存储器”。它是一种可重写的存储器芯片,并且其内容在掉电的时候也不会丢失。换句话说,它是非易失性的。它通过EPROM编程器进行编程,EPROM编程器能够提供比正常工作电压更高的电压对EPROM编程。一旦经过编程,EPROM只有在强紫外线的照射下才能够进行擦除。为了进行擦除,EPROM的陶瓷封装上具有一个小的石英窗口,这个石英窗口一般情况下使用不透明的粘带覆盖,当擦除时
2011-02-25 13:22:00 4110
原创 arm指令
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。x86中没有ldr这种指令,因为x86的mov指令可以将数据从内存中移动到寄存器中。另外还有一个
2010-10-22 13:53:00 340
原创 volatile 关键字
用volatile关键字定义变量,相当于告诉编译器,这个变量的值会随时发生变化,每次使用时都需要去内存里重新读取它的值,并不要随意针对它作优化。不使用volatile定义的变量,可能因为编译器优化而出现一些问题,具体可以看给出的参考资料,里面有一个例子。建议使用volatile变量的场所:(1) 并行设备的硬件寄存器(2) 一个中断服务子程序中会访问到的非自动变量(全局变量)(3) 多线程应用中被几个任务共享的变量 <br /><br />
2010-10-21 19:20:00 288
原创 全排列算法的理解
(1)序数法: 因为: (2)字典序法:n!=((n-1)+1)(n-1)!=(n-1)(n-1)!+(n-1)!,同理,(n-1)!=(n-2)(n-2)!+(n-2)!,…,故n!= (n-1)(n-1)!+ (n-2)(n-2)!+…+2*2!+2!不难证明,从0到n!-1的任何数m可唯一的表示为m=an-1(n-1)!+ an-2(n-2)!+…+a11!, 其中0生成给定全排列的下一个排列所谓一个的下一个就是这一个与下一个之间没有其他的。这就要求这一个与下一个有尽可能长的共同前缀,也即变化限制
2010-10-20 20:09:00 547
原创 全排列算法的理解
<br />(1)序数法:<br /> 因为: (2)字典序法:<br />n!=((n-1)+1)(n-1)!=(n-1)(n-1)!+(n-1)!,<br />同理,<br />(n-1)!=(n-2)(n-2)!+(n-2)!,<br />…,<br />故n!= (n-1)(n-1)!+ (n-2)(n-2)!+…+2*2!+2!<br />不难证明,从0到n!-1的任何数m可唯一的表示为m=an-1(n-1)!+ an-2(n-2)!+…+a11!, 其中<br />0< ai< i. <br
2010-10-20 20:09:00 601
转载 Intel CPU型号发展史
<br />Intel CPU的各种型号简介 个人电脑使用的CPU以Intel品牌为主, PC机CPU发展的历史就等于Intel公司的历史,现在就Intel公司CPU的发展作一介绍。 Intel CPU型号发展: <br />4004<br />Intel 8008 <br />Intel 8080<br />Intel 8085<br />Intel 8086<br />Intel 8088<br />Intel 80186<br />Intel 80188<br />Intel 80286<br
2010-10-06 12:01:00 10872
原创 MFC中VERIFY与ASSERT的区别
VERIFY 与ASSERT用在程序调试上并无本质上的区别。 In the debug version of MFC, the VERIFY macro evaluates its argument. If the result is 0, the macro prints a diagnost
2010-05-24 00:37:00 1863
原创 奇偶剪枝
0,1,0,1,01,0,1,0,10,1,0,1,01,0,1,0,1很明显,如果起点在0 而终点在1 那显然 要经过奇数步才能从起点走到终点,依次类推,奇偶相同的偶数步,奇偶不同的奇数步在读入数据的时候就可以判断,并且做剪枝,当然做的时候并不要求把整个矩阵0,1刷一遍,读入的时候起点记为(Si,Sj) 终点记为(Di,Dj) 判断(Si+Sj) 和 (Di+Dj) 的奇偶性就可以了。//不
2010-01-04 19:21:00 350
原创 scanf("%c")
今天做了ACM1010 代码都对就是怎么也不能AC。那个郁闷啊!一晚上都想那个了。本来有俩组输入,可是输出的结果就一组。仔细看输入,竟然自动换行了,奇怪,这是咋回事。猜测可能是读入了换行符。同样的问题这C++中就没有啊!最后通过加getchar();AC通过。
2010-01-04 19:11:00 344
原创 ACM 母函数
http://acm.hdu.edu.cn/showproblem.php?pid=1398#include#include#includeint main(){ int n,i,k,j; while(scanf("%d",&n)==1) { int temp[121],outc[121]; for(i=0;i { temp[i]=0;
2010-01-02 16:12:00 325
原创 变量的定义与声明
变量的声明仅仅告诉编译器有这个变量,但没有给它分配内存单元。但是定义就不同,他是要给变量赋值的。静态变量,外部变量声明相当于定义,系统隐式的给它们初始化。另外还有一点,数组的声明于定义。C99规定数组的声明可以不指定其程度。如下代码extern char s[];即声明了一个字符数组变量。其长度可以在其定义部分指定。其外部变量的定义只能一次。而且其初始化只能在其定义部分。
2009-05-29 17:06:00 359
转载 word应用
把文字替换成图片首先把图片复制到 剪贴板中,然后打开替换对话框,在“查找内容”框中输入将被替换的文字,接着在“替换为”框中输入“^c”(注意:输入的一定要是半角字符,c要小写),单击替换 即可。说明:“^c”的意思就是指令WordXP以剪贴板中的内容替换“查找内容”框中的内 容。按此原理,“^c”还可替换包括回车符在内的任何可以复制到剪贴板的可视内容,甚至Excel表格。
2008-12-03 16:39:00 529
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人