1.5 基于硬件构件的嵌入式底层软件构件的编程方法
arm嵌入式系统期末考试
嵌入式系统是软件与硬件的综合体,硬件设计和软件设计相辅相成。嵌入式系统中的驱动程序是直接工作在各种硬件设备上的软件,是硬件和高层软件之间的桥梁。正是通过驱动程序,各种硬件设备才能正常运行,到达既定的工作效果。
1.5.1 嵌入式硬件构件和软件构件的层次模型
嵌入式软件构件〔Embedded Software Component, ESC〕是实现一定嵌入式系统功能的一组封装的、标准的、可重用的、具有嵌入特性的软件单元,是组织嵌入式系统的功能单位。
。IO 〕。由图1-6可看出,底层外设构件可以调用底层内部构件,如LCD 构件可以调用GPIO 构件、PCF8563构件〔时钟构件〕可以调用I2C 构件等。而高层构件可以调用底层外设构件和底层内部构件中的功能构件,而不能直接调用GPIO 构件。另外,考虑到几乎所有的底层内部构件都涉及到MCU 各种寄存器的使用,
因此将MCU 的所有寄存器定义组织在一起,形成MCU 头文件,以便其它构件头文件中包含该头文件。
1.5.2 底层构件的实现方法与编程思想
底层构件是与硬件直接打交道的软件,由头文件和源程序文件两部分组成。
头文件中的内容主要有:包含下层构件头文件的#include语句、用以描述构件属性的宏定义语句以及对外接口函数原型说明。在头文件中使用函数原型,对于建立代码模块和外部接口的标准,便于他人使用,都是很有帮助的。使用这些函数的用户,不需要查源代码去了解参数的具体类型,直接查看函数原型即可。
源程序文件中存放构件的内部函数和外部函数的定义,即函数的实现代码,以完成函数所要实现的功能。
在对底层构件进行设计时,最关键的工作是要对构件的共性和个性进行分析,抽取出构件的属性和对外接口函数。尽量做到:的头文件,对于构件的源程序文件则不必修改或改动很小。
例如,串行通信模块SCI 是大多数MCU MCU 串行通信程序发现:在查询方式下,各种MCU 接收到数据和数据是否发送完毕,这就是SCI ,该状态寄存器的名称可能不同,这两个标志位的位号也有可能不同。此外,和个性之后,就可以抽取出SCI 内容参见第五章。
〔1
〔2
〔3〕对MCU MCU 时,只要修改重定
〔4作用域仅限于定义该函数的文件。外部在定义外部函数时,应该对函数名、函数功能、必须借助于该构件提供的接口操作函数来实现。
〔5这样做不但使得接口简洁,更加防止了全局变量可能引发的安全隐患。
1.5.3 硬件构件及底层软件构件的重用与移植方法
重用是指在一个系统中,同一构件可被重复使用多次。移植是指将一个系统中使用到的构件应用到另外一个系统中。
1.硬件构件的重用与移植
对于以单MCU 为核心的嵌入式应用系统而言,当用硬件构件“组装”硬件系统时,核心构件〔即最小系统〕有且只有一个,而中间构件和终端构件可有多个,并且相同类型的构
件可出现多次。下面以终端构件LCD 为例,介绍硬件构件的移植方法。
(a LCD构件在系统A 中的应用 B
图1-7 LCD在应用系统A 中,假设LCD 的数据线〔LCD-D0~LCD-D78位MCU 〕芯片的通用IO 口的B
口相连,C 口作为LCD 寄存器选择信号LCD-RS 与C 口第0引脚连接,读写信号LCD-RW C 口第LCD_E与C 口第2引脚连接,则LCD 1-7(a虚线框左边的文字〔如PTC0、PTC1等〕为接口网标,虚线框右边的文字、等〕为接口注释。
在应用系统B 中,假设LCD 的数据线〔〔32位MCU 〕芯片的通用IO 口的AN 口相连,、2LCD-RS 、读写信号LCD-RW 、使能信号LCD_ELCD 1-7(b所示。
2
其头文件和程序文件是否MCU 型号改变〕
相对应的底层构件头文件LCD.h 可如下编写。
#include ―GPIO.h‖ //包含GPIO 构件头文件
//显示数据传送口
//控制信号传送口
//寄存器选择信号
/
/读写信号
//使能信号
//液晶显示初始化
//填充LCD ,可实现清屏
//画线 #define LCD_Data GPIO_PORTB #define LCD_Ctrl GPIO_PORTC #define LCD_RS 0 #define LCD_RW 1 #define LCD_E 2 void LCD_Init(void; void
LCD_Fill(INT8U a; void LCD_PutDot(INT8U x,INT8U y; //画点 void
LCD_PutLine(INT8U x1,INT8U y1,INT8U x2,INT8U y2;
void LCD_PutChar(INT8U a; //显示一个字符
void LCD_PutString(INT8U str[]; //显示一串字符
当LCD 硬件构件发生如图1-7(b所示的移植时,显示数据传送口和控制信号传送口发生了改变,此时,只要将上面的第1和第2条宏定义语句修改成:
#define LCD_Data GPIO_PORTAN
//显示数据传送口
#define LCD_Ctrl GPIO_PORTTA //控制信号传送口
必须申明的是,本书提出构件化设计方法的目的是,在进行软硬件移植时,设计人员所做的改动要尽量小,而不是不作任何改动。希望改动在头文件中进行,而不希望改动程序文件,事实上,不作任何改动是不现实的。
第2章 Kinetis 概述与MK60N512VMD100硬件最小系
本章简要概述Kinetis 系列微处理器,给出K60系列微控制器存储器映像与编程结构、寻址方式、异常向量表;重点指出学习一个新MCU 芯片比较快速的学习过程;给出K60N512的引脚功能与硬件最小系统电路。本章的重点是:存储空间的地址分配、中断结构、硬件最小系统电路。
2.1 ARM公司的发展史及ARM 架构的发展
1.ARM 公司的历史
ARM 今天ARM 30年全球最有影响力的10家公司之一。ARM 11原名Advanced RISC Machine,是苹果电脑、Acorn 的合资企业。Acorn 曾推出世界首个商用单芯片RISC RISC 技术应用于自身系统,ARM ARM RISC 架构,迅速在市场上崭露头角,与此同时理器的RISC 结构。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。