ASM9260Linux参考手册.docx

上传人:b****3 文档编号:4643177 上传时间:2022-12-07 格式:DOCX 页数:45 大小:686.67KB
下载 相关 举报
ASM9260Linux参考手册.docx_第1页
第1页 / 共45页
ASM9260Linux参考手册.docx_第2页
第2页 / 共45页
ASM9260Linux参考手册.docx_第3页
第3页 / 共45页
ASM9260Linux参考手册.docx_第4页
第4页 / 共45页
ASM9260Linux参考手册.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

ASM9260Linux参考手册.docx

《ASM9260Linux参考手册.docx》由会员分享,可在线阅读,更多相关《ASM9260Linux参考手册.docx(45页珍藏版)》请在冰豆网上搜索。

ASM9260Linux参考手册.docx

ASM9260Linux参考手册

 

ASM9260Linux参考手册

关于

这个Linux板级支持包(BSP)为一个移植的Linux操作系统(OS),用于ASAP处理器及其相关参考板。

此BSP支持平台上的许多硬件特征,并支持多数不依赖于特定硬件特征的Linux操作系统特征。

目录

第一章驱动概述1

1.1通用同步/异步收发器(USART)驱动1

1.2SPI总线驱动1

1.3I2C总线驱动1

1.4MCPWM驱动2

1.5摄像头驱动2

1.6LCD驱动3

1.7以太网(MAC802.3)驱动3

1.8内存技术设备(MTD)驱动4

1.9MMC/SD主控制器驱动4

1.10SOUND驱动4

1.11看门狗驱动4

1.12RTC驱动5

1.13定时器驱动5

1.14USBHost驱动5

1.15GPIO驱动5

1.16CAN驱动5

1.17触摸屏驱动6

第二章串口驱动7

2.1硬件操作7

2.2软件操作7

2.3源码目录7

2.4菜单配置选项7

第三章SPI总线驱动10

3.1硬件操作10

3.2软件操作10

3.3源代码目录10

3.4菜单配置选项10

第四章I2C总线驱动13

4.1I2C总线驱动概述13

4.2I2C设备驱动概述13

4.3硬件操作13

4.4软件操作14

4.5I2C总线驱动软件操作14

4.6I2C设备驱动软件操作14

4.7驱动特点14

4.8源码结构14

4.9菜单配置配置选项15

第五章MCPWM驱动17

5.1硬件操作17

5.2软件操作17

5.3源代码结构17

5.4菜单配置选项18

第六章摄像头驱动19

6.1硬件操作19

6.2软件操作19

6.3源码结构19

6.4菜单配置选项20

6.5IOCTL接口功能20

第七章LCD驱动22

7.1硬件操作22

7.2软件操作22

7.3代码结构22

7.4菜单配置选项22

第八章以太网(MAC802.3)驱动24

8.1硬件操作24

8.2软件操作25

8.2.1网络测试25

8.2.2TFTP测试25

8.2.3NFS根文件系统搭建25

8.2.4网卡参数设置26

8.3源代码结构26

8.4菜单配置选项27

8.4.1协议栈配置选项:

27

8.4.2NFS配置选项28

8.4.3驱动程序配置选项:

29

第九章NANDFlash驱动30

9.1硬件操作30

9.2软件操作30

9.2.1基本操作30

9.3代码结构31

9.4菜单配置选项31

9.5NAND分区说明31

第十章MMC/SD/SDIO主控制器驱动32

10.1硬件操作32

10.2软件操作32

10.3源码架构32

10.4菜单栏配置33

10.5SD卡使用指南33

第十一章SOUND驱动34

11.1硬件操作特征:

34

11.2软件操作34

11.2.1基本操作34

11.3代码结构35

11.4菜单配置选项35

第十二章看门狗驱动36

12.1硬件操作36

12.2软件操作36

12.3代码结构36

12.4菜单配置选项36

第十三章RTC驱动37

13.1硬件操作37

13.2软件操作37

13.3代码结构37

13.4菜单配置选项37

13.5IOCTL接口功能37

第十四章定时器驱动39

14.1硬件操作39

14.2软件操作40

14.3源代码结构40

14.4菜单配置选项40

第十五章USB HOST驱动41

15.1硬件操作41

15.2软件操作41

15.3源代码结构41

15.4菜单配置选项41

15.5U盘使用指南42

第十六章GPIO驱动43

16.1硬件操作43

16.2软件操作43

16.3源代码结构43

16.4菜单配置选项43

第十七章CAN驱动44

17.1硬件操作44

