創(chuàng)建并移植K10 BSP包的具體步驟和方法(三)
}
圖7. PE設(shè)置
MQX4.0中PE的時鐘初始化代碼在bsp_cm.c文件的void __pe_initialize_hardware(void)函數(shù)中??梢詫⑸鲜鯬E生成的代碼直接粘貼在該文件中。調(diào)試可能會出現(xiàn)系統(tǒng)時鐘配置錯誤。當(dāng)出現(xiàn)此類錯誤時,程序可能會停在圖8所示的dispatch.s文件中的等待中斷的語句cpsid.n i處。這種錯誤往往是由于只修改了部分的時鐘寄存器設(shè)置或者是直接使用其他系列的Kinetis的BSP包中的時鐘配置,而沒有做相應(yīng)的修改所造成的。例如,直接使用K60 BSP包的默認(rèn)時鐘部分代碼,在K10的25Mhz外部時鐘環(huán)境中進(jìn)行調(diào)試就會出現(xiàn)上述錯誤。這里不建議手工書寫代碼或者直接拷貝其他Kinetis系列的不同時鐘配置的代碼,建議使用PE來配置生成時鐘代碼,對于有錯誤的部分PE中會有相關(guān)的紅色提示符標(biāo)示出來,因此不用擔(dān)心那些時鐘寄存器配置錯誤或被遺漏了。
圖8. dispatch.s代碼
一般地,在user_config.h配置中,RTC是默認(rèn)使能的,也就是外部的32.768Khz晶振是需要外接的,如果不外接,可以將配置文件user_config.h中的宏定義語句:
#define BSPCFG_ENABLE_RTCDEV 1 修改為
#define BSPCFG_ENABLE_RTCDEV 0
另外由于K10中不包含USB和以太網(wǎng)的代碼,所以需要將相關(guān)的USB,Ethernet的文件刪除,并將user_config.h頭文件中的宏定義修改為:
#define RTCSCFG_ENABLE_ICMP 0
#define RTCSCFG_ENABLE_UDP 0
#define RTCSCFG_ENABLE_TCP 0
#define RTCSCFG_ENABLE_STATS 0
#define RTCSCFG_ENABLE_GATEWAYS 0
#define FTPDCFG_USES_MFS 0
#define RTCSCFG_ENABLE_SNMP 0
#define TELNETDCFG_NOWAIT FALSE
#define HTTPDCFG_POLL_MODE 0
#define HTTPDCFG_STATIC_TASKS 0
評論