BSP是一组与用户硬件开发板相关的程序代码,具体来说,BSP的内容是根据芯片的外设模块及用户电路板进行设计的。BSP涉及MQX操作系统启动过程中对硬件系统(时钟、中断控制等)的初始化。为了提高系统的运行效率,对应用程序中可能用到的外设模块的初始化过程也可被安排在BSP中。在Freescale MQX 4.1.0的源码包中为众多Freescale设计的芯片提供了相应的BSP参考样本。例如,Freescale为K60芯片设计的Demo板twrK60,就有相应的BSP。在源码安装包解压出来的文件组织结构中,BSP相关文件位于“..\Freescale_MQX_4_1\mqx\source\bsp\<board>”文件夹下,其中<board>代表电路板的名称,如“twrK60”。
同时,在官方设计的MQX开发框架下,为每款支持的芯片的Demo板设计了专门的BSP工程参考样本,用以生成BSP库文件。在源码安装包解压出来的文件组织结构中,BSP库工程的组织文件位于“.. \Freescale_MQX_4_1\mqx\build\<IDE>\<board>”文件夹下,其中<IDE>指的是所使用的集成开发环境,目前路径中可选的有“cw10”、“iar”和“uv4”的开发环境,<board>指使用的开发评估板,如“bsp_twrK60”。
原则上,不同的电路板对应不同的BSP,即使采用与Demo板相同的芯片,根据实际应用而设计的硬件电路不同,也需要在官方提供的BSP的基础上进行修改,适合具体的电路板。事实上,对于一般用户而言,以官方提供的BSP作为基准进行复制修改,是最常用的BSP设计方法之一,但是必须深入了解复制修改的基本准则、方法与步骤。
本书所采用的硬件平台是苏州大学飞思卡尔嵌入式中心设计的SD-FSL-K60-C评估板,其MCU与twrK60板一致,所以使用twrK60的BSP为参考,设计SD-FSL-K60-C的BSP。注意不能完全复制,必须在理解的基础上构建自己的BSP,因为它不是同一块电路板。