新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于S3C2440和嵌入式Linux的扩展串口设计

基于S3C2440和嵌入式Linux的扩展串口设计

作者: 时间:2011-07-18 来源:网络 收藏

因为方案采用中断方式,所以将NSEL置高位,即允许芯片中断。16C554A有INTA、INTB、INTC、IN TD4个中断线,第一片与系统总线的EINT1,EINT2,EINT5,EINT6相连,第二片与GPIO中的EINT11,EINT13,EINT15,EIN39中断相连,使得任一片芯片的任意的端口都能产生中断。
的A0,A1,A2,A4,A5,A24通过不同组合可以选择8个不同的端口。nGCS5与74LS138译码器片选脚相连,根据对地址空间的定义,这样就确定了第一片16C554A芯片4个端口的访问地址为0X28000000,0X28000010,0X28000020,0X28000030,第二片16C554A扩展芯片4个端口的访问地址为0X29000000,0X29000010,0X29000020,0X29000030,根据端口基地址就可以确定片内的各个寄存器地址。具体连接如图4所示。

本文引用地址:https://www.eepw.com.cn/article/150465.htm

d.JPG



3 驱动程序移植
软件主要是为设备编写驱动程序。设备驱动是介于硬件和操作系统之间的软件接口,主要功能包括:探测和初始化设备;从设备接收数据并提交给内核;从内核接收数据送到设备;检测和处理设备错误。
驱动程序从上到下分为4层:终端设备层、行规程、串口抽象层、串口芯片层。其中,串口芯片层与具体的芯片相关,主要是向串口抽象层提供串口芯片所用的资源,还进行一些与芯片相关的设置。
TL16C554A扩展串口芯片属于标准串口,内核的串口驱动程序对它支持它的驱动程序就是内核代码中的driver/seria/8250.c.入口函数是serial8250_init,它用于向串口抽象层提供注册串口的物理信息。串口的物理信息主要有两类:访问地址和中断号。所以只要设置好这两类物理信息,就可以驱动扩展串口了,图5为驱动程序移植流程。

e.JPG


3.1 构建扩展串口的数据结构
串口的物理信息存储在内核源程序arch/arm/plats3c24xx/common-smdk.c中,所以主要工作是在commonsmdk.c源文件中增加三段代码:
1)增加头文件
源程序中要包含头文件linux/serial_8250.h,用于告诉编译器使用8250.c作为扩展串口的源程序;

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