17.2软件操作44

17.3源代码结构44

17.4菜单配置选项44

17.5CAN模块波特率的计算45

第十八章触摸屏驱动46

18.1硬件操作46

18.2软件操作46

18.3源代码目录46

18.4菜单配置选项46

第十九章ADC驱动47

19.1硬件操作47

19.2软件操作47

19.3源代码目录47

19.4菜单配置选项47

第二十章mnt文件夹说明48

20.1mnt目录48

1.第一章驱动概述

1.1通用同步/异步收发器(USART)驱动

通用异步收发器USART是一个串并转换的接口模块,主要实现RS232与AMBAAPB协议之间的转换。

9260系列SOC的外设组件包括10个独立的同步/异步串行通信端口,这些端口可以基于中断或者DMA操作。

1.2SPI总线驱动

SPI底层驱动实现了对普通SPI和QUADSPI主控制器驱动的支持。

SPI底层驱动为LinuxSPI核心层提供了标准内核空间API,而Linux核心层驱动为相关SPI设备驱动提供了相关接口。

这些设备包括SPI以太网控制器,SPIFLASH等。

SPI底层数据传输使用了DMA方式。

1.3I2C总线驱动

I2C总线驱动为与I2C总线交换的底层接口。

该驱动被I2C设备驱动调用,不被导出至用户层。

标准Linux内核包含了一个内核I2C模块,他被I2C设备驱动调用来触发总线驱动来实现I2C总线上的数据传输。

设备驱动使用了Linux内核提供的用于与核心I2c模块通信的标准内核空间API。

标准I2C内核功能文档说明位于Documnetation/i2c源码树下。

该总线驱动支持如下特点:

兼容于相关I2C总线标准

支持400Kbps

开始及终止信号检测

确认位生成与检测

中断驱动,字节传输

标准I2C主控模式

注:

I2Cslave模式不支持。

1.4MCPWM驱动

MCPWM含有3个独立的通道,有输出、捕获、计数三种工作模式。

以下是三种工作模式的功能描述,

输出模式:

直接输出PWM波形。

计数模式:

若通道MODE位在MCCNTCON中置位,那么通道的TC将在MC0-2输入的上升沿和/或下降沿(同时被检测的)上加1。

捕获模式:

当输入信号发生跳变时,每个PWM通道可捕获TC的瞬时值。

在MCCAPCON寄存器的控制下,任意通道都可在任意或所有MCPWM输入0-2的上升沿和/或下降沿上产生捕获事件。

1.5摄像头驱动

ASM9260芯片里面集成了Camera控制器—DCMI(Digitalcamerainterface)。

驱动中采用的摄像头是OV7670,OV7670需要先把图像数据传给DCMI,DCMI处理之后交给CPU,然后通过DMA传送到LCD显示屏上,视频驱动的整体框架见图1-1。

图1-1视频驱动的整体框架图

Linux摄像头驱动的开发大多数是基于V4L2(VideoforLinux2)架构的,V4L2是V4L的升级版本,它为linux下视频设备程序提供了一套接口规范,包括一套数据结构和底层V4L2驱动接口。

V4L2驱动接口属于摄像头驱动的核心层,上层应用程序通过V4L2接口调用底层驱动,进而通过I2C总线设置OV7670。

1.6LCD驱动

图像显示驱动由一些Linux内核驱动组成,这些驱动为ASM9260的硬件实现了标准的Linux内核接口来操作图像缓冲区,并把数据输出到LCD显示屏上。

图像驱动由以下部分组成:

•帧缓冲驱动

•LCDIF(LCDInterface)驱动

•LCD控制器驱动

图1-2显示了ASM9260的Linux图像显示驱动以及各部分之间的关系。

图1-2ASM9260内核图像部分

1.7以太网(MAC802.3)驱动

ASM9260以太网模块灵活可调,使之能适应各种不同的客户需求。

该模块支持两种标准接口,连接到外接的物理层(PHY)模块:

IEEE802.3协议定义的独立于介质的接口(MII)和简化的独立于介质的接口(RMII)。

适用于各类应用,如交换机、网络接口卡等。

以太网模块符合以下标准:

●IEEE802.3-2002标准的以太网MAC协议

●IEEE1588-2002的网路精确时钟同步标准

●RMII协会定义的RMII标准

1.8内存技术设备(MTD)驱动

该驱动适用于Alpscale公司开发的ASM9260芯片,符合linux内核MTD驱动标准。

提供了NANDFLASH硬件驱动层,负责NANDFLASH硬件设备的读、写、擦除。

