เพิ่ม ฺBoard Support Package ใน MPLAB Harmony

วิธีการเพิ่ม Board Support Package (BSP) สำหรับ MPLAB Harmony สามารถทำได้โดยการคัดลอกไฟล์ bsp ที่มีอยู่แล้วมาแก้ไข ซึ่งวิธีการนี้จะช่วยให้เราเพิ่ม bsp ได้เร็วกว่าการมาเขียนเองใหม่หมด ตัวอย่างนี้จะคัดลอกไฟล์จากโฟล์เดอร์ bsp/pic32mz_ec_sk+s1d_pictail+wqvga มาแก้ไขให้เป็น bsp ของเราเองโดยใช้ชื่อว่า PIC32MZ SSD1963 ครับ

เริ่มจากคัดลอกโฟล์เดอร์ bsp/pic32mz_ec_sk+s1d_pictail+wqvga แล้วเปลี่ยนชื่อเป็น bsp/pic32mz_ssd1963 เสร็จแล้วให้เข้าไปแก้ไข source code ในไฟล์ bsp/pic32mz_ssd1963/bsp_sys_init.c และไฟล์ bsp/pic32mz_ssd1963/bsp_config.h ให้ตรงกับวงจรที่เราออกแบบ ต่อไปก็แก้ไขไฟล์ bsp/pic32mz_ssd1963/xml/bsp.xml ให้ตรงกับ hardware ของเราดังเช่น

<?xml version=”1.0″?>
<bsp name=”pic32mz_ssd1963″>
<function name=”USB_VBUS_SWITCH” pin=”RB13″ direction=”out” mode=”digital”/>
</bsp>

หลังจากนั้นให้เข้าไปเพิ่ม BSP ของเราในไฟล์ bsp/config/bsp.hconfig ตามตัวอย่างด้านล่างครับ

enum DS60001191_BSP
“PIC32MZ EC PIM w/ Bluetooth Audio Development Kit”
|| “PIC32MZ EC PIM w/ Explorer16”
|| “PIC32MZ EC Starter Kit”
|| “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II”
|| “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass”
|| “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass”
|| “PIC32MZ SSD1963”

 

config BSP_USE_USBSWITCH
bool
depends on DS60001191_FAMILY = “PIC32MZ EC Starter Kit” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass” ||
DS60001191_FAMILY = “PIC32MZ SSD1963”

 

config BSP_14
bool
depends on DS60001191_FAMILY = “PIC32MZ SSD1963”
select USE_GFX_TRULY_7_800X480_NEEDED
select USE_DRV_GFX_SSD1926_NEEDED
select USE_GFX_STACK
default y

 

config BSP_POSC_24MHz
bool
depends on DS60001191_FAMILY = “PIC32MZ EC PIM w/ Bluetooth Audio Development Kit” ||
DS60001191_FAMILY = “PIC32MZ EC PIM w/ Explorer16” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass” ||
DS60001191_FAMILY = “PIC32MZ SSD1963”
default y

 

default “pic32mz_ssd1963” if  DS60001191_FAMILY = “PIC32MZ SSD1963”

 

ifblock DS60001191_FAMILY = “PIC32MZ SSD1963”
file BSP_pic32mz_ec_sk_s1d_pictail_wqvga_H “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963/bsp_config.h” to “$PROJECT_HEADER_FILES/bsp/pic32mz_ssd1963/bsp_config.h”
file BSP_pic32mz_ec_sk_s1d_pictail_wqvga_C “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963/bsp_sys_init.c” to “$PROJECT_SOURCE_FILES/bsp/pic32mz_ssd1963/bsp_sys_init.c”
compiler COMPILER_BSP_INCLUDE26 includepath “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963”
endif