การเขียนโปรแกรม ARM Cortex-M ตอนที่ 2 : ภาคซอฟต์แวร์

Spread the love

มาต่อกันในตอนที่ 2 ส่วนนี้เราจะพูดถึงเรื่องซอฟต์แวร์ที่จำเป็นสำหรับการเขียนโปรแกรม ซึ่งประกอบด้วย 3 ส่วนด้วยกันคือ

  1. IDE
  2. driver ของ programmer/debug probe
  3. ตัวช่วยสร้างโค้ดเริ่มต้น หรือ initialization code generator
  4. library และ middleware สำหรับ MCU แต่ละแบรนด์

ว่าด้วย IDE กันก่อน ผู้ผลิต MCU แต่ละเจ้าส่วนใหญ่ก็จะมี IDE เฉพาะของตัวเองออกมา และจะให้ใช้ได้ฟรีๆ กัน นอกจากนี้ยังมีผู้ผลิต IDE สำหรับ MCU อีกหลายรายที่บอกว่า IDE ของตัวเองมีความสามารถและคุณสมบัติที่แตกต่างจากตัวอื่นซึ่งมีทั้งที่ให้ใช้ฟรีและที่ต้องจ่ายเงินซื้อ License

IDE จากผู้ผลิต MCU

ผู้ผลิตIDE
AtmelAtmel Studio
Texas InstrumentsCode Composer Studio
ST MicroelectronicsSW4STM32 เป็น plugin สำหรับ eclipse

IDE จากผู้ผลิตอิสระ

IDEราคาlink
Keil MDKติดต่อผู้ผลิตkeil.com
Atollic TrueSTUDIOฟรีสำหรับรุ่น lite
120 ยูโรต่อเดือนสำหรับรุ่น Pro
atollic.com
CoIDEฟรีcoocox.org

ส่วนต่อไปก็คือ driver ของ programmer/debug probe อันนี้ก็ขึ้นอยู่กับว่าเราจะพัฒนาโปรแกรมบนบอร์ดตัวไหน development board หลายๆตัวจะมี on-board debugger มาให้แล้ว เราแค่ต้องลง driver ให้ตรงกับบอร์ดที่ใช้เท่านั้น

driver สำหรับ debug probe

Debug probedevelopment boarddownload link
ST-LinkSTM32 Nucleo/Discovery หรือ custom board ที่ใช้ MCU จาก STST-LINK/V2 page
TI XDS110TI Launchpad รุ่นต่างๆ หรือ custom board ที่ใช้ MCU จาก TIXDS Emulation Software Package
Segger J-linkสามารถใช้ได้กับ MCU ARM Cortex-M ทุกตัวJ-Link download
Atmel ICEAtmel Xplained รุ่นต่างๆ และ custom board ที่ใช้ MCU จาก AtmelAtmel ICE USB installer

code initialization generator เป็นเครื่องมือที่ช่วยสร้าง code เริ่มต้นโดยจะสร้าง code เริ่มต้นที่จำเป็นตามที่เราต้องการไว้ให้ก่อน เช่นการกำหนดความถี่นาฬิกา การกำหนด function ของ pin ต่างๆ จากนั้นเราค่อยใช้ IDE เขียนโปรแกรมต่อ

โปรแกรม code initialization generator ของ ST จะเรียกว่า STM32CubeMX ในรูปจะเป็นตัวอย่างการตั้งค่าสำหรับ STM32F030F4P6 โดยกำหนดให้ PA4 เป็น GPIO out ให้ PA13 PA14 เป็นขาสำหรับ debug และให้ใช้ external oscillator ด้วย

ทาง TI ก็มีเครื่องมือลักษณะเดียวกันชื่อ PinMux โดยรุ่นล่าสุดเป็นการใช้งานผ่าน web browser ที่ dev.ti.com

สุดท้ายเป็นส่วนของ library ต่างๆ ที่ผู้ผลิต MCU ทำออกมาให้ใช้เพื่อให้การพัฒนาโปรแกรมง่ายขึ้น และมี code ตัวอย่างให้อีกจำนวนหนึ่ง

MCUSDK / LibraryLink
TI MSP432TI SIMPLELINK-MSP432-SDK MSP432 SDK
Atmel SAMD/SAMLAtmel Software Frameworkเรียกใข้จาก Atmel Studio
STM32STM32CubeSTM32Cube

สำหรับตอนนี้ขอจบเท่านี้ก่อน คิดว่าตอนต่อไปจะแนะนำการเขียนโปรแกรมบนบอร์ดจริงๆ สักตัว

หากมีข้อติชม หรือข้อสงสัยอะไร สามารถติดต่อผู้เขียนได้ที่ twitter @vorasilp


Spread the love

Add a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.