MTD原始设备层以及MTD设备层未做修改,由linux内核提

供。

1.9MMC/SD主控制器驱动

MMC/SD卡驱动实现了把SSP接口配置为MMC/SD模式时的标准linuxMMC主控制器驱动。

该驱动为遵循标准Linux驱动API的LinuxMMC块驱动的底层实现。

该驱动包括以下特点:

支持MMC/SD卡

标准MMC/SD命令

1-bit或4-bit操作

卡插拔事件

写保护信号

1.10SOUND驱动

音响数据的采集、处理和传输是多媒体技术的重要组成部分。

众多的数字音频系统已经进入消费市场,例如数字音频录音带、数字声音处理器。

对于设备和生产厂家来说,标准化的信息传输结构可以提高系统的适应性。

I2S(Inter—ICSound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统

该驱动采用的是OSS驱动框架。

1.11看门狗驱动

通过设置看门狗,用户程序没有在溢出周期内喂狗(给看门狗定时器重装定时值),看门狗会产生一个系统复位。

看门狗驱动实现了一些Ioctl接口,用户可以使用这些接口设置溢出周期,启动看门狗等操作。

1.12RTC驱动

RTC(RealTimeClock)是当系统正在运行或者不运行时记录时间的实时时钟。

RTC驱动支持IOCTL接口,可以读取时间,设置时间和报警时间。

1.13定时器驱动

计数器/定时器设计为用来计算外设时钟(PCLK)或外部供电时钟的周期,并且可在规定时间处产生中断或执行其

它操作,由4个匹配寄存器的值决定。

1个外部输入,计数器可以计数外部输入的脉冲信号,也用来在输入信号跳变时

捕捉定时器的瞬时值,并可以选择产生中断。

在PWM模式下,4个匹配寄存器可以用来在匹配的输出管脚上提供单边沿控制PWM输出。

1.14USBHost驱动

Linux内核的USBHost驱动通过usbcoreAPI和USB设备交互。

有两种面向不同层面USB驱动的usbcoreAPI可以使用。

一种是通用驱动,提供块,字符或网络设备的驱动框架

一种是内核的一部分,涉及USB总线管理。

这些内核驱动包括:

HUB驱动,用于管理USB设备树。

几种不同类型的host驱动(HCDs),用于控制独立的总线。

详细介绍可以参考(https:

//www.kernel.org/doc/htmldocs/usb/host.html)

1.15GPIO驱动

GPIO模块控制管脚的通用输入输出功能。

GPIO模块位于AHB总线,可实现高速IO时序。

每一个单独端口引脚可作为边沿触发或电平触发中断请求进行服务。

中断可以被配置成在单个下降沿或上升沿上发生,也可在上升沿和下降沿上发生。

电平触发的中断引脚可是高电平有效或低电平有效。

驱动目前仅是实现了管脚电平控制及边缘中断触发。

1.16CAN驱动

CAN是ControllerAreaNetwork的简写,具有高性能和高可靠性。

该模块是一个独立的CAN控制器。

CAN控制器模块处于微控制器和标准CAN收发器之间。

CAN网络设备实现在串口进行波特率的配置。

1.17触摸屏驱动

ASAP9260集成低分辨率模拟-数字转换器和触摸屏接口,其中触摸屏控制器带有驱动电压生成电路,可用于触摸屏的坐标测定和触摸检测中断电路。

1.18中断子系统

中断模块在系统中占有很重要的地位,是系统的中断控制单元,用来控制各个模块单元送给CUP的中断信号。

控制各个中断的优先级和使能等。

第二章串口驱动

通用异步收发器USART是一个串并转换的接口模块,主要实现RS232与AMBAAPB协议之间的转换。

9260系列SOC的外设组件包括10个独立的同步/异步串行通信端口,这些端口可以基于中断或者DMA操作。

2.1硬件操作

CPU或DMA控制器通过APBX接口读写数据,以及控制/状态信息。

传送和接收路径使用内部FIFO内存缓冲,传送和接收模式分别支持独立存储16字节。

每个USART包括一个可编程波特率生成器,它可产生一个公用的传送、接收内部时钟,该时钟来自12M晶振或者

输入UARTCLK。

2.2软件操作

UART驱动注册在UART核心中,因此由内核提供了标准的驱动接口。

驱动提供了PIO的读写模式。

想了解更多关于驱动的信息,请阅读Documentation/serial/driver目录下的文档。

2.3源码目录

ASM9260串口驱动文件:

/drivers/serial/asm9260_serial.c

/arch/arm/mach-as9260/asm9260_uart.c

/arch/arm/mach-as9260/inlcude/mach/asm9260_uart.h

2.4菜单配置选项

使能ASM9260的串口驱动:

CONFIG_SERIAL_ASM9260

●使能ASM9260的串口终端功能:

图2-1使能ASM9260的串口终端功能

CONFIG_SERIAL_ASM9260_CONSOLE

●打开ASM9260的串口驱动调试功能:

图2-2打开ASM9260的串口驱动调试功能

CONFIG_ASM9260_UART_DEBUG

图2-3打开ASM9260的串口驱动调试功能

●使能各个串口:

CONFIG_ENABLE_UART0

CONFIG_ENABLE_UART1

CONFIG_ENABLE_UART2

CONFIG_ENABLE_UART3

CONFIG_ENABLE_UART4

CONFIG_ENABLE_UART5

CONFIG_ENABLE_UART6

CONFIG_ENABLE_UART7

CONFIG_ENABLE_UART8

CONFIG_ENABLE_UART9

其中UART4必须使能,配套的u-boot和cramfs使用的console都是ttyS4

图2-4使能各个串口

第三章SPI总线驱动

SPI是一个全双工的串行接口。

它可以处理在一个给定总线上多个互连的主机和从机。

在给定的数据传输过程中,接口上只能有一个主机和一个从机能够通信。

有两个相同的SPI控制器SPI0、SPI1,均支持DMA操作。

Quad-SPI(QuadSerialPeripheralInterface)控制器用来为SPIslave器件(包括标准SPI及支持Quad/Dual模式的器件)提供接口支持。

兼容标准SPI和Dual/QuadSPI协议。

Dual/QuadSPI是标准SPI的增强版,可以有更高的访问速度。

3.1硬件操作

SPI总线本身是一个全双工双向接口,而驱动仅实现了单向DMA操作。

QUADSPI支持四线选择。

3.2软件操作

在启动阶段,驱动申请注册了spi_master结构。

该结构体主要包含了下列成员的指针。

.setup

.transer

当SPI设备被注册,和相关设备驱动接口(ioctl)被调用时,setup函数功能被调用。

该函数用于配置SPI控制器以便符合相关模式需求。

当SPI设备驱动与SPI设备通信时,transfer函数功能被调用,用于记录相关请求。

另外,SPI驱动里私有数据结构bitbang里有如下成员:

.chipselect

.txrx_bufs

其中,chipselect用于芯片的片选控制。

txrx_bufs用于处理已被transfer函数功能记录的数据通信请求。

3.3源代码目录

/drivers/spi/spi_alp9260.c,普通SPI控制器驱动

/drivers/spi/qspi_alp9260.c,四线(QUAD)SPI控制器驱动

/drivers/spi/spi_flash_alp9260.c,SPIflash设备驱动,支持四线选择

/drivers/spi/spidev.c,以/dev设备节点呈现的SPI驱动实现。

3.4菜单配置选项

标准SPI驱动CONFIG_SPI_ASM9260

图3-1打开SPI驱动

QUADSPI驱动CONFIG_QSPI_ASM9260

图3-2打开QUADSPI驱动

SPIFLASH驱动CONFIG_ALPSCALE_SPI_FLASH

图3-3打开SPIFLASH驱动

SPI控制器设备节点驱动CONFIG_SPI_SPIDEV

图3-4打开SPI控制器设备节点驱动

第四章I2C总线驱动

I2C是提供了简单有效数据传输的两线串行总线,该总线减少了设备间的连接。

I2CLinux驱动有两部分组成:

I2C总线驱动,与I2C总线交流的底层接口

I2C芯片驱动,在I2C总线驱动与设备驱动间充当接口。

4.1I2C总线驱动概述

I2C总线驱动只被I2C芯片驱动触发,且不被用户空间所见。

标准Linux内核包含了被芯片驱动调用以实现I2C总线传输功能的内核I2C模块。

芯片驱动使用了内核提供的标准内核空间API来与内核I2C模块通信。

标准内核I2C文档在document/i2c目录下。

总线驱动支持如下特点。

与I2C标准兼容。

比特率高达400Kbps

起始和停止信号生成和检测

回应位生成与探测

中断驱动,字节测试。

标准I2C主控模式

4.2I2C设备驱动概述

I2C设备驱动实现了所有的用于I2C总线驱动传输的I2C数据结构。

它导出了与I2C总线通信的设备驱动所需要的特定内核空间API。

实际上,这些API功能使用了标准I2C内核空间API来调用I2C内核模块。

I2C内核模块在I2C总线驱动上搜索,并调用I2C总线驱动上的相应的功能实现。

该驱动为其他设备驱动提供了如下功能。

A.读函数读取相关设备寄存器。

B.写函数写相关设备寄存器。

摄像头驱动及音频驱动使用了该驱动提供的相关的API与摄像头通信。

4.3硬件操作

I2C模块提供了标准I2C主控制器和被控制器的相关功能。

总线驱动目前只支持主控模式,使用中断PIO模式。

使用了传输空和接收满及传输终止中断。

4.4软件操作

LinuxI2C驱动分为两部分:

I2C总线驱动和I2C器件驱动。

4.5I2C总线驱动软件操作

I2C总线驱动被名为i2c_adapter的数据结构所描述。

该结构体中最重要的成员为structurei2c_algorithm*algo。

该成员为描述数据如何在I2C总线上传输的i2c_algorithm结构的指针。

该算法结构里包含了一个用于I2C芯片驱动与I2C设备之间传输所用到的函数实现。

在系统启动的过程中,I2C总线结构体在驱动加载时注册到了I2C核心层。

这些结构在驱动卸载时被移除。

在传输每个数据包之后,I2C总线驱动等待传输空中断,以便使能下一次的数据传输。

4.6I2C设备驱动软件操作

I2C设备驱动控制I2C总线上的独立的I2C设备。

I2c_driver描述了I2C设备驱动。

该结构体里叫重要的成员有flags和attach_adapter。

当新的I2C总线驱动被添加到系统时attach_adapter回调函数被调用。

当I2C总线驱动被加载时,改驱动将与该驱动相关联的i2c_adapter保存起来以便用合适的方法来进行数据传输。

4.7驱动特点

I2C驱动支持如下特点:

A.I2C传输协议

B.I2C主控操作

注:

该I2C驱动不支持I2C被控端操作。

4.8源码结构

I2C总线驱动目录如下:

drivers/i2c/busses/i2c-alp9260.c

4.9菜单配置配置选项

如下的内核配置选项由该驱动模块提供:

I2C总线驱动CONFIG_I2C_ASM9260

图4-1打开I2C总线驱动

I2C总线设备节点驱动CONFIG_I2C_CHARDEV

图4-2打开I2C总线设备节点驱动

I2C设备EEPROM读写设备驱动

图4-3打开I2C设备EEPROM读写设备驱动

I2C设备EEPROM读设备驱动

图4-4打开I2C设备EEPROM读设备驱动

第五章MCPWM驱动

MCPWM含有3个独立的通道,有输出、捕获、计数三种工作模式。

以下是三种工作模式的功能描述,

输出模式:

直接输出PWM波形。

计数模式:

若通道MODE位在MCCNTCON中置位,那么通道的TC将在MC0-2输入的上升沿和/或下降沿(同时被检测的)上加1。

捕获模式:

当输入信号发生跳变时,每个PWM通道可捕获TC的瞬时值。

在MCCAPCON寄存器的控制下,任意通道都可在任意或所有MCPWM输入0-2的上升沿和/或下降沿上产生捕获事件。

5.1硬件操作

MCI为输入引脚,MCOA、MCOB为输出引脚。

计数和捕获模式中,输入信号与MCI引脚相连。

5.2软件操作

MCPWM有输出、计数、捕获三种工作模式,可根据cmd的值选择相应的工作模式,捕获模式通过中断实现。

5.3源代码结构

MCPWM源代码以及相关描述见表5-1,以下是各文件的路径:

arch/arm/mach-as9260/include/mach

arch/arm/mach-as9260/include/mach

driver/char/

driver/char/

表5-1MCPWM源代码

文件

描述

hardware.h

寄存器定义

pincontrol.h

管脚定义

asm9260_mcpwm.c

源文件

asm9260_mcpwm.h

头文件

5.4菜单配置选项

DeviceDrivers--->

Characterdevices--->

Asm9260pwmdriver

第六章摄像头驱动

这一章介绍摄像头驱动的架构,Linux内核里面摄像头属于标准的V4L2设备,V4L2架构为linux下的视频设备程序提供了一套数据结构和底层驱动接口,其中摄像头是一个传感器,具体的操作需要通过DCMI(camera控制器)来控制,摄像头先把取得的图像数据传给DCMI处理,然后通过DMA传送到LCD显示屏上。

6.1硬件操作

摄像头驱动分为两部分:

摄像头模块和DCMI(Digitalcamerainterface)。

摄像头是一个传

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1