微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > MCU设计开发小Tips:创建并移植K10 BSP包的具体步骤和方法

MCU设计开发小Tips:创建并移植K10 BSP包的具体步骤和方法

时间:06-04 来源:飞思卡尔公司 点击:

  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文件删

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top