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

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

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

  extern "C" const TASK_TEMPLATE_STRUCT MQX_template_list[] =

  {

  // Task Index, Function, Stack, Priority, Name, Attributes, Param, Time Slice */

  { MAIN_TASK, main_task, MAIN_STACK, 11, "main_task", MQX_AUTO_START_TASK, 0, 0 },

  { 0 }

  };

  void main_task(uint_32 parameter)

  {

  while(1)

  {

  puts("A");

  }

  }

  需要将C:\Freescale\Freescale_MQX_4_0\lib\K10DN512.iar\debug\bsp中的bsp.a库文件,以及C:\Freescale\Freescale_MQX_4_0\lib\K10DN512.iar\debug\psp中的psp.a库文件添加到工程中去。如下图10所示,点击main选择右键option for node "main",并在C/C++ Compiler的预处理器preprocessor和Assembler中设置文件的路径如下。

  C:\Freescale\Freescale_MQX_4_0\lib\K10DN512.iar\debug\bsp

  C:\Freescale\Freescale_MQX_4_0\lib\K10DN512.iar\debug\psp

  C:\Freescale\Freescale_MQX_4_0\lib\K10DN512.iar\debug\bsp\Generated_Code

  C:\Freescale\Freescale_MQX_4_0\lib\K10DN512.iar\debug

  

  图10. 在Option选项中设置

  注意需要将 文件拷贝到C:\Freescale\Freescale_MQX_4_0\lib\K10DN512.iar\debug\psp文件夹中。

  编译完成后,通过JLINK等烧写工具将软件下载到目标板后开始运行,系统运行的界面如图11所示。如果系统进不了main函数,说明MQX bsp系统移植还有问题,需要按照前面介绍的步骤进行仔细的检查。

  

  图11 复位后运行进入main函数

  系统进入main函数,在mqx函数处设置断点,点击图标go运行,程序进入mqx初始化部分,如图12所示。

  

  图12 mqx初始化

  在main_task中设置断点,再次运行,如图13所示,在IAR 的JLINK任务栏中可以找到TASK LIST列表。这里需要注意的是,需要在IAR的环境下,将option下debug插件的MQX勾选,如图14所示,勾选后才可以看到MQX的TASK等任务信息。

  

  图13 主任务运行

  

  图14 选取MQX

  4.2 GPIO配置与任务调试

  在MQX4.0安装目录C:\Freescale\Freescale_MQX_4_0\mqx\examples下可以找到很多参考例程,包括ADC、 Hello、 I2C、 Lowpower、 Timer等。这里采用使用的最多的GPIO例程来验证BSP是否能正常工作。

  由于在默认的bsp包中user_config.h中没有配置使能BSPCFG_ENABLE_GPIODEV外设,需要在该文件中加入语句#define BSPCFG_ENABLE_GPIODEV 1,如下图15所示。

  

  图15 使能GPIO任务配置

  在这里,为了验证MQX4.0版本操作系统对于MQX3.8等早期版本软件代码的兼容性,本例使用的源程序 代码,可以在MQX3.8版本的安装目录中C:\Freescale\Freescale MQX 3.8\mqx\examples\gpio找到。直接将该文件添加到工程中,如图16所示,在IAR的主程序中,在读IO状态处设置断点,系统执行到此断点处,如果开启IAR任务栏的TASK List, 在Stack Uage Summary窗口可以看到任务和栈的运行情况。

  

  图16 GPIO任务 运行

  这里需要注意的是,代码中用到了一些BSP_BUTTON1,BSP_LED1等宏定义,这些宏定义在MQX4.0的安装目录C:\Freescale\Freescale_MQX_4_0\mqx\source\bsp\K10DN512的K10DN512.H文件中可以找到,例如BSP_LED1中的宏定义如下:

  #define BSP_LED1 (GPIO_PORT_A | GPIO_PIN11)

  如果目标板中的LED引脚和默认的设置不一样,需要对其进行修改,然后重新编译。

  另外在通过下载工具调试代码的时候,需要指定icf配置文件,如图17所示。这里K10DN512和K60DN512的Flash大小一样,不需要做修改。如果使用其他不同配置的芯片则需要对Memory Region进行调整。

  

  图17 ICF文件的位置指定

  5. 总结

  本文介绍了如何基于飞思卡尔的MQX操作系统,创建并移植目标MCU的 BSP包,并可以针对不同的开发平台(CW, KEIL, IAR)定制适合目标芯片的BSP。

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

网站地图

Top