PAGE1
PAGE1
K64F启动与调试
在开发基于NXPK64F单片机的高性能多媒体设备时,启动与调试是至关重要的步骤。本节将详细介绍K64F单片机的启动过程和调试方法,帮助开发者快速上手并解决常见问题。
启动过程
1.复位引脚
K64F单片机的复位引脚(nRESET)是启动过程中的关键引脚。当nRESET引脚被拉低时,单片机会进入复位状态。复位后,单片机会从地址0始执行代码。通常,复位引脚需要连接到一个外部复位电路,如复位按钮或复位电路。
2.启动模式
K64F单片机支持多种启动模式,包括从内部Flash启动、从外部存储器启动等。启动模式由以下引脚组合决定:
PTE24(CMOD)和PTE25(CMT):这两个引脚决定了启动模式。
PTE26(BOOT_MODE):这个引脚决定了从内部Flash还是外部存储器启动。
启动模式的配置如下表所示:
CMOD|CMT|BOOT_MODE|启动模式|
|——|—–|———–|———-|
0|0|0|内部Flash|
0|0|1|外部存储器|
1|0|0|内部Flash|
1|0|1|外部存储器|
1|1|0|内部Flash|
1|1|1|外部存储器|
3.启动代码
启动代码通常位于startup_MK64F12.s文件中,这个文件是K64F单片机的启动汇编文件。启动代码的主要功能包括初始化栈指针、跳转到主函数(main)等。
以下是一个典型的K64F启动代码示例:
;startup_MK64F12.s
;K64F启动汇编文件
;定义向量表
__VectorsDCD__Initial_SP;初始栈指针
DCDReset_Handler;复位处理函数
DCDNMI_Handler;NMI处理函数
DCDHardFault_Handler;硬件故障处理函数
DCDMemManage_Handler;内存管理故障处理函数
DCDBusFault_Handler;总线故障处理函数
DCDUsageFault_Handler;使用故障处理函数
DCD0,0,0,0;保留
DCDSVC_Handler;SVC处理函数
DCDDebugMon_Handler;调试监控处理函数
DCD0;保留
DCDPendSV_Handler;PendSV处理函数
DCDSysTick_Handler;系统滴答定时器处理函数
DCDWDOG_IRQHandler;看门狗中断处理函数
DCDDMA0_IRQHandler;DMA中断处理函数
;其他中断处理函数...
;初始栈指针
__Initial_SPEQU0;栈顶地址
;复位处理函数
Reset_HandlerPROC
IMPORTSystemInit
IMPORTmain
LDRR0,=__Initial_SP;设置栈指针
MSRMSP,R0
BLSystemInit