好文档 - 专业文书写作范文服务资料分享网站

ARMCortexM4嵌入式系统开发实践2.

天下 分享 时间: 加入收藏 我要投稿 点赞

1.5 基于硬件构件的嵌入式底层软件构件的编程方法

嵌入式系统是软件与硬件的综合体,硬件设计和软件设计相辅相成。嵌入式系统中的驱动程序是直接工作在各种硬件设备上的软件,是硬件和高层软件之间的桥梁。正是通过驱动程序,各种硬件设备才能正常运行,达到既定的工作效果。

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等)为接口网标,虚线框右边的文字、等)为接口注释。

ARMCortexM4嵌入式系统开发实践2.

1.5基于硬件构件的嵌入式底层软件构件的编程方法嵌入式系统是软件与硬件的综合体,硬件设计和软件设计相辅相成。嵌入式系统中的驱动程序是直接工作在各种硬件设备上的软件,是硬件和高层软件之间的桥梁。正是通过驱动程序,各种硬件设备才能正常运行,达到既定的工作效果。1.5.1嵌入式硬件构件和软件构件的层次模型嵌入式软件构件(Embed
推荐度:
点击下载文档文档为doc格式
52tr23m97e6k2tg1xudp48fsc2a7k200rhb
领取福利

微信扫码领取福利

微信扫码分享