前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >疯传|freeRTOS在恩智浦KV46MCU上的移植

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

作者头像
用户1605515
发布2018-04-10 13:39:08
9530
发布2018-04-10 13:39:08
举报
文章被收录于专栏:嵌入式程序猿嵌入式程序猿

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

准备工作

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

2, 装有IAR的电脑

3, 塔式系统平台Kv46

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

移植

启动过程

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

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

工程搭建

复制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不支持网络

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

头文件修改

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

工程配置修改

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

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

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

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

修改调试配置

修改系统时钟函数

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

主要修改的地方有

修改系统初始化函数

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

修改freeRTOS配置文件

应用程序修改

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

修改vectors.h

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

编译测试程序

编译修改完的移植工程

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

总结

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档