三~四年前,當開發恩智浦的 LPC11xx (ARM-M0) 韌體時,設計者必須在名為 LPCXpresso 的套裝軟體下執行,它提供各系列晶片的周邊驅動程式與原始碼,方便使用者 compile & link。如果要除錯程式的話,這套軟體必須再搭配使用名為 LPC-Link 的除錯器,我們用它來除錯也可燒錄代碼。幾年前,LPC 並不支援在 KEIL C 的環境開發 (當時很多 ARM 晶片都用 KEIL 環境開發),所以只能安裝 LPCXpresso,後來 LPC 已經成功整合到 IAR / KEIL 等環境了。有關的開發軟體與除錯器可以連結到LPCware 的網站上。

        最近我的 LPC-Link 好像壽終正寢,USB 完全偵測不到它。原本想再買一個 LPC-Link,不過因工作需要我也常常使用 ULINK2 在開發與除錯意法半導體 STM32 晶片 (ARM-M3),於是想要將 LPC 開發環境移植到 KEIL C上面,這樣就只要維護一套開發軟體和一個除錯器,也能開發設計 STM32 和 LPC11x 韌體了。圖一就是移植到 KEIL 所需的重要檔案,原本的驅動程式原始碼移過來,並替換掉下列的檔案,基本上就大功告成了。
        core_cm0.c
        system_LPC11xx.c
        startup_LPC11xx.s   (原 cr_startup_lpc11.c in LPCXpresso)

圖一:LPC11xx 整合到 KEIL環境

        除錯的方面,因為不用 LPC-Link 後,首先要將 ULINK2 除錯器接到晶片接腳上。我的 ULINK2 一端連著一條 20-pin JTAG 排線,而真正使用到 debug 的腳只有五根,分別是 Vcc, GND, NReset, SwClk, SwDio。因此,只要將上述的五根接腳接到 LPC111x 晶片對應的 pin 腳,大致上就完成了。

        NReset <---> PIO 0_0
        SwClk  <---> PIO 0_10
        SwDio  <---> PIO 1_3

<< FreeRTOS >>

        即使 LPC11xx 是低階的 ARM-M0 晶片,如果沒有整合 RTOS 的話,基本上使用起來也沒甚麼問題 (main 函式裡用一個無窮迴圈處理所有的事情)。不過,如果想要讓系統開發更具效率,更容易維護整體程式碼的話,整合一套 OS 是不錯的方法。這裡介紹 FreeRTOS 這套作業系統,從它的官方網站來看,它已經成功地將 RTOS 整合到多家 MCU 晶片製造商。之前,我經常使用的意法半導體 STM32 晶片也早就使用 FreeRTOS v6.1 當作作業系統了,所以我也有意把 LPC11xx 與 RTOS 整合起來,讓整個系統開發具有效率,運行也會有效率。圖二所示是整合 FreeRTOS 的相關檔案。

圖二:LPC11xx 整合 FreeRTOS 環境
arrow
arrow
    文章標籤
    NXP LPC KEIL
    全站熱搜
    創作者介紹
    創作者 漢亞科技 Han-Ya 的頭像
    漢亞科技 Han-Ya

    漢亞科技 Han-Ya

    漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()