Пару месяцев назад пришел мне
MSP430 LaunchPad от Texas Instruments.Компания рассылает комплекты разработчикам по символической цене, отражающей название семейства микроконтроллеров. Первое, что бросается в глаза - это что на плате предпрошита программка более сложная, чем в arduino. Двухрежимная, с анализом датчика температуры, миганием светодиодами и записью в последовательный порт. Согласитесь, сильно отличается от унылого мигания лампочкой.
Однако, на этом радость немного омрачается, так как предлагаемые средства разработки в основном либо лимитированы ограничениями бесплатной версии, либо имеют ограничения при работе в Linux (либо, совсем в Linux не работают). Однако, последняя опция в виде
mspgcc всех этих ограничений лишена. Есть свои тонкости, поэтому я решил эксперименты с msp430 и mspgcc фиксировать в виде записей в блоге.
Итак, сделаем простой стандартный blink. В лоб, по простому. Делать я буду как обычно на Ubuntu и малыше Asus Eee 901. Для начала поставим парочку утилит, включая mspgcc. Может в команде указано что-то лишнее, но так на 12.10 работает, так что приведем:
sudo apt-get install mspdebug msp430-libc msp430mcu binutils-msp430 gcc-msp430 gdb-msp430
Далее, создаем файлик Makefile:
CC=msp430-gcc
CFLAGS=-Os -Wall -g -mmcu=msp430g2553
OBJS=main.o
all: $(OBJS)
$(CC) $(CFLAGS) -o main.elf $(OBJS)
%.o: %.c
$(CC) $(CFLAGS) -c $<
clean:
rm -fr main.elf $(OBJS)
Далее, создаем файлик main.c:
Выполняем сборку:
$ make
msp430-gcc -Os -Wall -g -mmcu=msp430g2553 -c main.c
msp430-gcc -Os -Wall -g -mmcu=msp430g2553 -o main.elf main.o
Теперь остается только воткнуть плату в usb и прошить ее утилитой mspdebug:
sudo mspdebug rf2500 "prog main.elf"
Все, готово, оригинальная прошивка с функциями анализа температуры заменена нашей, мигающей светодиодом на плате. Счастью нет предела. Я видел более продвинутые примеры, в том числе тот самый пример для анализа температуры, так что далее будем отрабатывать и такие сценарии. Прерывания, экономия энергии и другие вещи, которые выглядят уже не так просто, но это именно то, из-за чего мне интересен этот msp430.