การพัฒนาเฟิร์มแวร์สำหรับไมโครคอนโทรลเลอร์
รุ่นแก้ไขเมื่อ 15:25, 14 สิงหาคม 2552 โดย Chaiporn (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย 'วิกินี้อธิบายถึงขั้นตอนและตัวอย่างการพัฒนาเฟิร…')
วิกินี้อธิบายถึงขั้นตอนและตัวอย่างการพัฒนาเฟิร์มแวร์ลงบนบอร์ดไมโครคอนโทรลเลอร์ที่เราได้ประกอบขึ้นมา โดยเนื้อหาครอบคลุมเฉพาะสภาพแวดล้อมการพัฒนาโปรแกรมบนลินุกซ์เท่านั้น
ติดตั้งซอฟท์แวร์ที่เกี่ยวข้อง
- Cross compiler สำหรับไมโครคอนโทรลเลอร์ตระกูล AVR รวมถึงไลบรารีที่เกี่ยวข้อง
sudo apt-get install avr-gcc avr-libc
- AVR toolchain
sudo apt-get install binutils-avr
- avr-dude สำหรับโหลดไบท์โค้ดลงบนแฟลชของไมโครคอนโทรลเลอร์ผ่านพอร์ต USB
sudo apt-get install avrdude
โปรแกรมตัวอย่าง
ทดลองพิมพ์โปรแกรมตัวอย่างต่อไปนี้ และบันทึกไว้ในชื่อ first.c
#define F_CPU 16000000UL // บอกไลบรารีว่า MCU ทำงานที่ 16MHz #include <avr/io.h> #include <util/delay.h> int main(void) { PORTD = 0b00000000; // กำหนดลอจิกขา PD7..0 เป็น 0 DDRD = 0b00001000; // กำหนดให้ขา PD3 ทำหน้าที่เอาท์พุท while (1) { PORTD = 0b00001000; // ส่งลอจิก 1 ไปที่ขา PD3 _delay_ms(1000); PORTD = 0b00001000; // ส่งลอจิก 0 ไปที่ขา PD3 _delay_ms(1000); } return 0; }
คอมไพล์โปรแกรม
avr-gcc -mmcu=atmega168 -o led.elf led.c
ผลลัพธ์ที่ได้จะอยู่ในรูปของไฟล์ฟอร์แมต ELF (Excutable and Linkable Format)
avr-objcopy -j .text -O ihex led.elf led.hex avrdude -p atmega168 -c usbasp -u -U flash:w:led.hex