关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于PPC8270的BSP开发与实现

基于PPC8270的BSP开发与实现

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

2.2 软件的职责
根据上节关于软件的定义,软件的职责主要包括以下两点:
(1)目标机硬件环境的初始化。
(2)硬件驱动程序的集成。访问硬件设备驱动程序,BSP必须包含设备驱动程序的相关支持、设备的配置管理等。

3 的BSP过程
3.1 目标机硬件环境的初始化
所谓目标机硬件环境的初始化是指从目标机系统上电复位开始到操作系统开始初始化用户应用时的一段时间内系统所执行的过程,该过程主要包括两部分工作:CPU初始化和目标机初始化。
3.1.1 CPU初始化
CPU初始化的目的是通过对CPU内部各种控制与状态寄存器的设置来使得CPU具有确定的工作方式和稳定的状态,在该实例中,主要完成以下几种工作:
(1)设置CPU启动方式为冷启动;
(2)通过IMMR设置芯片内部存储空间为0xF0000000;
(3)通过清除MSR(Machine state register)使芯片达到初始工作状态;
(4)根据应用需求对目标系统进行空间配置,并进行IBAT,DBAT以及TLB的初始化;
(5)初始化指令Cache和数据Cache;
(6)初始化栈地址为0x20000。
3.1.2 目标机初始化
初始化控制芯片的寄存器、I/O设备寄存器,为整个软件系统提供底层硬件环境的支持。在该实例中,目标机的初始化主要完成:
(1)将目标机启动地址设置为0xFFF00100;
(2)PCI总线的初始化,包括PCI总线配置地址和数据地址的指定;
(3)SDRAM初始化;
(4)将FLASH基地址配置为0xFF800000;
(5)通过清除MSR(Machine State Register)使PPC8270芯片达到初始工作状态。
3.2 硬件驱动程序的开发
PPC8270的BSP开发涉及的基本硬件资源包括串口控制器、中断控制器、定时器、网络控制器,在该开发实例中,上述基本硬件资源均采用PPC8270处理器内部集成的控制芯片。
3.2.1 串口控制器驱动开发
串口通信是目标机与宿主机联系的桥梁,在BSP的硬件驱动开发中,通常首先进行的是串口控制器的开发,从而为后续的开发工作提供更多的调试途径。在该开发实例中采用PPC8270内部集成的SCC(Serial Communications Controllers)作为串口控制器,根据上层操作系统的需求,串口控制器驱动应具有的基本功能包括:串口初始化和串口的读/写。
串口控制器的驱动开发首先应完成串口初始化的工作,使串口芯片达到一个确定的工作状态,主要包括以下几个方面的内容:
(1)输入/输出端口的初始化。PPC8270内部包含4路通用的输入/输出端口。每路输入/输出端口包含4组独立的可读/写的配置寄存器:PODRA(Port OpenDrain Registers)-PODRD,PDIRA(Port Data Direction Registers)-PDIRD,PSORA(Port Special Options Registe-rs)-PSORD和PDATA(Port Data Registers)-PDATD。根据本实例硬件设计,采用第四路输入/输出端口,因此应对其各配置寄存器进行设置,并将其与采用的串口通道进行连接。
(2)串口波特率的初始化。对于SCC的波特率初始化可通过PPC8270内部BRGs(Baud-Rate Generators)来,并通过CMXSCR(CMX SCC Clock Route Register)的设置将BRG的设置与具体的串口通道进行连接。在该实例中,设置串口波特率为115 200 Kb。
(3)缓冲区描述符的初始化。SCC接收数据和发送数据的缓冲区是通过缓冲区描述符来指定的,包括接收缓冲区描述符和发送缓冲区描述符。SCC缓冲区描述符的结构如图4所示。

本文引用地址://www.cghlg.com/article/161778.htm

c.JPG


SCC串口发送和接收数据均通过缓冲区描述符来查询数据状态与地址,因此,缓冲区描述符的初始化应完成缓冲区描述符起始地址的指定、缓冲区长度的初始化以及串口发送接收的工作方式设置。
(4)参数RAM的初始化。SCC中每一路串口通道均可以进行独立的参数RAM初始化,主要完成本串口通道基地址、串口中断处理方式以及串口数据的传送方式的设置。
(5)UART工作方式设置。
(6)串口中断向量的挂接。
在完成串口初始化的基础上,可以进一步进行串口读/写功能的开发。SCC的串口读/写控制是通过缓冲区描述符来的。当接收缓冲区描述符中指定的缓冲区地址有新的接收数据到达时,接收缓冲区描述符的状态会发生改变。当发送缓冲区描述符中指定的缓冲区地址有新的发送数据到达时,发送缓冲区描述符的状态会发生改变。因此,可以通过对缓冲区描述符状态的监控,来确定何时从接收缓冲区拷贝数据以及何时将发送数据拷贝至发送缓冲区,从而完成串口数据的接收和发送。



评论


相关推荐

技术专区

关闭