nxp Kinetis KV30 芯片及 sdk 使用问题

6 篇文章 1 订阅
4 篇文章 0 订阅

NXP MKV30F64VFM10

MKV30F64VFM10是我最近在用了一颗nxp的芯片,网络上这块芯片使用的很少,使用过程也遇到一点问题,就自己怎么解决这些问题坐下筆記,希望能給別人提供些許的幫助。

nxp芯片有个 MCUXpresso SDK Builder可以创建SDK,里面包含很多外设使用历程,可以帮助新人快速上手。

下载sdk后,文件目录如下在这里插入图片描述

问题 error: ‘RTE_Components.h’ file not found

根据/doc路径下的SDK使用说明,编译
/boards/frdmk64f/demo_apps/hello_world 路径下的例程,我这边使用的是mdk,编译的时候
提示时,

error: ‘RTE_Components.h’ file not found

RTE是MDK推出的一个run-time environment插件,可以很方便的将一些常用的外设驱动,操作系统,协议栈等东西直接导入到项目中,不过在这里用不到,直接新建一个空文件即可,或者随便导入一个再取消也可以,它会自动生成RTE_Components.h文件在这里插入图片描述

问题 error: A1137E: Unexpected characters at end of line

解决了上面RTE的问题后,又发现启动文件解析报错
在这里插入图片描述
更改asm解析模式即可正常编译在这里插入图片描述

例程执行异常

一开始就注意到例程是开发板的例程,开发板为mkv31,就这问题nxp的FAE,回复说例程是通用的,网络上nxp社区也有人问类似的问题,Kinetis斑竹也确认可以直接跑例程,但本人发现例程根本无法执行到main函数,复位执行reset_handler,就fault了。

Reset_Handler:
    cpsid   i               /* Mask interrupts */
    .equ    VTOR, 0xE000ED08
    ldr     r0, =VTOR
    ldr     r1, =__Vectors
    str     r1, [r0]
    ldr     r2, [r1]
    msr     msp, r2
    ldr   r0,=SystemInit   //  调试发现执行到该步无法执行下去
    blx   r0
    cpsie   i               /* Unmask interrupts */
    ldr   r0,=__main
    bx    r0

    .pool
    .size Reset_Handler, . - Reset_Handler

    .align  1
    .thumb_func
    .weak DefaultISR
    .type DefaultISR, %function

报错信息
在这里插入图片描述
后来发现,mkv30和mkv31的时钟树不太一样,device 文件也有诸多区别,即使例程经过调整能使用在mkv30可能也会有些隐藏问题。
在这里插入图片描述

在这里插入图片描述

最后我还是采用nxp推荐的IDE MCUEXPRESSO IDE选择MKV30芯片重新创建工程这一笨方法,注意选择new project,而不是import SDK examples
在这里插入图片描述

最后成功程序正常执行,串口打印hello world
在这里插入图片描述

虽然最后是使用 MCUEXPRESSO IDE创建的例程,不过eclipse类IDE使用起来比MDK还蛋疼,最后将例程导入keil就 MCUEXPRESSO IDE吃灰了,后期用keil+vscode做开发。

MDK自建的例程附件

附件

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值