MCU设计开发小Tips:创建并移植K10 BSP包的具体步骤和方法
1. K10 BSP包的创建
在基于MQX4.0对Kinetis系列MCU进行开发时,通常需要相应MCU的BSP的支持。但是在MQX4.0中,并没有针对K10的现成的BSP包,所以需要由用户进行创建。比较简便的创建方法是从现有的Kinetis BSP包中选择一个型号最接近的MCU的BSP作为模板,然后在其基础上进行修改和移植。本文介绍了对BSP进行修改和移植的具体步骤和方法。
目前已有的典型的BSP包包括:
• 支持Kinetis 50MHz 的器件的BSP包为twrk20d50m
• 支持Kinetis 72MHz 的器件的BSP包为twrk20d72m
• 支持Kinetis 100MHz的器件,针对版本1.x的BSP有3个,分别是twrk40x256,twrk53n512和twrk60n512
• 支持Kinetis 100MHz的器件,针对版本2.x可选择的BSP有2个,分别是twrk40d100m和twrk60d100m
• 支持Kinetis 120MHz的器件的BSP包有2个,分别是twrk60f120m和twrk70f120m
例如对于K10DN512ZVLQ10,其掩膜号为 4N30D,对应版本是1.x,而且其主频是100MHz,所以可使用twrk60n512的BSP为模板,在此基础上进行修改和移植。
2. BSP包代码的生成
首先从Freescale官网 https://www.freescale.com/mqx下载并安装MQX4.0。在这里也可以找到其他的早期版本,如MQX3.8、 MQX3.7等,其中都带有MQX BSP Cloning Wizard工具。可以使用此工具,参照如下步骤进行BSP的创建和移植。
2.1新建BSP
在File菜单中选择NEW MQX BSP Clone后,出现如下图1所示的界面,在Name中输入取名为K10DN512,然后选择twrk60n512作为其Board Base,最后点击Finish完成。
图1. 新建一个BSP
紧接着会出现如图2所示的窗口,可以在该界面下选择CW10.x或者IAR或者KEIL作为开发平台,以及是否需要生成BSP,PSP,MFS,RTCS,USB等库和例程的选择项。需要注意的是,由于K10本身不包括USB和以太网模块,所以不要选择相应的选项。
图2. 选择开发平台和相关的软件库
2.2 生成BSP包
为了简化操作,这里只选择IAR的开发环境,而且只选择生成BSP,PSP以及MQX例程,然后点击Generate MQX Projects,开始创建新的BSP代码,如图 3所示。
图3 点击生成BSP包的工程
接着在C:\Freescale\Freescale_MQX_4_0\config\K10DN512目录中,找到刚才生成的针对IAR的BSP代码,使用IAR开发环境选择File-》Open-》Workspace,打开build_libs.eww工程。如图4所示。
图4 打开IAR BSP工程
注意: 在 打开此工程时会提示RTCS、 MFS、 USB等库是否要加载。由于本文档只针对基本的BSP、PSP包进行移植,而且在图2中只勾选了这两项,所以这里可以忽略除BSP、 PSP以外的 MFS、 RTCS、USB等包的加载,直接点击确认完成就可以了。如果在实际应用中需要使用其他的包,需要将图2中相应的Libraries库和参考代码的选项勾选上,然后再进行代码生成即可。
3. BSP包代码的修改
在C:\Freescale\Freescale_MQX_4_0\mqx\source\psp\cortex_m文件夹里的psp_cpudef.h文件中可以找到支持Kinetis K10/K20/K30/K40/K50/K60/K70等相关芯片的PSP宏定义,例如支持K10DN512的宏定义为:
#define PSP_CPU_MK10DN512Z (PSP_CPU_NUM(PSP_CPU_ARCH_ARM_CORTEX_M4, PSP_CPU_GROUP_KINETIS_K1X, 2))
同时在该文件中还可以找到所有Freescale指定PSP处理器支持包所支持内核的宏定义,如ColdFire,PPC,Cortex-A5,Cortex-A8等。
在本文中,我们创建的是针对K10DN512的BSP开发包,所以需要用上述的宏定义,将user_config.h文件中的MQX_CPU定义
#define MQX_CPU PSP_CPU_MK60DN512Z
修改为:
#define MQX_CPU PSP_CPU_MK10DN512Z
此时点击编译按钮会出现错误提示,如下图5所示。
图5. 头文件错误
出现这个错误是由于在C:\Freescale\Freescale_MQX_4_0\mqx\source\psp\cortex_m\kinetis.h中找不到头文件MK10DZ10.h,需要从以下的IAR安装目录中寻找:
C:\Program Files\IAR Systems\Embedded Workbench 6.5\arm\inc\Freescale
然后将该文件拷贝到C:\Freescale\Freescale_MQX_4_0\mqx\source\psp\cortex_m\cpu中进行编译。
编译仍有错误出现,如下图6所示。
这个错误主要是由于移植使用的是K60的BSP包,因此里面含有以太网ENET部分和USB部分的代码,而在K10芯片中是没有这些功能模块的,在IAR IDE Workspace工作台环境下,需要将外围I/O驱动(Peripheral IO Drivers)中的ENET和USB等文件夹删除,同时将K10DN512 BSP Files文件夹中的 init_usb.c和init_enet.c文件删
Kinetis 操作系统 以太网 飞思卡尔 MCU 相关文章:
- 智能新趋势 飞思卡尔MCU引领嵌入式应用(03-01)
- 飞思卡尔固定式ePOS终端设计方案(09-23)
- Kinetis 平台的电容式触摸键盘设计(07-30)
- Kinetis M微控制器:面向计量方案的攻城利器(06-15)
- 时钟模式配置以及在MCU应用(09-12)
- 物联网操作系统Ruff 开发无人机项目体验分享(05-02)