[ บทความ : ตัวอย่างการใช้ 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/ ]


เขียนโดย : ศุภชัย บุศราทิจ
Author : Supachai Budsaratij
e-mail : raek@se-ed.net
วันที่ทำการปรับปรุง : ๓๐ พ.ค. ๒๕๔๓, ๑๐ ส.ค. ๒๕๔๓, ๒๒ ส.ค. ๒๕๔๓