2014年1月4日

arm指令中mov和ldr及ldr伪指令的区别

摘要: ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。x86中没有ldr这种指令,因为x86的mov指令可以将数据从内存中移动到寄存器中。另外还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。ldr伪指令可以在立即数前加上=,以表示把 阅读全文

posted @ 2014-01-04 12:31 liuwen1987 阅读(397) 评论(0) 推荐(1) 编辑

u-boot之ldrpc_start_armboot解析

摘要: u-boot之ldrpc_start_armboot解析2008年07月02日02:21来源:ChinaUnix博客作者:osama123 编辑:周荣茂评论:0条本文Tag:Linux系统管理在cpu/arm920t/start.S中,将text relocate 到Ram后,其代码段的最后1行有条语句:ldr pc _start_armboot_start_armboot: .word start_armboot start_armboot是一个函数指针,这个symbol对应了符号表里的函数地址,这个函数是一个C语言的函数,他就是u-boot的stage2的入口点,这个stage2应该是在R 阅读全文

posted @ 2014-01-04 12:16 liuwen1987 阅读(806) 评论(0) 推荐(1) 编辑

2013年12月8日

[转]线程和进程

摘要: 对应用程序来说,进程就像一个大容器。在应用程序被运行后,就相当于将应用程序装进容器里了,你可以往容器里加其他东西(如:应用程序在运行时所需的变量数据、需要引用的DLL文件等),当应用程序被运行两次时,容器里的东西并不会被倒掉,系统会找一个新的进程容器来容纳它。 进程是由进程控制块、程序段、数据段三部分组成。一个进程可以包含若干线程(Thread),线程可以帮助应用程序同时做几件事(比如一个线程向磁盘写入文件,另一个则接收用户的按键操作并及时做出反应,互相不干扰),在程序被运行后中,系统首先要做的就是为该程序进程建立一个默认线程,然后程序可以根据需要自行添加或删除相关的线程。是可并发执行的程.. 阅读全文

posted @ 2013-12-08 16:04 liuwen1987 阅读(190) 评论(0) 推荐(0) 编辑

进程与线程的一个简单解释

摘要: 作者:阮一峰日期:2013年4月24日进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个任务。3.进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。4.一个车间里,可以有很多工人。他们协同完成一个任务。 阅读全文

posted @ 2013-12-08 15:59 liuwen1987 阅读(184) 评论(0) 推荐(0) 编辑

linux中的命令

摘要: cd .. 是回到上一级目录cd / 是回到根目录cd . 就是当前目录啦。。。系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作cat /proc/cpuinfo 显示CPU info的信息cat /proc/interrupts 显示中断cat /proc/meminfo 校验内存使用cat /proc/swaps 阅读全文

posted @ 2013-12-08 15:47 liuwen1987 阅读(155) 评论(0) 推荐(0) 编辑

c语言中signal函数详细解释说明

摘要: c语言中signal函数详细解释说明对于 信号处理函数 位于 中.void ( *signal( int sig, void (* handler)( int ))) ( int );这个函数的声明很是吓人, 一看就难弄懂. 下面是解释用法.一步一步解释:int (*p)();这是一个函数指针, p所指向的函数是一个不带任何参数, 并且返回值为int的一个函数.int (*fun())();这个式子与上面式子的区别在于用fun()代替了p,而fun()是一个函数,所以说就可以看成是fun()这个函数执行之后,它的返回值是一个函数指针,这个函数指针(其实就是上面的p)所指向的函数是一个不带任何. 阅读全文

posted @ 2013-12-08 15:01 liuwen1987 阅读(3131) 评论(0) 推荐(0) 编辑

2013年12月7日

C和C++中main函数里面参数的意义

摘要: 用一句话概括,都是用来存储命令行参数的。下面看例子:1.C/C++#includemain(int argc,char *argv[]){ for(int i=0;iSetting -->Debug-->Program Arguments里面任意设置命令行参数:This is the first time I post documents here.^_^那么:argv[1]存放命令行中第一个参数 ,即Thisargv[2]存放命令行中第二个参数 ,即is 阅读全文

posted @ 2013-12-07 20:58 liuwen1987 阅读(2689) 评论(0) 推荐(0) 编辑

2013年7月14日

绘制原理图是器件引脚直接相连导致PCB中元件封装没有连线

摘要: 题记:以前的错误市场记记,有空翻翻之前有人给了个电路的原理图让画PCB,结果在PCB放置元器件时发现引脚没有飞线,后来回原理图中发现元件之间对应的引脚没有用导线相连zh这是我改过的了,之前的没法复现了,总之大家注意一下啦,这样只能改下原理图,重新更新一下了 阅读全文

posted @ 2013-07-14 13:29 liuwen1987 阅读(3089) 评论(0) 推荐(0) 编辑

2012年12月9日

Quartus中引脚的添加

摘要: 本人比较菜,刚开始学习FPGA,在生成了PLL锁相环的原理图和控制器的原理图后需要添加引脚,因为刚学FPGA,所以什么都比较手生,竟然对处理器的引脚一个个的添加,并且标注引脚的名字,后来做到最后发现竟然有generation pins这样的选项,感觉自己太失败了,就是下面这张图啦其实可以在处理器上右击然后选择generation pins注意generation pins时,有些引脚名会在末尾产生多余的一个空格,如果引脚配置不成功的话,需要检查一下generation 的pin name是不是多了一个空格,认真检查后就可以进行下一步的编译啦 阅读全文

posted @ 2012-12-09 10:57 liuwen1987 阅读(6112) 评论(0) 推荐(0) 编辑

2012年11月27日

关于专利的写作注意的要点(待续)

摘要: 作为理工科的学生,个人认为可以转化为专利的想法或者创作很多,关于今天一位从事专利代理20多年的老教授对于专利的写作的一些要点,下面进行详细的讲解 阅读全文

posted @ 2012-11-27 18:39 liuwen1987 阅读(186) 评论(0) 推荐(0) 编辑

导航