嵌入式
文章平均质量分 53
G1036583997
这个作者很懒,什么都没留下…
展开
-
获取数组的长度
中心思想:使用数组的sizeof大小除以单个元素的数据类型的sizeof得到数组的大小unsigned int unStartString[] = {0x89, 0x50, 0x4e, 0x47, 0x0d};int len = sizeof(unStartString)/sizeof(unsigned int);#define dim(arr) (si转载 2013-09-05 11:29:59 · 7550 阅读 · 0 评论 -
ARM裸机程序开发19(2440lib.c)
//===================================================================// File Name : 2440lib.c// Function : S3C2410 PLL,Uart, LED, Port Init// Date : March 20, 2002// Version : 0.0// Histo转载 2013-10-14 09:40:25 · 2863 阅读 · 0 评论 -
ARM 的FIFO机制,数据缓冲区
看来许多人还没有真正理解FIFO的作用和优点,仍然停留在每收发一个字符就要中断处理一次的老思路上。UART收发FIFO主要是为了解决收发中断过于频繁而导致的CPU效率不高的问题。 FIFO的必要性。在进行UART通信时,中断方式比轮询方式要简便且效率高。但是,如果没有收发FIFO,则每传输一个数据(5~8位)都要中断处理一次,效率仍然不高。如果有了收发FIFO,则可以在连续收发若干个数据(可多至转载 2013-10-14 21:17:19 · 7286 阅读 · 0 评论 -
Uart的自动流控制
1.流控制在串行通讯中的作用这里讲到的“流”,当然指的是数据流。数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。现在我们在网络上通过MODEM进行数据传输,这个问题就尤为突出。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可转载 2013-10-14 21:22:37 · 5735 阅读 · 0 评论 -
TTL电平与CMOS电平
什么是TTL电平,什么是CMOS电平,他们的区别 (一)TTL高电平3.6~5V,低电平0V~2.4V CMOS电平Vcc可达到12V CMOS电路输出高电平约为0.9Vcc,而输出低电平约为 0.1Vcc。 CMOS电路不应用的输出端不能悬空,会制败逻辑凌乱。 TTL电路不应用的输入端悬空为高电平 另中,CMOS集成电路电源电压可以在较大范畴内变动,因此对电源的要供不像T转载 2013-10-15 14:22:03 · 1878 阅读 · 0 评论 -
ARM裸机程序开发21(2440串口:申嵌源码2440lib.c文件中关于UART的操作)
注意:使用前将CPU的引脚设为复用功能引脚。1.初始化串口设置波特率,FIFO,流控制寄存器、串口的数据格式和串口的控制寄存器void Uart_Init(int pclk,int baud) { int i; if(pclk == 0) pclk = PCLK; //使用系统的PCLK rUFCON0 = 0x0;原创 2013-10-15 21:50:34 · 1850 阅读 · 0 评论 -
ARM裸机程序开发20(2440串口总结:寄存器篇)
S3C2440共有3个串口,CON0,CON1,CON2从CPU直接引出为TTL电平。其中串口CON0通过芯片转换为RS232电平的9针串口。在使用串口时应该首先设置CPU的引脚功能,将其初始化设置为串口功能模式。每一个串口都由波特率产生单元、控制单元、发送单元与接受单元4部分组成。发送和接受单元有64-byte的FIFO和数据移位寄存器。发送数据时,数据被写进FIFO然后原创 2013-10-15 20:24:20 · 2475 阅读 · 0 评论 -
ARM裸机开发22(2440中断原理)
1CPU与外设之间的数据传送控制方式(I/O控制方式)通常有以下三种方式1.查询方式2.中断方式3.DMA方式(在独立开辟的一个空间不由CPU控制,有DMA自己进行管理。实现存储器与外设的高速的数据传输方式)主要讲中断:中断请求---->中断仲裁---->中断响应---->中断处理---->中断返回(要保存现场)中断处理流程:1.中断控制器捕获当前外原创 2013-10-16 11:03:29 · 1174 阅读 · 0 评论 -
射频技术
射频:射频(RF)是Radio Frequency的缩写,表示可以辐射到空间的电磁频率,频率范围从300KHz~30GHz之间。射频简称RF射频就是射频电流,它是一种高频交流变化电磁波的简称。每秒变化小于1000次的交流电称为低频电流,大于10000次的称为高频电流,而射频就是这样一种高频电流。射频即RadioFrequency,通常缩写为RF。表示可以辐射到空间的电磁频率,频率范围从30原创 2013-10-16 21:35:13 · 2369 阅读 · 0 评论 -
GPS坐标的确立,GPS卫星在太空的位置,卫星参数
1。GPS卫星的位置 在GPS的定位过程中,确定卫星在空间的位置是至关重要的,尤其是用户机测量信号从卫星发射的那个时刻的卫星位置,这需要从卫星广播的导航电文取出卫星轨道星历,计算卫星当时的实际位置。 通常,导航电文是由地面主控站定时通过上行天线注入卫星,然后加以广播。每个卫星除了广播自己的星历外,还在导航电文中广播星座中所有卫星的简单星历,后者称为历书。历原创 2013-10-16 21:07:22 · 3589 阅读 · 0 评论 -
ARM裸机程序开发18(S3C2440A.s)
;/*****************************************************************************/;/* S3C2440A.S: Startup file for Samsung S3C440A */;/************************************转载 2013-10-11 17:30:15 · 2251 阅读 · 0 评论 -
ARM裸机程序开发11(中断控制系统)
外部事件处理方式1.查询方式 (简单,但耗费资源与时间,效率低)2.中断方式 (实现复杂,效率高)中断处理流程1.中断控制器汇集各类外设发出的中断信号,然后通知CPU2.CPU保存当前运行环境,然后调用中断服务程序(ISR)来处理中断3.ISR识别中断类型,并进行相应的处理4.清除中断5.恢复被中断的程序原创 2013-09-27 17:01:56 · 1022 阅读 · 0 评论 -
ARM裸机程序开发13汇编语言的基本框架
AREA asm00,CODE,READONLY AREA前面一定要有一个Tab键AERA 伪指令表示定义一个段,后面紧跟着段名,CODE代码段,只读权限 ;name this blank of code asm00 ENTRY ;mark first instruction to execute ;伪指原创 2013-10-09 08:46:52 · 1201 阅读 · 0 评论 -
ARM裸机程序开发14(JTAG与RealViewMDK搭建ARM开发环境)
JTAG接口信息利用Jllink进行调试的图样下载方式keil嵌入式集成开发环境MDK + Jlink + SDRAM 裸奔2440教程 1、背景很多人学习嵌入式编程都是从裸机开始的(我个人也是)。这并不是偶然,想要零基础入门嵌入式开发,玩转裸机绝对是最好的入手点。这样至少可以培养以下必备技能:l CPU体系结构,编程模式及汇编语言、转载 2013-10-09 10:51:16 · 4542 阅读 · 1 评论 -
ARM裸机程序开发12指令条件码的使用
1.指令条件码对应代码演示if(a>b)a++;elseb++;对应的汇编代码(If else结构)CMP R0,R1 ;R0(a) R1(b) R0-R1不会保存结果ADDHI R0,R0,#1 ;若R0>R1则R0=R0+1 ,HI无符号大于ADDLS R1,R1,#1 ;若R1>R0则R1原创 2013-10-09 08:38:09 · 941 阅读 · 0 评论 -
ARM裸机开发笔记4(ARM寻址方式)
所谓寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。 立即(数)寻址操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式为立即寻址ADD R0,R0,#1 ;R0ADD R0,R0,#ox3f ;R0以上指令中,第二个源操作数即为立即数。立即数以#原创 2013-09-24 11:57:42 · 887 阅读 · 0 评论 -
GPS定位基本原理浅析
位置服务已经成为越来越热的一门技术,也将成为以后所有移动设备(智能手机、掌上电脑等)的标配。而定位导航技术中,目前精度最高、应用最广泛的,自然非GPS莫属了。网络上介绍GPS原理的专业资料很多,而本文试图从编程人员的角度出发,以一种程序员易于理解的方式来简单介绍一下GPS定位的基本原理,希望对做GPS开发的朋友有所启发。当然,本文并没有涉及具体的开发方面的技术。一、GPS定位数学模型之所以原创 2013-10-10 20:10:58 · 1587 阅读 · 0 评论 -
ARM裸机程序开发9(GPIO)
S3C2440有130个GPIO,分为A~J9组;GPA~GPJ通过设置相应的寄存器来进行操作每组GPIO都可以通过3个寄存器来控制和访问。GPxCON :GPIO配置寄存器GPxDAT :DPIO数据寄存器GPxUP: 上拉电阻控制寄存器(其中x为A~J)1.GPxCON用于配置端口为输入输出还是其他的功能,具体功能设置见芯片手册2.GPxDAT用与读写引脚。原创 2013-09-25 09:38:24 · 1163 阅读 · 0 评论 -
ARM裸机程序开发17(堆栈寻址)
堆栈是一种数据结构,按先进后出的方式工作。使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶当堆栈指针指向最后压入堆栈的数据时,称为满堆栈,而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈 同时又根据堆栈的生成方式,又可分为递增堆栈和递减堆栈,当堆栈由低地址像高地址生成时,称为递增堆栈。当堆栈由高地址向低地址生成时,称为递减堆栈。这样就有4中堆栈的工作方式原创 2013-10-11 17:17:14 · 1439 阅读 · 0 评论 -
ARM裸机程序开发15(伪指令,汇编语句格式,汇编变量常量)
1.符号定义伪指令局部变量LCLA 局部算数变量 LC-》local的缩写LCLL 局部逻辑变量LCLS 局部字符串全局的有:GBLA,GBLS,GBLL对变量的赋值有SETA,SETL,SETS为通用寄存器列表定义名称的RLIST逻辑变量必须用花括号括起来SETA,SETL,SETS具体使用详例格式:变量名 SETX转载 2013-10-11 09:13:41 · 1555 阅读 · 0 评论 -
ARM裸机程序开发16(混合编程)
原创 2013-10-11 09:47:58 · 887 阅读 · 0 评论 -
无线定位技术
本篇文章摘录于国防科技大学基于RSSI无线传感器网络测距和定位技术研究。如有侵犯权利之处请联系博客作者。谢谢无线传感器网络(WSN)定位算法根据定位过程中是否测量实际节点间的距离,主要分为基于测距的(Range-based)定位和无需测距的(Range-free)定位。目前,测距方法主要包括基于接受信号迁都(RSSI,Received Singal Strength Indictor)转载 2013-10-19 19:44:49 · 2132 阅读 · 0 评论 -
zigbee提取RSSI值
1. 当接收到数据包后,数据包中就有RSSI信息,可以用 afIncomingMSGPacket_t结构体提取,里面有 byte LinkQualityRSSI反映接收信号强度,LQI反映信号的连接质量,两者都可以通过读取芯片的寄存器得到。RSSI:信号强度值LQI:连接质量在协议栈中中,LQI是可以直接从接收数据后的结构体中得到,例如接收数据使用的结构定义为pk转载 2013-11-16 20:46:23 · 9160 阅读 · 0 评论 -
电阻的分类
转载自:http://www.56dz.com/Article/dzrm/dzyj/200709/82.html概述 电阻的英文名称为resistance,通常缩写为R,它是导体的一种基本性质,与导体的尺寸、材料、温度有关。欧姆定律指出电压电流和电阻三者之间的关系为I=U/R,亦即R =U/I。电阻的基本单位是欧姆,用希腊字母“Ω”来表示。电阻的单位欧姆有这样的定义:导体转载 2013-11-05 20:02:29 · 5196 阅读 · 0 评论 -
为什么四层板比三层板常见
转载自http://bbs.21ic.com/icview-671518-1-1.html本人在板厂工作经验10年,司职研发,个人经验如下:1.在PCB厂都能制造,四层板一般是采用一张CORE两侧各压1张铜箔,3层板测试一侧压一张铜箔,就工艺流程来说,都要压合2.两者工艺成本区别在于四层板多一张铜箔及粘结层,成本差别不大,板厂报价的时候,一般3-4层作为一个档次报价,报价是以偶数(当然转载 2015-05-19 10:40:17 · 3334 阅读 · 0 评论 -
OC输出
什么是集电极开路(OC)?我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为"0"时,输出也为"0")。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E 之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左转载 2016-01-15 16:38:01 · 10986 阅读 · 0 评论 -
ARM裸机程序开发10(LED控制程序)
mini2440对应的IO口是led1-led4 对应的是GPB5-GPB8控制思想:1.设置为输出状态2.向相应的引脚输出低电平点亮LED原创 2013-09-27 09:12:09 · 1189 阅读 · 0 评论 -
ARM裸机程序开发7(汇编与c混合编程)
在嵌入式系统开发中,目前使用的主要编程语言是C和汇编,C++已经有相应的编译器,但是现在使用还是比较少的。在稍大规模的嵌入式软件中,例如含有OS,大部分的代码都是用C编写的,主要是因为C语言的结构比较好,便于人的理解,而且有大量的支持库。尽管如此,很多地方还是要用到汇编语言,例如开机时硬件系统的初始化,包括CPU状态的设定,中断的使能,主频的设定,以及RAM的控制参数及初始化,一些中断处理方面也可转载 2013-09-24 18:06:55 · 1281 阅读 · 0 评论 -
ARM裸机开发笔记6(ARM伪指令)
伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。符号定义、数据定义、汇编控制、宏和其他另外的伪指令转:http://blog.chinaunix.net/uid-13701930-id-336459.html4.1 ARM汇编器所支持的伪指令在ARM汇编语言程序里,有一些特殊指令助记符,这些助记符转载 2013-09-24 17:55:26 · 934 阅读 · 0 评论 -
ARM裸机开发笔记3(ARM寄存器)
37个32位寄存器31个通用6个状态寄存器ARM寄存器ARM共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器.这些寄存器不能被同时访问,但在任何时候,通用寄存器R0~R14,程序计数器PC,一个或两个状态寄存器都是可访问的.通用寄存器通用寄存器包括R0~R15,可以分为3类:(1)未分组寄存器R0~R7(2)分组寄存器R8~R14(3)程序计原创 2013-09-24 11:23:37 · 990 阅读 · 0 评论 -
ARM裸机开发笔记1(指令简介)
1.非常简单的ARM程序:arm.s文件内容 AREA Example,CODE,READONLY ;声明代码段 AREA:定义代码段 Example是代码段名称CODE:代码段关键字READONLY:只读关键字 ENTRY原创 2013-09-24 09:09:04 · 914 阅读 · 0 评论 -
ARM裸机开发笔记2(ARM的存储与工作模式)
1.两种工作状态:ARM状态 32位指令 Thumb 16位指令可以通过一些机制进行两种状态的转换 2.ARM的寻址空间对多可以达到4G,是以字为单位进行对齐(字对齐)。一款ARM芯片先要知道其存储方式:是大端还是小端(大小端的编译等存在差别) ARM体系结构分为两种方法存储数据,成为大端方式和小端方式大端方式:字数据的高字节存储在低地址中,而数据的字节数据的低字节原创 2013-09-24 10:47:30 · 1053 阅读 · 0 评论 -
ARM裸机开发笔记5(ARM指令集)
跳转指令:最简单的这届修改PC的值以下指令中可以完成从当前指令向前或向后的32M的地址空间的跳转B{条件} 目标地址 ;花括号表示条件,可以省略 最简单的跳转指令,一旦遇到一个B指令,ARM处理器将立即跳转到给定的目标地址,从那里继续执行 CMP R!,#0 BEQ Label原创 2013-09-24 16:49:44 · 1010 阅读 · 0 评论 -
lm317扩流电路 (全集)
http://wenku.baidu.com/link?url=LA2c95lnd3QXlHHhl6oOCM4cBm7djWvOLPZZ22GbKQnzwOBbK8twlecQRfQGgMfwtG7K8Yq4kuAmQ8YvsdWLHfmNfuwToEYgOfJDu8Z9a97当负载电流大于三端可调集成稳压器标称电流值时,可用扩流的办法来解决。如图1所示的电路是用一只PNP大功率管转载 2015-01-19 17:28:45 · 13019 阅读 · 0 评论 -
nand flash和nor flash的不同
NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。 相“flash存储器”经转载 2014-09-13 19:07:48 · 821 阅读 · 0 评论 -
Zigbee 设置信道,PANID,发射功率
现对z-stack里几个网络参数的设置以及如何获取总结一下。信道配置:Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个信道,915MHz频段中定义了2个信道,信道间隔为2MHz,2.4GHz频段上定义了16个信道,信道间隔为5MHz.信道编号中心频率/MHz信道间隔/MHz频率上限/MHz转载 2013-11-25 11:32:27 · 17521 阅读 · 1 评论 -
ZSTACK HAL 硬件修改部分(端口,按键,串口SPI)
转自:http://blog.chinaunix.net/uid-21143149-id-1830103.html目录:一 LED二 KEY 轮询方式三 KEY 中断方式四 串口五 SPI 一:LED 硬件连接情况: P0_1-----LED1; P0_2-----LED2; P0_3-----LED3; P2_0-----LE转载 2013-11-25 14:07:44 · 7885 阅读 · 1 评论 -
Zigbee设备节点
ZigBee定义了3种类型的设备,每种设备都有自己的功能要求:1. ZigBee协调器(Co-ordinator),是启动和配置网络的一种设备,是网络的中心节点,一个ZigBee网络只允许有一个ZigBee协调器;2. ZigBee路由器(Router),是一种支持关联的设备,能够将消息转发到其他设备,ZigBee网络或树形网络可以有多个ZigBee路由器,ZigBee星型网络不支转载 2013-11-25 14:32:26 · 14740 阅读 · 0 评论 -
Zigbee 协议栈
介绍完ZigBee的物理特性,现在该转入逻辑层面,分析下协议栈的软件部分了。先看个协议栈的架构图吧:ZigBee协议栈由一组子层构成,每层为其上层提供一组特定的服务:一个数据实体提供数据传输服务;一个管理实体提供全部其他服务。每个服务实体通过一个服务接入点(SAP)为其上层提供服务接口,并且每个SAP提供了一系列的基本服务指令来完成相应的功能。 Zi转载 2013-11-25 14:38:15 · 12685 阅读 · 0 评论 -
网络地址的分配及获取
Zigbee2006通过分布式寻址方案来分配网络地址的,保证网络内地址的唯一性。这个寻址算法本身的分布特性保证设备只能与其父辈设备通讯来接受一个网络地址。不需要整个网络范围内通讯的地址分配,有助于网络的可测量性。在04协议栈里有这样一个公式,A=A(parent)+Cskip(d)*Rm+n,Cskip(d)是不同深度的父设备分配地址时的偏移量,Rm是可以携带的最大路由数,n是第n个设备。转载 2013-11-25 15:02:50 · 3222 阅读 · 0 评论