自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 关于WrUTXH0的问题

1.RdURXH0(),WrUTXH0(),在寄存器定义里面,如下:#define WrUTXH0(ch) (*(volatile unsigned char *)0x50000023)=(unsigned char)(ch)#define RdURXH0()   (*(volatile unsigned char *)0x50000027)#define WrUTXH1(ch) (*

2012-09-19 11:13:56 1763

转载 C语言中volatile关键字的作用

一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:

2012-09-19 10:46:48 741

转载 S3C2440的UART详解

http://www.cnblogs.com/idle_man/archive/2010/12/19/1910548.html1、UART原理简介在介绍2440的UART控制器之前,我们首先来了解一下UART的原理UART:Universal Asynchronous Receiver/Transmitter(通用异步收发送器),用来传输串行数据,发送数据时,CPU将并行数据写入UAR

2012-09-19 10:43:58 619

转载 fcntl函数说明

(1)fcntl函数说明前面的这5个基本函数实现了文件的打开、读写等基本操作,这一节将讨论的是,在文 件已经共享的情况下如何操作,也就是当多个用户共同使用、操作一个文件的情况,这时,Linux 通常采用的方法是给文件上锁,来避免共享的资源产生竞争的状态。文件锁包括建议性锁和强制性锁。建议性锁要求每个上锁文件的进程都要检查是否有锁存,并且尊重已有的锁。在一般情况下,内核和系统都不使用建议

2012-09-18 10:50:51 376

转载 fcntl即F_SETFL,F_GETFL的使用,设置文件的flags

1、获取文件的flags,即open函数的第二个参数:       flags = fcntl(fd,F_GETFL,0);2、设置文件的flags:      fcntl(fd,F_SETFL,flags);3、增加文件的某个flags,比如文件是阻塞的,想设置成非阻塞:       flags = fcntl(fd,F_GETFL,0);       flags |

2012-09-18 10:42:58 3202

转载 fcntl.h

fcntl.h与unistd.    fcntl.h定义了很多宏和open,fcntl函数原型unistd.h定义了更多的函数原型 close(关闭文件)表头文件#include定义函数int close(int fd);函数说明当使用完文件后若已不再需要则可使用close()关闭该文件,二close()会让数据写回磁盘,并释放该文件所占用的资源。参

2012-09-18 10:41:36 580

转载 串口通讯基础及S3C2410 UART控制器(1)

数据通信的基本方式可分为并行通信与串行通信两种:并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,但要求通讯速率较高的应用场合。串行通信:是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。一、异步通信及其协议异步通信以一个字符为传输单位,通信中

2012-09-18 09:52:42 1194

转载 串口通讯基础及S3C2410 UART控制器(2)

自动流控模式S3C2410的UART0和UART1都可以通过各自的nRTS和nCTS信号来实现自动流控。在自动流控(AFC)模式下nRTS取决于接收端的状态,而nCTS控制了发送断的操作。具体地说:只有当nCTS有效时(表明接收方的FIFO已经准备就绪来接收资料了),UART才会将FIFO中的资料发送出去。在UART接收资料之前,只要当接收FIFO有至少2-byte空余的时候,nRTS

2012-09-18 09:51:30 702

转载 S3C2440之UART操作(FIFO中断模式)

关于串口的知识 3个独立的串口,每一个都可以利用DMA和中断方式操作。每个包含2个64字节FIFO,一个接,一个发。 非FIFO模式相当于FIFO模式的一个寄存器缓冲模式。 每一个UART有7种状态,overrun错误,校验错误,帧错误,断点,接收缓冲区准备好,发送缓冲区为空,发送移位寄存器为空。 当接收移位寄存器中的数据传给FIFO的时候,且接收的数据触发了R

2012-09-17 22:10:48 939

转载 高效FIFO串口双机通信在ARM7上的实现

高效FIFO串口双机通信在ARM7上的实现S3C44B0X(时钟频率为60 MHz)的UART单元提供2个独立的异步串行I/O口,每个通信口均可工作于中断或DMA模式。即UART能产生内部中断请求或DMA请求,在CPU和串行I/O口之间传送数据。它支持高达115.2 Kb/s的传输速率,每1个UART通道包含了2个16位的分别用于接收和发送信号的先进先出(FIFO)通道。S3C44B0X UA

