nxp Kinetis KV30 芯片及 sdk 使用问题

  • Post author:
  • Post category:其他




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自建的例程附件


附件



版权声明:本文为weixin_43862847原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。