
嵌入式/物联网
文章平均质量分 62
EddyLiu-csdn
博客已迁移至( https://liucaiquan.site/about/)
展开
-
NORDFLASH与NANDFLASH的区别及选型
s3c2410有两种启动方式:1.NANDFLASH启动,这个过程是从s3c2410内部的4k启动代码空间启动引导把NANDFLASH程序代码复制到SRAM中执行.2.NORDFLASH启动,这个过程是把NORDFLASH的地址安排为0x00000000.当上电复位后,指令从此位置开始执行.因为NORDFLASH是线性寻址方式,不需要驱动而且可以直接在上面执行而不必复制到SRAM.而转载 2011-07-02 20:14:09 · 3463 阅读 · 0 评论 -
国内外物联网公司
People Power:http://www.peoplepowerco.com/美信凌科:http://www.smeshlink.com/天地互连:http://www.biigroup.com/叶帆科技:http://www.sky-walker.com.cn/index.aspsensinode:http原创 2013-01-09 19:00:24 · 1343 阅读 · 0 评论 -
exposed die attach pad
“exposed die attach pad”的中文意思是“裸露的芯片连接焊盘”,一般在芯片的底端。大家常常思考的一个问题是,这个焊盘要不要接地?真实的情况是:接不接地要视情况而定。比方说对于CC2420在datasheet上的管脚描述上是”Must be connected to solid ground plane“,那么这个管脚就必须接地,否则不会正常工作(前一版就是因为这个焊盘没接地,结原创 2012-12-28 11:23:09 · 8107 阅读 · 0 评论 -
8086寄存器
寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。寄存器的用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于转载 2011-08-09 22:49:27 · 732 阅读 · 0 评论 -
8086汇编语言学习笔记
一、debug的使用,模拟8086的情况 d 7c0:0,查段地址为7c0,偏移地址为0的内存中的数据,是十六进制表示的数 d 9000:0,查段地址为9000,偏移地址为0的内存中的数据,是十六进制表示的数 r,会显示所有寄存器中的值,比如ax,bx,cx,dx,cs,ip等 r cs,根据提示可以调整cs寄存器的值 a 1000:0 ,根据提示,可以从1000:0处开始输入汇编指令,比如mov转载 2011-08-10 10:48:33 · 1899 阅读 · 0 评论 -
保护模式
百科名片保护模式, (Protected Mode,或有时简写为 pmode) 是一种 80286 系列和之后的 x86 兼容 CPU 操作模式。保护模式有一些新的特色,设计用来增强 多工 和系统稳定度,像是 内存保护,分页 系统,以及硬件支援的 虚拟内存。大部分的现今 x86操作系统 都在保护模式下运行,包含 Linux、FreeBSD、以及微软 Windows 2.0 和之后版转载 2011-08-10 15:09:23 · 964 阅读 · 0 评论 -
MSP430的时钟
单片机上电后,如果不对时钟系统进行设置,默认800 kHz的DCOCLK为MCLK和SMCLK的时钟源,LFXTl接32768 Hz晶体,工作在低频模式(XTS=O)作为ACLK的时钟源。CPU的指令周期由MCLK决定,所以默认的指令周期就是1/800 kHz="1".25μs。要得到lμs的指令周期需要调整DCO频率,即MCLK=1 MHz,只需进行如下设置:BCSCTLl=XT20FF+RSE转载 2012-11-16 18:14:43 · 1114 阅读 · 0 评论 -
MSP430开发工具介绍 (JTAG SBW BS)
在MCU项目开发过程中,始终有两个设备紧密的联系在一起,一个是仿真器,一个是编程器。仿真器,顾名思义就是模仿单片机的功能;编程器就是把程序编写到单片机内部。 目前公司在MSP430开发工具方面主要有仿真器、编程器、各类学习板、转接板、适配器等。本文将主要介绍这些MSP430工具其特性。 一:仿真器、编程器 IAR和JTAG无法连接,是怎么转载 2012-11-22 18:38:07 · 8316 阅读 · 0 评论 -
如何确定一个机器的字节顺序是大端还是小端
什么是大/小端呢?所谓大端就是指高位值在内存中放低位地址,所谓小端是指低位值在内存中放低位地址。比如0x11223344在大端机上是11223344,在小端机上是44332211,而一个机器是大端还是小端要看cpu类型以及运行在上面的操作系统。同一款cpu在不同的操作系统使用的大小端情况是不同的。当然我们通常使用的x86+windows是小端。那如何测试大小端呢?通常的技巧是使用一转载 2013-10-23 09:25:09 · 825 阅读 · 0 评论 -
11款当前主流平板芯片横向对比评测
本篇文章是接续年初所作《五款主流平板芯片横向对比评测》之后的最新补充,加入了近期国内比较热门的新方案一起做比较。 在快要进入2011下半年之际,重新回顾起上半年的平板市场,发展过程可用突飞猛进来形容,各大小品牌参与进来后产品不光是层出不穷,更新换代的速度也是快得惊人。采用Android平台的机型无疑最为丰富,同样也可以说是最受大家关注的。从软件层面上讲,国内主流平板机大多用上了2.2甚至转载 2013-02-08 22:29:12 · 7329 阅读 · 0 评论 -
BIOS是如何从软盘加载系统引导程序的
当计算机电源被打开时,它会进行加点自检(POST),然后寻找启动盘,如果是选择从软盘启动,计算机就会检查软盘的0面0磁道1扇区,如果发现它以0xAA55(假设我们把此扇区看做一个字符数组sector[]的话,那么此结束标志相当于sector[510]=0x55,且sector[511]=0xAA)结束,则BIOS认为它是一个引导扇区,也就是我们说的Boot Sector。当然,一个正确的Boot原创 2013-02-16 17:04:23 · 2334 阅读 · 0 评论 -
ICMP协议之ping实现
1. 相关ICMP协议概述 这里只讲解与ping有关的ICMP消息类型,主机发送回送消息(Type = 8),被请求主机回送响应消息(Type = 0),基本格式如下: 回送消息[ECHO] 回送响应消息[ECHO REPLY] 其中•Code = 0, •CheckSum为校验和,重点注意从ICMP的头部(即Type转载 2012-12-29 11:26:16 · 1027 阅读 · 0 评论 -
物联网感知层的IPv6协议标准化动态
核心提示:物联网(Internet of Things)的概念最初在1999年由美国麻省理工学院的Auto-ID实验室提出,其构想是通过RFID与无线传感器网络的结合来构建一个追踪货物的全球系统。Internet of Things这个思路最初是非常具体的,但是其概念本身给人以很大的遐想空间,并且随着集成电路......1 物联网与IPv6 物联网(Internet of Thin转载 2012-03-12 16:15:52 · 3031 阅读 · 0 评论 -
硬件开源网站
1、always innovating(开源触摸平板)http://www.alwaysinnovating.com/home/index.htm2、frankencamera(开源相机)http://www.gizmag.com/open-source-digital-camera/12710/3、Neo FreeRunner(智能手机)相关参考:http://w原创 2012-12-03 20:07:29 · 1110 阅读 · 0 评论 -
晶振电容的选择
1:如何选择晶振 对于一个高可靠性的系统设计,晶体的选择非常重要,尤其设计带有睡眠唤醒(往往用低电压以求低功耗)的系统。这是因为低供电电压使提供给晶体的激励功率减少,造成晶体起振很慢或根本就不能起振。这一现象在上电复位时并不特别明显,原因是上电时电路有足够的扰动,很容易建立振荡。在睡眠唤醒时,电路的扰动要比上电时小得多,起振变得很不容易。在振荡回路中,晶体既不能过激励(容易振到高次谐波上转载 2012-12-11 15:51:37 · 2338 阅读 · 0 评论 -
FT232-USB转串口设计
概况 FT232系列,提供的USB转RS422/RS485,在RS422/RS485和USB口之间建立可靠的连接。利用USB接口具有的即插即用和热插拔的能力可以给RS422/RS485设备提供非常容易使用的环境。同时利用RS422/RS485具有的远距离传输和抗干扰性能好等特点赋予了USB口远距离传输的功能。它的设计可以让你方便地连接诸如PLC和PLD、条码扫描器、工控自动化等设备,并提转载 2012-12-13 10:15:13 · 15541 阅读 · 0 评论 -
mini usb 接口定义 5针usb接口定义图
mini usb的接口定义如下:1:VCC2:D-3:D+4:id5:GND 其中id脚在otg功能中才使用。由于mini usb接口分mini-A、B和AB接口。如果你的系统仅仅是用做slave,那么就使用B接口,在A接口中,ID脚悬空.如果是B接口,这个时候就需要使用ID脚了,系统控制器会判断ID脚的电平判断是什么样的设备插入,如果是高电平,则是B接头插入,转载 2012-12-18 20:25:52 · 115207 阅读 · 0 评论 -
一台电脑接两个显示器,双屏显示介绍
双屏显示的原始需求一台电脑配一个显示器应该是最常见的搭配,我们日常的工作、娱乐基本上都是这样的搭配。但是这种用法,当您打开多个窗口的时候,一个显示器就显得很拥挤,尤其是做一些复杂工作,比如分析图表、调试程序时,你往往需要不断地在不同窗口之间来回切换,非常麻烦,有没有方法让这些事情变的简单一些呢?有!答案是:Windows的双屏显示功能(或多屏显示,windows最多可以支持10个显示器转载 2012-12-19 11:24:56 · 7588 阅读 · 0 评论 -
显卡的接口类型
显卡类型分很多种,这里只能是说明一下历史了.因为基本显卡的接口都是世袭制的新标准淘汰旧的标准,因此你问哪个更好.我只能说最新的最好.显卡接口类型是指显卡与主板连接所采用的接口种类。显卡的接口决定着显卡与系统之间数据传输的最大带宽,也就是瞬间所能传输的最大数据量。不同的接口决定着主板是否能够使用此显卡,只有在主板上有相应接口的情况下,显卡才能使用,并且不同的接口能为显卡带来不同的性能转载 2012-12-19 15:41:06 · 1627 阅读 · 0 评论 -
DIY爱好者自制ARM笔记本 只为将项目彻底开源化
DIY爱好者自制ARM笔记本 只为将项目彻底开源化2012年12月18日 ⁄ 资讯 ⁄ 暂无评论 ⁄ 被围观 2,607+用户自己组装一台普通台式机早已不是什么有技术含量的事情了,不过如果是自制一款笔记本,情况就大不相同了。最难的部分就在如何将配件高度整合在一起,自制一款笔记本当然并非有太多实际意义的事情,但对许多硬件技术爱好者与DIY人士而言,意义却比较重大。一位转载 2012-12-21 11:07:55 · 1465 阅读 · 0 评论 -
Building an ARM GCC Toolchain from Source
Step by step guide on building a GCC cross-compilation toolchain from source on Windows and LinuxWhile we'd strongly recommend starting with one of the precompiled GNU GCC toolchains available for A转载 2011-09-06 19:28:16 · 2917 阅读 · 0 评论 -
用GDB调试程序
说明 从优快云的网站上找到的GDB使用说明。原文标题:用GDB调试程序作者:haoel (QQ是:753640,MSN是: haoel@hotmail.com)关键字:gdb 调试 c c++ gun这篇文章非常好,所以转载了下来,作为收藏。topGDB概述GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、B转载 2011-09-29 21:46:56 · 490 阅读 · 0 评论 -
gdb常用命令
调用gdb编译需要在cc后面加 -g参数再加-o;[root@redhat home]#gdb 调试文件:启动gdb(gdb) l :(字母l)从第一行开始列出源码(gdb) break n :在第n行处设置断点(gdb) break func:在函数func()的入口处设置断点(gdb) info break: 查看断点信息(gdb) r:运行程序转载 2011-09-30 00:12:11 · 564 阅读 · 0 评论 -
8086汇编指令
8086汇编指令数据传输指令 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD转载 2013-02-20 15:15:06 · 839 阅读 · 0 评论 -
8086系列寄存器的分类和功能
在8086里面,16位通用寄存器为ax,bx,cx,dx, 在80386里,寄存器为32位,对应8086,即为eax,ebx,ecx,edx dword ptr fs:[0] 表示fs*16+0处的一个双字 另外,div ebx 即 (edx,eax)/ebx 这里显然应为mov edx,0 ,或者直接用CDQ对cdx进行扩展,CDQ 双字扩展. (把EAX中的字的符号扩展到EDX转载 2013-02-20 15:40:27 · 3646 阅读 · 0 评论 -
ubuntu下安装tinyos
安装环境ubuntu10.041 更新ubuntu环境修改 /etc/apt/sources.list,然后#sudo apt-get update#sudo apt-get dist-upgrade2 安装vim (默认下,没有vim)#sudo apt-get install vim3 安装tinyos,参考http://docs.tinyos.net/原创 2012-02-17 23:42:52 · 1839 阅读 · 1 评论 -
TinyOS2.x启动顺序
对于嵌入式系统来说,系统的编译过程和启动顺序是至关重要的,对这两部分的了解程度直接关系到对系统移植、裁剪和配置的相关操作。在这篇文章中我们来看一看TinyOS2.x是如何启动的。需要强调的是,这里所涉及的系统版本是2.x而不是1.x,这两个版本还是有很大的区别的。TinyOS2.x的启动代码其实很清晰的,其具体的实现代码在tinyos2.x/tos/system/RealMainP.nc中:原创 2013-01-01 10:19:39 · 1400 阅读 · 0 评论 -
组件连接/绑定中“->”、“<-”与“=”的区别
在组件的链接绑定中经常可以看到“->”、“在介绍三者的区别和联系前,要先介绍下规范元素(程序中的模块和接口等)的外部性(external)和内部性(internal)。其实内部性和外部性是很好理解的:在组建规范(specification)中的规范元素成为外部性规范元素,而把在组件实现(implementation)中的规范元素称为内部性规范元素。举例说明:module a{ pro原创 2013-01-02 20:58:56 · 882 阅读 · 0 评论 -
TinyOS之Blink(一) - 底层I/O指定分析
对于TinyOS的I/O分析最好的一个分析例子就是apps/Blink。控制Led闪烁的接口Leds来自于模块LedsC。该模块(LedsC)位于Tos/System/LedsC.nc文件中定义。实际上Leds接口的实现是在同目录下的LedsP.nc文件中完成的。而从开始到这个阶段都还完全没有涉及到底层I/O的指定。其实从LedsC.nc和LedsP.nc文件所在的目录(System)看,也很容易原创 2012-12-29 17:17:54 · 1803 阅读 · 1 评论 -
tmote设计(四) - CC2420(射频电路设计注意事项)
以前没有做过射频电路,但确实听说电路的射频部分是很专业的,也听说过周围很多的同学在射频部分栽了跟头,传输距离只有几个厘米。所以自己设计射频电路的时候专门请教了一个专门做射频电路的同学,他的建议是射频电路设计一般需要注意一下几点:1、双层板的话,上面走信号线,下面是整面的地。射频信号和低频信号不同,低频信号时沿传输线传输,但射频信号是在信号线和底层地之间的板材中传输的。(在本设计中,下面是正面的原创 2012-12-28 11:07:41 · 2392 阅读 · 0 评论 -
tmote设计(三) - CC2420(exposed die attach pad)
在tmote原型的原理图时,发现CC2420芯片是有49脚的,并且接了地。但到时画自己板子的时候却大意了,以为只有48个脚,多余的那个49脚估计是什么隔离或散热的引脚无关紧要;而且,还特别查了CC2420的数据手册,在示意图上也就只表明的48个管脚。但在调试自己的板子时,却发现CC2420根本就不工作,典型的现象是3.3v电源工作正常,41脚(VREG_EN)上拉,但42脚(VREG_OUT)不输原创 2012-12-17 19:13:44 · 2171 阅读 · 0 评论 -
tmote设计(二) - BSL
tmote中使用的控制器为MSP430F1611,而该控制器的下载方式也有多种选择(具体细节可查看参考文献[1])。在tinyos中系统的默认下载方式为BSL,例如在apps/Blinks中,下载程序只需输入命令:“#make tmote install” 即可,不需指定具体的下载方式。在tmote原型中为了支持BSL下载,其硬件实现组合为:FT232BM、TC55RP33、NC7WZ126、原创 2012-12-13 20:42:35 · 1122 阅读 · 0 评论 -
TinyOS之Blink(二) - Platform初始化分析
硬件的初始化对于系统运行起着极为重要的角色(比如系统时钟初始化、平台相关硬件初始化等),本文通过tinyos2.1/apps/Blink来分析下Platform的初始化过程。Platform初始化的调用位于tinyos2.1tos/system/RealMainP.nc,由“call PlatformInit.init()”语句触发,语句的调用是系统启动时自发完成的,所以对于Platform初原创 2012-12-30 10:26:23 · 1399 阅读 · 0 评论 -
tmote设计(一) - FT232BM
仿照tmote原型设计的ECGMeter,在连接电脑时,计算机却不能识别。一番修修改改之后,计算机终于能顺利识别,并下载程序。但现在回想起来,到底是什么原因导致不能识别,还是不能给出肯定的结论。所以先把修改过程记录下来以方便以后查阅。修改(一):参考文章[1] 中说,连接7脚(USBDP)、8脚(USBDM)的27R电阻可能会导致供电不足,所以去掉了两个27R电阻。但结果是仍然不能正常工作原创 2012-12-13 20:06:48 · 1612 阅读 · 0 评论 -
TinyOS中的safe语句
TinyOS中的@safe机制是在2.1推出的,是一种内存安全管理的机制,类似于Java中的安全内存管理。相关资料可参考:http://docs.tinyos.net/tinywiki/index.php/Safe_TinyOS原创 2012-11-30 14:58:38 · 605 阅读 · 0 评论 -
tinyos边缘路由配置和remote节点IPv6地址的确定(猜想)
下面的结论大多是自己在实验过程中的猜测,可能并不是完全的正确。在没有无线路由转发节点的情况下,最简单的网络拓扑是:无线节点Mote_A、边缘路由EdgeRoute_B、运行边缘路由的主机Host_C和internet终端InternetTeminal_D组成。其中EdgeRoute_B和Mote_A的地址主要与文件"$TOSROOT/support/sdk/c/blip/serial_原创 2012-02-23 10:49:45 · 1067 阅读 · 0 评论 -
TinyOS编译过程(一)
写在之前:花了一段时间想弄清楚TinyOS的编译过程,但由于对Makefile的运行机制不熟悉以及不懂得perl语言,在很多地方仍然存在问题,这篇文章算是对TinyOS编译过程学习的一个记录,其中不免有错误,希望以后发现并更正。TinyOS版本:2.1.1假设我们编译tinyos/apps/Blink#make tmotemake命令的入口显然是当前目录下的文件Makefile。该原创 2012-11-23 22:01:17 · 2836 阅读 · 0 评论 -
8086 CPU 寄存器简介
引子打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识,自然,还是得从最基础的开始,那就从汇编语言开刀吧,从汇编语言开刀的话,我们必须还先要了解一些其他东西,像 CPU ,内存这些知识点还是理解深刻一点的比较好,所以这一篇博文就绕着 80x86 CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 。同时在这里转载 2013-02-25 11:30:04 · 765 阅读 · 0 评论 -
程序的思考(从单片机到PC)
关于程序的执行,以前想的不多,没有意识到一个程序在运行时,从哪里读指令,数据又写在哪里。 最近在看CSAPP时这个念头经常在脑袋中晃荡。 从单片机上知道,在上电的那一刻,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的 main之前,还有一系列其他的的初始化要做,如堆栈的初始化,不过这些我们很少回转载 2013-02-25 14:53:56 · 1203 阅读 · 0 评论 -
internet中网络终端如何访问tinyos节点
1 假设运行边缘路由(Edge Router)的主机地址为:"2001:da8:6000:291:6e62:6dff:fe53:d4be"2 在$TOSROOT/support/sdk/c/blip/serial_tun.conf中配置边缘路由(Edge Router)地址为"addr 2001:da8:6000:291::64"3 设置tinyos节点A(Activate):make t原创 2013-05-15 14:53:35 · 1296 阅读 · 1 评论