Tux trifft MSP430-Launchpad
Aus BraLUG-Wiki
(Unterschied zwischen Versionen)
(→Programm übersetzen und auf MCU übertragen) |
(→Debuggen) |
||
Zeile 98: | Zeile 98: | ||
==Debuggen== | ==Debuggen== | ||
+ | |||
+ | <pre> | ||
+ | > mspdebug rf2500 | ||
+ | ... | ||
+ | |||
+ | (mspdebug) gdb | ||
+ | Bound to port 2000. Now waiting for connection... | ||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | > msp430-gdb blink.elf | ||
+ | ... | ||
+ | (gdb) target remote localhost:2000 | ||
+ | ... | ||
+ | (gdb) | ||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | > kdbg -r localhost:2000 blink1.elf | ||
+ | </pre> | ||
=Ausblick= | =Ausblick= |
Version vom 27. Juni 2013, 23:19 Uhr
Derzeit noch Baustelle...!
Inhaltsverzeichnis |
Warum ein MSP430-Launchpad?
Hardware
MSP430
MSP430-Launchpad
Toolchain
- binutils-msp430
- gcc-msp430
- gdb-msp430
- msp430-libc
- msp430mcu
- mspdebug
"Hello World"
Das Programm
#include <msp430.h> #define LED_RED (1 << 0) // rote LED an PIN0 #define LED_GREEN (1 << 6) // gruene Led an PIN6 //*************************************** void delay_ms(unsigned int ms){ while(ms--){ __delay_cycles(1000); } } //*************************************** //*************************************** //*************************************** int main(void) { WDTCTL = WDTPW + WDTHOLD; // watchdog ausschalten P1DIR |= LED_RED | LED_GREEN; // LED-Pins als Ausgaenge P1OUT = 0; // alle LEDs aus P1OUT |= LED_GREEN; // gruene LED ein while(1) { // Enlosschleife P1OUT ^= LED_RED + LED_GREEN; // LEDs toggle delay_ms(500); // 500ms Pause } }
Programm übersetzen und auf MCU übertragen
msp430-gcc -mmcu=msp430g2452 -o blink blink.c
> mspdebug rf2500 ... (msdebug) prog blink Erasing... Programming... Writing 186 bytes to e000 [section: .text]... Writing 32 bytes to ffe0 [section: .vectors]... Done, 218 bytes written
(mspdebug) run Running. Press Ctrl+C to interrupt...
PROJ=blink CC=msp430-gcc MCU=msp430g2452 CFLAGS=-Os -g -Wall -mmcu=$(MCU) LDFLAGS=-g -mmcu=$(MCU) OBJS=$(PROJ).o all:$(OBJS) $(CC) $(LDFLAGS) -o $(PROJ).elf $(OBJS) msp430-size $(PROJ).elf clean: rm -fr $(PROJ).elf $(OBJS) flash: mspdebug rf2500 'erase' 'load $(PROJ).elf' 'exit'
Debuggen
> mspdebug rf2500 ... (mspdebug) gdb Bound to port 2000. Now waiting for connection...
> msp430-gdb blink.elf ... (gdb) target remote localhost:2000 ... (gdb)
> kdbg -r localhost:2000 blink1.elf
Ausblick
Weiterführende Links
- http://www.mycontraption.com/programming-the-msp430-launchpad-on-ubuntu/
- http://manpages.ubuntu.com/manpages/precise/man1/mspdebug.1.html
- http://wiki.ubuntuusers.de/MSP430-Toolchain
- http://www.itopen.it/2013/03/01/msp430-energia-on-linux/
- http://losinggeneration.homelinux.org/2010/07/02/msp430-launchpad-on-linux/
- http://recursive-labs.com/static/courses/rl100/samples/mspstart.pdf
- http://launchpadlinux.blogspot.de/2012/10/making-thinks-easier-with-make-and-geany.html
- http://dbindner.freeshell.org/msp430/
- http://gpio.kaltpost.de/?cat=55