3.1.2.3针对应用对内核进行的扩充 由于μC/OS-II仅是一个实时内核,不像其它的实时操作系统那样提供给用户的只是一些API函数接口,把它移植到目标硬件平台只是系统设计工作的开始,还需要针对实际的应用需求对其进行功能扩展,包括底层的硬件驱动、文件系统、用户图形接口(GUI)、网络功能等,从而建立一个实用的RTOS。下面仅对外设及驱动程序进行论述。 外设驱动程序可以对系统提供访问外围设备的接口,把操作系统(软件)和外围设备(硬件)分离开来。当外围设备改变的时候,只需更换相应的驱动程序,不必修改操作系统的内核以及运行在操作系统的软件。下面仅建立用到的外设驱动程序标准接口。 ⑴ 串行口(UART) 串行口符合RS-232标准,通信的最高速度可以达到115200bps。建立的接口函数如下: Uart_Init 定义:void Uart_Init (INT16U mclk, INT16U baud); 功能:初始化串行口,设置串行口通信的波特率 参数说明: mclk:系统的主时钟频率。 baud:所设定的串行口通信波特率 Uart_SendStr 定义:void Uart_SendStr(char * str,…..); 功能:输出字符串到串口 参数说明: str:输出到串行口的字符串。 Uart_Getch 定义:char Uart_Getch(); 功能:接收串口的数据,收到数据时返回,返回串口接收到的数据。 Uart_Sendch 定义:void Uart_Sendch(char data) 功能:向串口发送数据 参数说明: data:发送的数据 ⑵ 液晶显示驱动程序 系统设计中选用的LCD是北京精电蓬远显示技术公司生产的MGLS-12864,内部有控制电路,在系统的内存里开辟了一块内存作为液晶屏显示的后台缓冲区LCDBuffer,用于保存要显示的内容。对于不同的液晶屏显示只需要改动LCD128.C和LCD128.H中的程序即可。 液晶模块有两种工作模式:图形方式和文本方式。在图形方式下,模块上的缓冲区映射的是液晶屏上显示的图形点阵;在文本方式下,模块上的缓冲区对应的是液晶屏上显示的文本字符,包括英文字符和英文标点符号。在此对汉字显示仅作演示之用。 液晶屏的操作主要包括:初始化、设置工作模式(文本或者图形)、更新显示。接口函数如下: LCD_Init 定义:void LCD_Init(void); 功能:初始化LCD,在系统启动时此函数被调用。 LCD_Pritf 定义:void LCD_Printf(char *str,…); 功能:在LCD的文本方式下输出字符串。 参数说明: str:所输出的字符串 LCD_ChangeMode 定义:void LCD_ChangeMode( INT8U mode); 功能:改变LCD的工作模式 参数说明: mode: 设定的LCD的显示模式,0 表示文本模式, 1 表示图形模式 LCD_Refresh 定义:void LCD_Refresh (INT8U col,INT8U row ,char *str ) 功能:更新LCD的显示,把后台缓冲区LCDBuffer[][]中的内容更新到LCD的显示屏上。 参数说明: col: 显示字符串的起始列数。 row: 显示字符串的起始列数。 str: 需要显示的内容 ⑶ 键盘驱动程序 键盘的相关驱动函数如下: GetKey 定义:INT8U GetKey ( ); 功能:获得被按下的键数,返回值中指示出哪个键被按下。 GetScanKey 定义:INT8U GetScanKey ( ) 功能:对各个按键进行扫描,从而确定其状态。相应位指示其是否被按下(1 表示按下,0表示断开)。 ⑷ A/D驱动程序 系统中采用20位模数转换器LTC2430,完成对温度信号的测量,将模拟信号转换成相应的数字信号之后,传给处理器进行相关的处理。根据其转换特性,设计的函数接口如下: 2430_Check 定义:INT8U 2430_Check ( ); 功能:检查本次模数转换是否完成。返回值为0时,正在进行转换,否则转换结束。 2430_ReadValue 定义:INT16U 2430_ReadValue ( ) 功能:读取转换结果并返回其值。 3.2嵌入式系统软/硬件协同设计技术 传统的嵌入式系统的设计方法如图3-4所示,硬件和软件的分为两个独立的部分,有硬件工程师和软件工程师按照拟定的设计流程分别完成。这种设计方法只能改善硬件/软件各自的性能,而有限的设计空间不可能对系统做出较好的性能综合优化。20世纪90年代初,国外有些学者提出“这种传统的设计方法,只是早期计算机技术落伍的产物,它不能求出适合于某个专用系统
首页 上一页 5 6 7 8 9 10 11 下一页 尾页 8/20/20