[ บทความ : ตัวอย่างการใช้ icc11 ตอนที่ 1 ] |
ซอฟท์แวร์ :
1. ImageCraft icc11 Version 5 for Windows หรือ icc11 รุ่นแจกฟรี (ทำงานบนดอส)
2. ETT 68HC11 Debugger V2.0
ฮาร์ดแวร์ :
ETT CP-68HC11 V2
จุดประสงค์ :
1. ทดลองติดตั้งตัวแปรระบบ เพื่อใช้กับ icc11
2. ทดลองแปลภาษาซี ให้เป็นไฟล์ฐานสิบหกของ โมโตโรลา
ให้เขียนโปรแกรมเป็นภาษาซีชื่อ hello11.c ดังนี้
#include <stdio.h> // สำหรับ puts( ) #include <hc11.h> // สำหรับ setbaud(BAUD9600); void main(void) { setbaud(9600); puts("Hello 68HC11/n"); while(1); }ก่อนที่จะคอมไพล์ ให้ทำการติดตั้งตัวแปรระบบดังนี้
PATH %PATH%C:/ICC/bin; set ICC11_INCLUDE=C:/ICC/include set ICC11_LIB=C:/ICC/lib set ICC11_LINKER_OPTS=-btext:0x2200 -dinit_sp:0x9FFF -dheap_size:0บรรทัดที่ 1 กำหนด path ไปที่ c:/icc/bin เพื่อความสะดวกในการเรียกใช้โปรแกรม
บรรทัดที่ 2 เป็นการกำหนดว่าไฟล์ส่วนหัวที่องใช้นั้นอยู่ที่ c:/icc/include
บรรทัดที่ 3 เป็นการกำหนดว่าให้หาไลบรารีที่ c:/icc/lib
บรรทัดที่ 4 กำหนดรูปแบบการทำงานของโปรแกรม Linker โดยกำหนดเอาไว้ดังนี้
-btext:0x2200 กำหนดให้ตำแหน่งเริ่มต้นของโปรแกรมอยู่ที่ 0x2200
-dinit_sp:0x9FFF กำหนดให้ตำแหน่งเริ่มต้นของสแต็กอยู่ที่ 0x9FFF
-dheap_size:0 กำหนดให้หน่วยความจำฮีพเป็น 0 ดังนั้น จะใช้คำสั่ง malloc/free ไม่ได้
เมื่อกำหนดเสร็จแล้วให้พิมพ์คำสั่ง
icc11 -m -l -v hello11.cเสร็จแล้วจะได้ไฟล์เพิ่มขึ้นมาในไดเร็คทอรีที่เราอยู่ดังนี้
hello11.s : ไฟล์ภาษาแอสเซมบลีที่ได้จากการแปลโค้ดภาษาซี
hello11.o : ไฟล์ไบนารี (object file) ที่ยังไม่ได้ทำการ link
hello11.s19 : ไฟล์ฐานสิบหกในรูปแบบของ Motorola ที่เราจะนำไปดาวน์โหลดลงในหน่วยความจำบนบอร์ด
hello11.mp : Map File ของ hello11.c (เป็นไฟล์ที่บอกรายละเอียดว่าเมื่อโปรแกรมของเราทำงาน ฟังก์ชันใดอยู่ ณ ตำแหน่งใดบ้าง และในการ link ได้นำไฟล์ใดมารวมเอาไว้บ้าง)
hello11.lst : List File ของ hello11.c
หรือถ้าไม่ใช้คำสั่ง icc11 ก็สามารถสั่งเองด้วยมือดังนี้
icpp -D_HC11 hello11.c hello11.i iccom11 -lhello11.c hello11.i hello11.s ias6811 -o hello11.o hello11.s ilink -o hello11 -m hello11.oหมายเหตุ
ถ้ามีปัญหาเรื่อง icc11 หาไลบรารีไม่เจอ ให้เราทำการคัดลอกไฟล์จาก c:/icc/lib มาไว้ที่ไดเร็คทอรีเดียวกับไฟล์ hello11.c แล้วทำการคอมไพล์ใหม่
เมื่อได้ไฟล์ hello11.s19 มาแล้ว ขั้นตอนต่อไปก็คือเรียกโปรแกรมสื่อสารอนุกรม แล้วทำการติดต่อกับบอร์ด CP-68HC11 (ต้องใช้โปรแกรม debugger ของ ETT) แล้วสั่งโหลดข้อมูล โดยสั่งดังนี้
>lเสร็จแล้วก็ส่งไฟล์ตัวอักษร (Text file) ที่ชื่อ hello11.s19 เมื่อส่งเสร็จก็จะขึ้นหน้าจอดังนี้
done >ขั้นตอนต่อไปก็เป็นการสั่งทดสอบโปรแกรม โดยสั่งว่า
>g 2200
แล้วที่หน้าจอของโปรแกรมสื่อสารอนุกรมก็จะแสดงข้อความว่า Hello 68HC11 และจะทำอะไรต่อไม่ได้อีก การออกจากโปรแกรมนี้ก็คือการรีเซตเท่านั้น
หมายเหตุ ถ้าผู้อ่านสนใจ image craft ICC11 สามารถหารายละเอียดเพิ่มเติมได้ที่ http://www.imagecraft.com ... หรือถ้าสนใจจะทำบอร์ดทดลองสำหรับ 68hc11 ด้วยตนเองสามารถเข้าไปอ่านรายละเอียดได้ที่ โฮมเพจของ อาจารย์วิชิต ศิริโชติ [ Build Your Own Microcontroller Project - http://www.kmitl.ac.th/~kswichit/ ]