疯传|freeRTOS在恩智浦KV46MCU上的移植

经过前面对freeRTOS源码目录结构和例程的分析,接下来我们就动手来移植freeRTOS最新版源码包到NXP的kinetis系列KV46MCU上,并实现一个简单的例子,按一个按键,点亮LED灯。

准备工作

1,  官网下载freeRTOS源码包V9.0.0,解压到本地电脑上

2,  装有IAR的电脑

3,  塔式系统平台Kv46

之前曾多次提到过,移植一个源码包,必须熟悉他的源码目录结构,所以本次移植前,假设你已经熟悉freeRTOS源码目录结构,如果不熟悉,请自行学习。我们以源码包里的在k60上的例程为基础来移植到kv46上。

移植

  启动过程

我们知道系统上电后首先会运行crt0.s,这个文件是汇编文件,但是很简单,可以跟踪下,执行问这个文件会跳入start .c文件中的start函数,经过禁止看门狗,初始化,系统时钟配置等之后会跳入main函数,执行用户应用程序。

0?wx_fmt=jpeg

0?wx_fmt=jpeg

0?wx_fmt=jpeg

了解启动过程对我们移植修改顺序有很大帮助。

工程搭建

复制freeRTOS的demo文件夹下CORTEX_Kinetis_K60_Tower_IAR文件夹所有内容。并将复制的CORTEX_Kinetis_K60_Tower_IAR文件夹改名为CORTEX_Kinetis_Kv46_Tower_IAR,并将k60_tower.h改为kv46_tower.h,修改kv46_tower.h文件,删除跟网络有关的文件,因为kv46不支持网络

0?wx_fmt=jpeg

0?wx_fmt=jpeg

同样在kv46_tower.h文件中修改如下内容,因为kv46只有串口1和串口0.

0?wx_fmt=jpeg头文件修改

因为k60和kv46的头文件不一样,所以必须修改common.文件,首先包含刚刚我们修改的文件kv46_tower.h文件,在包含kv46的头文件,

0?wx_fmt=jpeg

0?wx_fmt=jpeg

工程配置修改

因为我们移植是针对不同的芯片,所以必须修改工程配置,首先选择kv46芯片

0?wx_fmt=jpeg

修改文件包含目录,删除与网络有关的,因为kv46不支持网络,并添加TWR_KV40F256

0?wx_fmt=jpeg

修改链接文件,因为k60的例程用的是512Kflash的配置文件,找到kv46的配置文件并复制到我们工程的common文件夹下,可以删除原来的k60的配置文件

0?wx_fmt=jpeg

在配置选项中指定kv46的配置文件

0?wx_fmt=jpeg

修改调试配置

0?wx_fmt=jpeg修改系统时钟函数

修改pll_init函数,因为k60和kv46的时钟配置上,有的寄存器是不一样的,这个要对照数据手册修改

主要修改的地方有

0?wx_fmt=jpeg

0?wx_fmt=jpeg

修改系统初始化函数

修改sysinit函数,因为kv46只有串口1和串口0,我们使用串口1,所以配置对应的管脚,删除掉不用的配置

0?wx_fmt=jpeg修改freeRTOS配置文件

0?wx_fmt=jpeg

0?wx_fmt=jpeg

应用程序修改

根据硬件平台,修改应用程序对应的硬件管脚配置

0?wx_fmt=jpeg0?wx_fmt=jpeg

修改vectors.h

0?wx_fmt=jpeg

还有其他LED对应管脚映射修改等,这里不在赘述。

编译测试程序

编译修改完的移植工程

0?wx_fmt=jpeg

将编译好的工程输出文件下载到板子上运行,可观察到,按动SW1按键,LED会闪亮,证明移植成功。

总结

经过此移植过程,可以证明我们的工程已经成功从K60移植到了KV46MCU上,同理可以移植其他功能,如可以添加移植Modbus通信,ADC等功能,完善工程,添加更多的应用程序模块,可以应用于实际开发

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值