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