2012-09-17 17:18:03 2443

转载 UART驱动过程

URAT工作流程:1.配置发送和接收口线信息来实现访问方式   具体使用IO的端口及读写方式即配置GPIOx的PC0 PC1 PC2寄存器2.开启UART_CR中的RUN位打开波特率发生器使UART激活3.配置队列机制这个机制是接收和发送公用的配置   选择关闭队列机制即不使用FIFO中的其他15个数据矢能   选择开启队列机制则使用16个数据矢能在移位前可以存储16字节发

2012-09-17 16:07:58 946

转载 串行异步通信-UART

串行通信可以分为两种类型:同步通信、异步通信。  1.异步通信的特点及信息帧格式:    以起止式异步协议为例,下图显示的是起止式一帧数据的格式:起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位

2012-09-17 11:05:26 1608

转载 UART

UART: Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上,多数是16550AFN芯片。因为计算机内部采用并行数据数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中,再通过F

2012-09-17 09:48:23 1547

转载 ARM9硬件接口学习之 UART

在没有引入UART之前,由于没有OS,我们写程序烧到开发板内执行后,并不能在程序的运行过程中打印一些提示信息告诉我们程序究竟运行了如何或者提供接口让用户去控制程序的运行路径,最后也只能通过物理现象去判断程序是否执行成功。 使用串口我们便可以实现开发板最基本的数据的发送和接收,实现同开发板的交互,控制程序的运行,并且在程序运行中打印出一些信息进行debug。实际上bootloader

2012-09-17 09:19:03 573

转载 S3C2440的SPI控制器

S3C2440包含有两个串行外围设备接口(SPI口),每个SPI口都有两个分别用于发送和接收的8位移位寄存器,在一次SPI通信当中数据被同步发送(串行移出)和接收(串行移入)。8位串行数据的速率由相关的控制寄存器的内容决定。如果只想发送,接收到的是一些虚拟的数据。另外,如果只想接收,发送的数据也可以是一些虚拟的“1”。结构框图如下:1、SPI接口特性:与SPI接口协议v

2012-09-14 13:29:38 348

转载 详解SPI中的极性CPOL和相位CPHA

详解SPI中的极性CPOL和相位CPHA           SPI由于接口相对简单(只需要4根线),用途算是比较广泛,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。即一个SPI的Master通过SPI与一个从设备,即上述的那些Flash,ADC等,进行通讯。而主从设备之间通过SPI进行通讯,首先要保证两者之间时钟SCLK要一致,互相要商量

2012-09-14 13:17:39 320

转载 典型的SPI控制器的结构

典型的SPI控制器的结构         一个典型的SPI控制器的结构,主要又波特率发生器、主控逻辑、收发缓冲、控制部分等几大部分组成。如下图所示:

2012-09-14 13:15:05 306

转载 SPI时序详解

SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于 CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。          SPI总线有四种工作方式(SP0, SP1,

2012-09-14 13:10:23 382

转载 SPI总线协议介绍

SPI总线协议介绍一、技术性能        SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构;支持多slave模式应用,一般仅支持单Master。时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率可达几Mbps的水平

2012-09-14 13:04:19 315

转载 关于I2C和SPI总线协议

关于I2C和SPI总线协议IICvs SPI         现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求制定了

2012-09-14 11:10:04 537

转载 电话主叫号码信息的识别及实现CID

如何用单片机实现FSK来电显示解码原理:此项目的关键是,FSK是连续相位的,且高电平与低电位的频率不成倍数关系(1200Hz与2200Hz).采用测量脉冲宽度的话不容易确定上升沿与下降沿.理论上用A\D转换后的幅值对时间查表可确定上升下降沿,但软硬件太复杂,还不如买成品fsk解调IC.我采用的办法是测量脉冲宽度,因为数据是异步串行通讯方式,由1到0的下降沿来确定时钟,即由1200hz到

2012-09-13 22:51:27 4690 1

转载 基于ARM的智能来电显示器的设计

摘要:介绍基于ARM的来电号码显示器的实现方法。利用CID芯片HT9032C来解调FSK码,同时可实现液晶显示、E2PROM存储和语音播报电话主叫号码等功能,以SPI串行接口智能显示键盘控制芯片ZLG7289A为核心设计的键盘电路可实现查阅、删除信息。文章详细介绍了系统的硬件电路设计和软件流程。实践表明,显示器外围器件少,抗干扰能力强,使用方便。0引言目前我国电话网交换机传送主叫识别信息C

2012-09-13 20:31:00 773

转载 基于HT9032C的新型来电显示器设计

引言  据调查,市场上现有的来电显示器大致可以分为两类:一类是普通来电显示器;另一类是可以和上位机连接的高端来电显示设备。在单数据消息格式下,前者只能显示主叫号码、呼叫日期、时间等主叫识别信息,由于不能显示主叫用户的姓名,给用户的使用带来诸多不便。后者除了上述功能外,还具有主叫用户姓名显示、来电弹屏、语音报号、通话录音等多种功能,但需要上位机,待机耗电,且价格昂贵,适用范围受到一定的局限。

2012-09-13 20:28:18 1122

转载 linux的IO端口和IO内存

CPU对外设端口物理地址的编址方式有两种:一种是IO映射方式,另一种是内存映射方式。  Linux将基于IO映射方式的和内存映射方式的IO端口统称为IO区域(IO region)。IO region仍然是一种IO资源,因此它仍然可以用resource结构类型来描述。  Linux管理IO region:  1) request_region()  把一个给定区间的IO端

2012-09-13 14:43:52 441

转载 request_mem_region,ioremap和phys_to_virt()

Linux在头文件include/linux/ioport.h中定义了三个对I/O内存资源进行操作的宏:(1)request_mem_region()宏,请求分配指定的I/O内存资源。(2)check_mem_region()宏,检查指定的I/O内存资源是否已被占用。(3)release_mem_region()宏,释放指定的I/O内存资源。这三个宏的定义如下: #define

2012-09-13 01:08:35 612

转载 linux内存管理机制

一、存管理单元MMU高性能处理器一般都会提供一个内存管理单元MMU,该单元辅助操作系统进行内存管理,提供虚拟地址和物理地址的映射、内存访问权限保护和Cache缓存控制等硬件支持。TLB:Translation Lookaside Buffer 转换旁路缓存,是MMU的核心部件,它缓存少量的虚拟地址与物理地址的转换关系,是转换表Cache,也称为“快表”。TTW:Translation

2012-09-13 00:36:05 508

转载 /etc/profile 续

/etc/profile详解Linux /etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量的东西,学习Linux要了解Linux profile文件的相关原理,这里对则以文件进行具体分析。这里修改会对所有用户起作用。  1、Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户

2012-09-05 22:18:30 313

转载 ubuntu /etc/profile配置

修改 /etc/profile 的修改技巧转载▼在 Arch Linux 的配置过程中可能要修改 /etc/profile,修改多了以后,原来的 profile 就面目全非了。仔细看看你的 Linux 系统,如果有 /etc/profile.d 目录的话,就可以把要修改的内容分文件存放。使 ls 能带颜色显示目录建立文件 /etc/profile.d/d

2012-09-05 22:06:30 590

转载 内核同步机制——顺序锁

顺序锁(seqlock)顺序锁也是对读写锁的一种优化,对于顺序锁,读者绝不会被写者阻塞,也就说,读者可以在写者对被顺序锁保护的共享资源进行写操作时仍然可以继续读,而不必等待写者完成写操作,写者也不需要等待所有读者完成读操作才去进行写操作。但是,写者与写者之间仍然是互斥的,即如果有写者在进行写操作,其他写者必须自旋在那里,直到写者释放了顺序锁。这种锁有一个限制,它必须要求被保护的共享资源不含

2012-06-29 11:23:12 421

转载 可重入函数

可重入与不可重入2007年08月26日 星期日 15:20一:可重入函数    在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?       所

2012-06-28 08:50:25 289

转载 LINUX MTD 驱动

MTD(memory technology device 内存技术设备)是用于访问memory 设备(ROM、flash)的Linux的子系统。MTD 的主要目的是为了使新的memory 设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。MTD 的所有源代码在/drivers/mtd 子目录下。概念:CFI:    Common Flash Interface

2012-06-21 16:52:39 1188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除