购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4.1 MQX工程框架AMQXFW的目录结构

本书设计的MQX工程框架AMQXFW如表2-4所示,它包含了完整的MQX系统内核、PSP和BSP源码,方便工程的调试、追踪源码的执行过程、工程的移植和灵活裁剪,同时也有利于MQX的应用与研究。本书后续章节的样例程序都将在此框架下编写。

1.设计MQX工程框架AMQXFW的基本原则

(1)遵循软件工程中可复用、可移植、容易理解和维护的基本思想,为提高嵌入式软件的开发效率、缩短开发周期打下基础。

表2-4 MQX工程框架AMQXFW的目录结构

(2)可复用与可移植的前提是以构件为基础,制作构件时,要对构件的共性和个性进行分析,提取出构件的属性和对外接口函数,使得构件移植到不同CPU、MCU、IDE时,尽可能只修改构件的头文件,对构件的源程序文件则不必修改或改动很小。

(3)目录结构合理分类,兼容无操作系统构件化工程框架。通过分析目录名、文件名、文件内容的共性,进行归纳分类,实现兼容无操作系统构件化工程框架(NOS-Framework,NOSFW),将MQX作为构件目录的形式添加到NOSFW工程框架中,扩展为MQX下的构件化工程框架AMQXFW。

2.MQX工程框架AMQXFW的基本内容

深入理解工程框架的目录结构,对学习、理解与与应用MQX开发实际工程有重要意义。MQX工程框架AMQXFW的基本内容如下。

(1)用数字01、02、…、09对文件夹进行编号,使得物理排序与工程逻辑排序一致,便于自上而下阅读,保持所有工程文件夹结构一致。

(2)工程目录名代表工程名,内部的工程名实际意义不大,可不变动内部工程名。

(3)工程目录下的一级文件夹名称 固定,名称及个数不变。

(4)<01_Doc> 放在首位置,内含文件readme.txt为工程说明文档,需仔细填写。

(5)<02_CPU>中文件名及内容因CPU不同而修改,例如,由CortexM4内核更换为CortexM3内核,则应修改arm_M4.h和arm_M4.c为arm_M3.h与arm_M3.c,此文件可从内核或芯片厂商网站获取。

(6)<03_MCU>中存放芯片头文件及芯片初始化文件。MCU不同时,芯片头文件需更换,可从芯片厂商网站获取,其他文件内容也需变动。

(7)<04_Linker_File>中只有一个文件“intflash.ld”,即链接文件,指出程序、常量、变量放在何处,并给出中断向量表存放处及堆栈指针的值。建议该文件夹名及文件名均不要更改,可以根据需要更改intflash.ld文件的内容。当然,若开发环境要求的链接文件名有要求,可因开发环境不同而修改文件名及相应文件内容。

(8)<05_Driver>存放用户制作的MCU底层驱动。

(9)<06_App_Component>存放应用构件。应用构件被定义为通过调用底层驱动构件而完成特定功能的构件,如LED、LCD、电动机开关构件。此文件夹中的文件名及内容封装后均不可更改。使用不同芯片时只要修改其头文件及底层驱动构件内容,而不需要更改应用应用构件的代码。

(10)<07_Soft_Component>存放软件构件。软件构件被定义为与CPU及MCU无关的通用软件构件,包括队列、链表等,此文件夹中内容不允许更改。

(11)<08_Sources>存放总头文件(includes.h,供main.c包含使用)、主程序(main.c)、中断程序头文件(isr.h)、及中断服务例程源文件(isr.c),即程序执行的两条主线。这些文件名不再改动,只更新其内容。

(12)<09_MQX>存放MQX内核、PSP、BSP及任务代码。后面将专门阐述。 pxGq1RG5HaeniTHljQ9AxsXmDWq+JmcDzGomlvyQyW4GW6dxClKoTEBmgQscvXf6

点击中间区域
呼出菜单
上一章
目录
下一章
×