2014_嵌入式系统讲义6_io接口电路第6章 IO接口电路
2017/12/2
1
2017/12/2
2
主要内容
1 引言
2 GPIO接口
3 中断控制器
4 定时/计数器
5 UART接口
6 JTAG接口
2017/12/2
3
1 引言
外设一般不能与CPU直接相连,必须经过中间电路再与CPU相连,这些中间电路被称为I/O接口电路,简称I/O接口( I/O控制器,I/O设备?)
2017/12/2
4
1 引言——基本组成
2017/12/2
5
1 引言——编址方式
I/O端口
CPU(程序员)能看到的是数据寄存器、状态寄存器和控制寄存器
I/O接口电路中能被CPU直接访问的寄存器或某些特定的器件称为I/O端口
每一个端口都有一个地址
#define UCON0 (*(volatile unsigned long *)0x01D00004)
一个端口地址可能对应几个内部(物理)寄存器
与存储器不同
#define URXH0 (*(volatile unsigned long *)0x01D00024)
2017/12/2
6
1 引言——数据传送方式
I/O的数据传送方式
查询
最简单、最可靠的数据传送方式
中断
嵌入式系统最常用的数据传送方式
直接内存访问(DMA)
批量数据传送方式
1 引言——程序查询方式
优点:CPU的操作和外围设备的操作能够同步,而且硬件结构比较简单,易于实现
缺点:CPU效率低
适用场合:适合于在CPU不太忙且传输速度不高的情况下采用,当前除单片机外,很少使用程序查询方式。
2017/12/2
7
2017/12/2
8
1 引言——需要关注的几个问题
(1)关键字static
(2)关键字const
(3)关键字volatile
(4)访问绝对地址
(5)死循环
2017/12/2
9
(1)关键字static
关键字static有三个作用
在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变
在文件域内(但在函数体外),一个被声明为静态的变量可以被文件域内所有函数访问,但不能被文件域外其它函数访问。它是一个本地的全局变量
在文件域内,一个被声明为静态的函数只可被这一文件域内的其它函数调用。那就是,这个函数被限制在声明它的文件的本地范围内使用
c语言中static的语义
,生存期为整个源程序,但作用域与自动变量相同,只能在定义该变量的函数内使用。退出该函数后, 尽管该变量还继续存在,但不能使用它。
,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。
2014 嵌入式系统讲义6 io接口电路 来自淘豆网m.daumloan.com转载请标明出处.