新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 創(chuàng)建并移植K10 BSP包的具體步驟和方法(二)

創(chuàng)建并移植K10 BSP包的具體步驟和方法(二)

作者: 時(shí)間:2013-09-30 來源:網(wǎng)絡(luò) 收藏

3. 代碼的修改

  在C:FreescaleFreescale_MQX_4_0mqxsourcepspcortex_m文件夾里的psp_cpudef.h文件中可以找到支持Kinetis /K20/K30/K40/K50/K60/K70等相關(guān)芯片的PSP宏定義,例如支持DN512的宏定義為:

  #define PSP_CPU_MDN512Z (PSP_CPU_NUM(PSP_CPU_ARCH_ARM_CORTEX_M4, PSP_CPU_GROUP_KINETIS_K1X, 2))

  同時(shí)在該文件中還可以找到所有Freescale指定PSP處理器支持包所支持內(nèi)核的宏定義,如ColdFire,PPC,Cortex-A5,Cortex-A8等。

  在本文中,我們創(chuàng)建的是針對K10DN512的BSP開發(fā)包,所以需要用上述的宏定義,將user_config.h文件中的MQX_CPU定義

  #define MQX_CPU PSP_CPU_MK60DN512Z

  修改為:

  #define MQX_CPU PSP_CPU_MK10DN512Z

  此時(shí)點(diǎn)擊編譯按鈕會出現(xiàn)錯誤提示,如下圖5所示。

  創(chuàng)建并移植K10 BSP包的具體步驟和方法(二)

  圖5. 頭文件錯誤

  出現(xiàn)這個錯誤是由于在C:FreescaleFreescale_MQX_4_0mqxsourcepspcortex_mkinetis.h中找不到頭文件MK10DZ10.h,需要從以下的IAR安裝目錄中尋找:

  C:Program FilesIAR SystemsEmbedded Workbench 6.5armincFreescale

  然后將該文件拷貝到C:FreescaleFreescale_MQX_4_0mqxsourcepspcortex_mcpu中進(jìn)行編譯。

  編譯仍有錯誤出現(xiàn),如下圖6所示。

  這個錯誤主要是由于移植使用的是K60的,因此里面含有以太網(wǎng)ENET部分和USB部分的代碼,而在K10芯片中是沒有這些功能模塊的,在IAR IDE Workspace工作臺環(huán)境下,需要將外圍I/O驅(qū)動(Peripheral IO Drivers)中的ENET和USB等文件夾刪除,同時(shí)將K10DN512 BSP Files文件夾中的 init_usb.c和init_enet.c文件刪除。另外在K10DN512 BSP Files中,由于在MQX安裝目錄C:FreescaleFreescale_MQX_4_0mqxsourcebspK10DN512 文件下的init_gpio.c和bsp.h中初始化了ent和usb部分的,需要打開這兩個文件,找到_bsp_ent_io_init和bsp_usb_io_init的代碼部分,然后直接進(jìn)行刪除。此時(shí)再進(jìn)行編譯,則應(yīng)該沒有錯誤出現(xiàn)了。

  圖6以太網(wǎng)及USB相關(guān)的文件編譯錯誤

  圖6以太網(wǎng)及USB相關(guān)的文件編譯錯誤

  下一步需要修改的,是系統(tǒng)的時(shí)鐘設(shè)置。針對K60DN512, MQX默認(rèn)的外部時(shí)鐘是50MHz。 對于K20系列MQX默認(rèn)的外部時(shí)鐘是8MHz,如果目標(biāo)板的時(shí)鐘和默認(rèn)的外部時(shí)鐘不一樣,則需要重新配置。例如,如果這里選擇25MHz的無源晶體作為外接時(shí)鐘,那么就需要修改bsp_cm.h中的時(shí)鐘設(shè)置,將CPU_XTAL_CLK_HZ的時(shí)鐘修改為25MHz


上一頁 1 2 3 4 下一頁

關(guān)鍵詞: K10 BSP包

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