สิ่งที่เกี่ยวข้อง

วันศุกร์ที่ ๓ สิงหาคม พ.ศ. ๒๕๕๐

makefile (WinARM)

makefile ของ WinARM นั้นดัดแปลงมาจากที่ใช้ใน WinAVR

makefile พื้นฐานก็มักจะแบ่งออกเป็น 2 ส่วน คือ ส่วนของ Define และ Command

สำหรับการใ้ช้งานทั่วไป นั้นเราไม่จำเป็นต้องไปจัดการในส่วนของ Command เลยก็ได้
เนื่องจาก makefile ส่วนใหญ่จะใช้ Define ในส่วนแรกเข้ามาจัดการ Command อยู่แล้ว
ดังนั้นเราเพียงทำการแก้ makefile ในส่วนที่สำคัญต่อโปรเจคเท่านั้น

รายละเอียดในส่วน Command นั้นจะทำการข้ามไป จะทำการกล่าวถึง เฉพาะ Define ที่สำคัญเท่านั้น

ส่วน Define ของ makefile ใน WinARM นั้นจะมีอยู่ด้วยกัน 5 ส่วน
  1. ค่าพื้นฐาน กำหนดค่าของระบบที่นำไปใช้ ส่วนนี้เราจะเปลี่ยนเมื่อใช้ uC ที่ต่างไป
    1. MCU จะเป็นการกำหนด สถาปัตยกรรม โครงสร้างของ uC ตัวนั้น
      • Ex : arm7tdmi เป็นต้น
    2. SUBMDL กำหนดถึงรุ่นที่ใช้งาน
      • Ex : ADuC7024 หรือ LPC2148 เป็นต้น
    3. RUN_MODE เป็นการระบุถึงวิธีการทำงาน ซึ่งมี 2 แบบ
      1. ROM เขียนลง Flash memory เพื่อใช้งาน
      2. RAM เพื่อ Debug ทดสอบการทำงาน
  2. ค่าสำหรับโปรเจค ค่าเหล่านี้จะใช้งานกับโปรเจคที่ต่างกัน
    1. TARGET เป็นการกำหนดชื่อของ ไฟล์ที่จะทำมา Compile [ชื่อไฟล์ main] ซึ่งค่านี้จะถูกนำไปกำหนดไฟล์ hex ที่ Compile เสร็จแล้วด้วย
      • Ex : blink [ไม่ใช่ blink.c เพราะมันจะนำไปเติม นามสกุลเป็น c , hex ...]
    2. SRC เป็นชื่อ main ไฟล์
    3. SRCARM เป็น List ของไฟล์ที่จะนำมาเรียกใช้ด้วย
      • ในการเพิ่มไฟล์นั้นจะต้องใช้ += มาเพิ่มแล้วแทรกบรรทัดต่อกัน
      • Ex : SRCARM = uart.c
      • SRCARM += irq.c
    4. CPPSRC, CPPSRCARM นั้นเหมือน SRC, SRCARM เพียงแต่เป็น C++
    5. ASRC, ASRCARM นั้นก็เป็น Assembly Code ซึ่งเรามันจะใช้กำหนด startup.s
    6. FORMAT เป็นการกำหนดรูปแบบไฟล์ที่สร้างขึ้นว่าเป็น hex หรือ bin
    7. OPT กำหนดขนาดของ Code ว่าให้ Optimize หรือไม่
  3. ค่าต่อจากนี้เป็นการกำหนดเกี่ยวกับ Flag ใน Command ต่างๆ ซึ่งส่วนนี้ไม่ต้องเข้าไปแก้อะไร
  4. ค่าสำหรับการ Load ไฟล์ลง Board ผ่าน lpc21isp
    1. LPC21ISP_PORT พอร์ตที่ใช้ติดต่อทาง Serial
    2. LPC21ISP_BAUD อัตราความเร็วในการส่งไฟล์
  5. ค่าของ Command ซึ่งส่วนใหญมั่กไม่ต้องแก้
  6. ค่า Warning

สรุปส่วนสำคัญ
  • ในส่วนของ 3, 5 และ 6 ไม่ต้องแก้อะไรเลย ส่วนที่จำเป็นต้องแก้ก็เป็น 1,2 และ 4 เพื่อให้เหมาะสมกับการใช้งานที่ต่างกันออกไป

ไม่มีความคิดเห็น:

ผู้สนับสนุน

จัดตามกลุ่ม