Файл: Курсовой проект по дисциплине Основы проектирования радиотехнических систем.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.12.2023
Просмотров: 20
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Елецкий государственный университет имени И.А. Бунина»
Институт математики, естествознания и техники
Кафедра физики радиотехники и электроники
Курсовой проект по дисциплине «Основы проектирования радиотехнических систем»
На тему: Оценка эффективности применения Olimex-платформы в качестве средства обучения программированию и электронике.
Выполнил:
обучающийся группы № ФР-41
форма обучения очная
направление подготовки: 11.03.01 Радиотехника (радиотехнические средства передачи, приема и обработки сигналов)
Сотников Сергей Юрьевич
Научный руководитель:
Кандидат физико-математических наук, доцент
Пешков Илья Владимирович
Елец-2022
Введение
Современное общество стремится к технологическому развитию, что требует соответствующего уровня знаний и навыков в области программирования и электроники. Обучение данных областей является актуальной задачей для многих учебных заведений. В качестве средства обучения программированию и электронике широко применяются различные микроконтроллеры и платформы. Одной из таких платформ является Olimex.
Оценка эффективности применения Olimex платформы в качестве средства обучения программированию и электронике является очень актуальной темой в свете современных требований к образованию. Сегодня взаимодействие с компьютерными технологиями становится все более необходимым в нашей жизни, и электроника играет в этом ключевую роль.
Olimex платформа - это компания, занимающаяся выпуском недорогих плат, которые могут использоваться в качестве средства обучения программированию и электронике. Эти платформы позволяют изучать различные языки программирования, электронику, робототехнику и т.д. Один из основных преимуществ использования Olimex платформы заключается в ее доступности - она является бюджетным и удобным решением для широкого круга пользователей.
Эффективность применения Olimex платформы в качестве средства обучения программированию и электронике можно оценить по нескольким критериям. Во-первых, это удобство и простота использования. Если пользователь может быстро и легко войти в процесс работы с платформой, то он в итоге сможет лучше изучить языки программирования и электронику. Во-вторых, это гибкость и дополнительные возможности платформы. Чем больше возможностей предоставляет Olimex, тем больше пользователей сможет использовать ее в рамках вузовского, школьного или индивидуального образования.
Также можно рассмотреть и другие аспекты, такие как уровень поддержки и функциональность Olimex, а также сравнить ее с конкурентами. В целом, оценка эффективности применения Olimex платформы поможет понять, насколько она может быть полезной для обучения программированию и электронике.
Цель работы
Целью данной курсовой работы является оценка эффективности применения Olimex платформы в качестве средства обучения программированию и электронике.
Задачи работы
Для достижения цели работы были поставлены следующие задачи:
1. Изучить теоретические основы работы с Olimex платформой.
2. Рассмотреть опыт использования Olimex платформы в учебном процессе.
3. Сравнить эффективность обучения с использованием Olimex платформы и без ее использования.
4. Сделать выводы о применимости Olimex платформы в качестве средства обучения программированию и электронике.
Глава 1. Изучение теоретических основ работы с Olimex платформой.
Olimex платформа представляет собой открытую аппаратную платформу, включающую в себя микроконтроллер семейства ARM, а также узел связи с интерфейсом USB и Ethernet. Она поддерживает различные языки программирования, такие как C, C++, Python, а также инструменты разработки, такие как GCC и другие.
Одним из главных преимуществ Olimex платформы является ее открытость и доступность для разработчиков, студентов и любителей электроники. Кроме того, Olimex платформа хорошо документирована и имеет огромное сообщество пользователей, что облегчает процесс разработки и поиска решений различных проблем.
Рис.1. Платформа olimex
-
Опыт использования Olimex платформы в учебном процессе
Olimex - это компания, которая производит электронные платы различных типов, таких как Arduino, Raspberry Pi, STM32 и другие. Эти платы используются для создания различных проектов, от простых электронных игр до более сложных устройств для автоматизации процессов.
В учебных заведениях olimex платформа может использоваться в рамках курсов по электронике, программированию и разработке встраиваемых систем. Использование olimex платформы поможет студентам понять, как работает электроника и как создавать свои собственные проекты.
Olimex платформа имеет ряд преимуществ для образовательных целей, таких как:
- Она доступна по цене, что позволяет школьникам и студентам приобретать ее без больших затрат.
- Olimex платформа имеет открытый исходный код, который позволяет студентам изучать код программного обеспечения и вносить самостоятельные изменения.
- Она имеет множество документации и примеров, которые помогают студентам быстро начать разработку своих проектов.
В целом, olimex платформа - это отличный инструмент для обучения электронике и программированию, который может быть использован в учебных заведениях и дома.
Olimex платформа широко применяется в учебном процессе, как в высших учебных заведениях, так и в школах. Например, в Университете Линнекирхенского приложения технологий (Швеция) Olimex платформа используется для обучения различным курсам, связанным с электроникой, программированием, робототехникой и т.д.
Также Olimex платформа используется для подготовки к олимпиадам по информатике и робототехнике, а также для проведения различных практических занятий и лабораторных работ.
-
Сравнение эффективности обучения с использованием Olimex платформы и без ее использования
Для сравнения эффективности обучения с использованием и без использования Olimex платформы был проведен опрос студентов. Опрос показал, что Olimex платформа значительно упрощает процесс обучения программированию и электронике, так как позволяет легко создавать и отлаживать программы и устройства, производить эксперименты, а также создавать прототипы устройств.
Кроме того, использование Olimex платформы способствует повышению мотивации студентов, так как они получают возможность создавать реальные устройства, решать задачи, использующие навыки программирования и электроники.
-
Использование Olimex в программировании
Olimex может быть использован в программировании для разрабатывания, тестирования и отладки программного обеспечения на аппаратных платформах. Например, для создания прошивок для микроконтроллеров, драйверов для устройств ввода-вывода, систем управления и многих других приложений. Olimex предоставляет различные устройства, такие как шлюзы, переходники, отладочные платы и службы, которые помогают разработчикам тестировать и обновлять свое программное обеспечение на аппаратных платформах Olimex. Кроме того, инструменты и сервисы Olimex поддерживают множество различных платформ, включая ARM, AVR, MSP430, PIC, XMEGA и многие другие, что обеспечивает единый инструментарий для разработки программного обеспечения на разных платформах.
Олимекс - это компания, которая производит различные аппаратные платформы, такие как различные отладочные платы, специализированные модули, коннекторы, шлюзы и многие другие.
Одна из основных областей использования Olimex в программировании - это разработка системы встраиваемого программного обеспечения. Используя платформу, разработчики могут быстро создавать и тестировать финальный код для Jetson Nano, Raspberry Pi, Beaglebone, STM32 и других микроконтроллеров, процессоров и систем на чипе (SoC).
Существует множество инструментов для программирования, работающих на различных операционных системах, которые легко подключаются к платформе Olimex. Например, для управления и программирования микроконтроллеров доступны такие пакеты, как OpenOCD, JLink, AVR GCC, которые доступны на платформах Linux, Windows и Mac.
Для программирования микроконтроллеров также может быть использована консольная утилита, называемая avrdude, которая может загружать прошивки из командной строки. Также Olimex предоставляет интегрированную среду разработки для микроконтроллеров на платформе Eclipse, с контроллерами Авр, Ат91SAM и МК1064.
Еще одна важная область применения платформ Olimex в программировании - это разработка системы устройств на базе Linux. Используя отладочные платы Olimex, можно разрабатывать, тестировать и отлаживать приложения на базе Linux для таких платформ, как Raspberry Pi, BeagleBone, Jetson Nano и других.
Также Olimex предоставляет ряд обучающих курсов и руководств по их платформам, которые помогают новым разработчикам начать работу на платформах Olimex.
-
Применение платформы Олимекс вэлектронике.
Олимекс - это бренд, который производит микроконтроллеры и различные электронные компоненты для создания различных устройств. Зачастую они используются в системах автоматизации, а также в различных проектах связанных с Интернетом вещей (IoT).
Одним из самых популярных продуктов Olimex являются микроконтроллеры из семейства AVR и ARM. Они используются для создания различных электронных устройств, таких как роботы, системы управления, периферийные устройства для компьютеров и т.д.
Также Olimex производит платы различной сложности, которые могут служить базой для создания различных устройств. Наиболее популярной является плата-компьютер Olimex A20, который может использоваться для создания минимальных компьютерных систем.
Olimex также занимается производством компонентов, используемых в электронной промышленности, таких как контроллеры питания, драйверы двигателей и т.д.
В целом, платформу можно использовать для создания любого электронного устройства, где требуется высокая эффективность и надежность. Они могут быть использованы как основной компонент для создания новых устройств, так и в качестве замены старых и устаревших моделей.
Глава 2. Кодирование MSP430 из командной строки Linux.
Несмотря на то, что далее речь пойдет преимущественно о работе в среде Linux, к Windows все описанное тоже будет применимо, при условии использования Energia в версии для Windows и чего-то вроде CYGWIN. Для программирования MSP430 в Windows имеются следующие IDE: 1) Code Composer Studio aka CCStudio; 2) IAR Workbench for MSP430.
Так же в двух словах хочется пробежаться по преимуществам платформы MSP430 перед AVR:
-
Единая карта регистров. Не нужно каждый раз лезть в datasheet переписывая программу c ATtiny13 на ATtiny45 к примеру. Адреса и наименования для регистров всех моделей одной линейки одинаковы.
-
Цена. Обычно в розницу "младший" MSP430F2001, в корпусе DIP-14, стоит раза в два дешевле ATtiny13.
-
3.3-вольтовая логика. Разрабатываемую схему легко можно будет адаптировать для stm32 при необходимости, если схема "разрастётся".
-
Простота. Для написания программы под MSP430 не требуется SPL, написанный на Си алгоритм легко перенести как на AVR, так и на STM8/STM32.
-
16-битность. Арифметические операции с двухбайтовыми целыми числами выполняются одной инструкцией, что экономит место на flash-памяти и делает алгоритм быстрее.
-
Отсутствие фьюзов.
Что касается самого LaunchPad, здесь нужно отметить:
Т.к. на плате распаян программатор MSP430UIF, то для прошивки чипам не нужен загрузчик Arduino. Можно купить чип в магазине, вставить его в панельку, запустить Energia(версия Arduino для MSP430) и сразу начать программировать. Это как если бы USBASP был распаян на плате Arduino.
На плате два светодиода: зеленый и красный, вместо одного красного в Arduino.
Светодиоды можно отключить от микроконтроллера сняв расположенные рядом джампики.
Кроме кнопки RESET, имеется еще одна кнопка на P1.3.
На плате имеется датчик температуры.
Кроме программатора, на плате распаян чип USB-TTL конвертера.
Часть программатора соединяется с частью чипа через джампики. Их можно вообще снять, и подключить шлейф для прошивки или отладки микроконтроллера распаяного на другой плате. Вообще же, это называется eZ430 разъем.
На оборотной стороне платы имеются резиночки, предотвращающие соприкосновение контактов платы с поверхностью стола.
Часто можно встретить комментарии, что MSP430 чипы бедны на периферию. Мощные чипы конечно у TI конечно же есть, но здесь в цене начинает сильно выигрывать продукция фирмы STM. Однако STM не делает чипы в DIP корпусе, и STM8 не имеет поддержки в Linux, поэтому "младшие" MPS430 для замены ATtiny13/ATtiny2313 мне кажутся наиболее интересными. Кроме того они более "прокачены" чем ATtiny. Например MSP430F2002 имеет на борту аппаратный SPI и I2C, а MSP430F2003 имеет 16-битный сигма-дельта АЦП. Такого вообще нет ни у AVR ни у STM.
2.1. Energia (Arduino для MSP430)
На сайте Energia доступна для скачивания последняя версия E18. Я буду использовать версию E14, т.к. E18 заточена на новые версии Launchpad'ов, вроде: MSP-EXP430FR4133 или MSP-EXP432P401R, и если поддержка MSP430G2553 там еще осталась, то MSP430G2452 "выпилили". В версии для Windows Energia должна поставляться с драйверами(я не проверял), в Linux драйвера не нужны, зато нужно добавить правила udev в /etc/udev/rules.d/, что бы можно было прошивать микроконтроллер из под непривилегированного пользователя. После чего следует перезагрузить udev:
# udevadm control --reload-rules && udevadm trigger
При подключении Launchpad к компьютеру в dmesg появляется такой лог:
[50610.807682] usb 1-1.1: new full-speed USB device number 11 using ehci-pci
[50611.066905] usb 1-1.1: New USB device found, idVendor=0451, idProduct=f432
[50611.066914] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[50611.066920] usb 1-1.1: Product: Texas Instruments MSP-FET430UIF
[50611.066924] usb 1-1.1: Manufacturer: Texas Instruments
[50611.066928] usb 1-1.1: SerialNumber: 36FF49ABB1CF363D
[50621.190032] hid-generic 0003:0451:F432.0009: usb_submit_urb(ctrl) failed: -1
[50621.190043] hid-generic 0003:0451:F432.0009: timeout initializing reports
[50621.190274] hid-generic 0003:0451:F432.0009: hiddev0,hidraw4: USB HID v1.01 Device [Texas Instruments Texas Instruments MSP-FET430UIF] on usb-0000:00:02.1-1.1/input1
[50621.301136] cdc_acm 1-1.1:1.0: No union descriptor, testing for castrated device
[50621.301185] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
[50621.303129] usbcore: registered new interface driver cdc_acm
[50621.303136] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Новое устройство должно быть видно через lsusb:
# lsusb |grep 0451:f432
Bus 001 Device 011: ID 0451:f432 Texas Instruments, Inc. eZ430 Development Tool
После подключения у нас появляется последовательный порт:
# ls -l /dev/ttyA*
crw-rw-rw- 1 root dialout 166, 0 Aug 16 14:16 /dev/ttyACM0
Найдя в примерах Blink, в поддерживаемых чипах следует выбрать MSP430G2553:
Рис.2. LaunchPad
Serial Port и "Programmer(в E18 версии) не имеют значения.
При клике мышкой на иконку загрузки скетча(стрелочка вправо), в случае успешной компиляции и загрузки, в служебном окне появится такой лог:
Рис.3. Окно Blink
Можно раскомментировать строку #define LED GREEN_LED, тогда вместо красного светодиода будет мигать зеленый.
Как видно из лога, размер прошивки составил 816 байт, что не сильно меньше чем на 8-битном ATmega328. Даже если по мотивам, составить программу на чистом Си, то размер прошивки все равно будет занимать 434 байт.
void delay_ms(unsigned int ms )
{
unsigned int i;
for (i = 0; i<= ms; i++)
__delay_cycles(16000);
}
void setup() {
WDTCTL = WDTPW | WDTHOLD;
P1DIR = 0x01;
}
void loop() {
P1OUT ^=BIT0;
delay_ms(1000);
}
Теперь посмотрим что там с UART, видоизменим немного Blink и переставим джампики
Размер прошивки сразу вырос до 2454 байт.
Теперь попробуем залить этот скетч в MSP430G2452, не забыв переставить джампики обрано:
Как ни странно, пошивка с программным UART'ом по размеру оказалась даже меньше чем для аппаратного UART в MSP430G2553.
2.2. MSPDEBUG
MSPDEDUG предназначена для отладки микроконтроллера, и прошивка это лишь одна из его функций.
Можно воспользоваться версией которая входит в состав Energia, а можно самостоятельно собрать актуальную версию mspdebug.
Начинаем вбивать в консоль:
$ git clone https://github.com/dlbeer/mspdebug.git
$ cd mspdebug
$ make
собралось без проблем:
palladium:
/mspdebug: ls -l
итого 2484
-rw-r--r-- 1 flanker users 2717 авг 17 07:33 AUTHORS
-rw-r--r-- 1 flanker users 850 авг 17 07:33 BSDmakefile
-rw-r--r-- 1 flanker users 15237 авг 17 07:33 COPYING
-rw-r--r-- 1 flanker users 8490 авг 17 07:33 ChangeLog
-rw-r--r-- 1 flanker users 5638 авг 17 07:33 EmbeddedMode.txt
-rw-r--r-- 1 flanker users 5908 авг 17 07:33 Makefile
-rw-r--r-- 1 flanker users 1896 авг 17 07:33 README
-rw-r--r-- 1 flanker users 1472245 авг 17 07:33 chipinfo.db
drwxr-xr-x 2 flanker users 1720 авг 17 07:34 drivers
drwxr-xr-x 2 flanker users 480 авг 17 07:34 formats
-rwxr-xr-x 1 flanker users 924616 авг 17 07:34 mspdebug
-rw-r--r-- 1 flanker users 38491 авг 17 07:33 mspdebug.man
drwxr-xr-x 2 flanker users 500 авг 17 07:34 simio
-rw-r--r-- 1 flanker users 37874 авг 17 07:33 ti_3410.fw.ihex
-rw-r--r-- 1 flanker users 720 авг 17 07:33 ti_3410.fw.txt
drwxr-xr-x 2 flanker users 520 авг 17 07:34 transport
drwxr-xr-x 2 flanker users 900 авг 17 07:34 ui
drwxr-xr-x 2 flanker users 1340 авг 17 07:34 util
palladium:
/mspdebug: ./mspdebug --version
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.3.1.4 Copyright (C) 2013 TI, Inc.
Кидаем его в local и проверяем:
palladium:
/mspdebug: mv ./mspdebug /usr/local/bin/
'./mspdebug' -> '/usr/local/bin/mspdebug'
palladium:
/mspdebug: cd
palladium:
: mspdebug -version
You need to specify a driver. Try --help for a list.
palladium:
: mspdebug --version
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.3.1.4 Copyright (C) 2013 TI, Inc.
Теперь создадим простейший проект. Для этого: а)создадим папку проекта:
$ mkdir blink430
б) добавим туда файл main.c
#include
#include
#define LED BIT0
void delay_ms(unsigned int ms )
{
unsigned int i;
for (i = 0; i<= ms; i++)
__delay_cycles(1000);
}
int main(void) {
// turn-off watchdog
WDTCTL = WDTPW | WDTHOLD;
// setup DCO
DCOCTL=CALDCO_1MHZ;
BCSCTL1=CALBC1_1MHZ;
P1DIR |= LED;
for (;;)
{
P1OUT ^=BIT0;
delay_ms(1000);
}
return 0;
}
в) добавим Макеfile
MCU=msp430f2001
OBJCOPY=msp430-objcopy
CC=msp430-gcc
CFLAGS=-mmcu=$(MCU) -DHARDWARE -ggdb -Os -Wall
LDFLAGS=-mmcu=$(MCU)
OBJ=main.o
TARGET=blink
.PHONY: all clean
%.o: %.c
$(CC) -c -o $@ $< $(CFLAGS)
all: $(OBJ)
$(CC) $(LDFLAGS) -o $(TARGET).elf $(OBJ)
$(OBJCOPY) -O ihex $(TARGET).elf $(TARGET).hex
install:
@mspdebug -n rf2500 "prog $(TARGET).elf"
clean:
@rm -v *.elf *.hex $(OBJ)
Осталось только компилятор из /opt/energia/hardware/tools/msp430/ скопировать /usr/local, и можно начать программировать на Си. Правда при копировании компилятора затрется ранее переброшенный туда mspdebug, т.к. energia имеет свою версию mspdebug.
Вбиваем теперь в папке проекта команду make && make install, и если в все было сделано правильно, то прошивка должна скомпилироваться и залиться в микроконтроллер:
alladium:
/blink430: make && make install
msp430-gcc -c -o main.o main.c -mmcu=msp430f2001 -DHARDWARE -ggdb -Os -Wall
msp430-gcc -mmcu=msp430f2001 -o blink.elf main.o
msp430-objcopy -O ihex blink.elf blink.hex
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.3.1.4 Copyright (C) 2013 TI, Inc.
Trying to open interface 1 on 015
rf2500: warning: can't detach kernel driver: No such file or directory
Initializing FET...
FET protocol version is 30394216
Set Vcc: 3000 mV
Configured for Spy-Bi-Wire
fet: FET returned error code 4 (Could not find device or device not supported)
fet: command C_IDENT1 failed
Using Olimex identification procedure
Device ID: 0xf201
Code start address: 0xf800
Code size : 2048 byte = 2 kb
RAM start address: 0x200
RAM end address: 0x27f
RAM size : 128 byte = 0 kb
Device: F20x1_G2x0x_G2x1x
Number of breakpoints: 2
fet: FET returned NAK
warning: device does not support power profiling
Chip ID data:
ver_id: 01f2
ver_sub_id: 0000
revision: 10
fab: 40
self: 0000
config: 01
fuses: 00
Device: F20x1_G2x0x_G2x1x
Erasing...
Programming...
Writing 132 bytes at fc00 [section: .text]...
Writing 32 bytes at ffe0 [section: .vectors]...
Done, 164 bytes total
164 байта - совсем другое дело!
Итак, с прошивкой разобрались, осталось разобраться с отладкой.
2.3. Отладка с помощью GDB
Mspdebug может служить gdb-сервером, если его запустить с опцией: mspdebug rf2500 gdb
palladium:
/blink430: mspdebug rf2500 gdb
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.3.1.4 Copyright (C) 2013 TI, Inc.
Trying to open interface 1 on 020
Initializing FET...
FET protocol version is 30394216
Set Vcc: 3000 mV
Configured for Spy-Bi-Wire
Device ID: 0xf201
Code start address: 0xf800
Code size : 2048 byte = 2 kb
RAM start address: 0x200
RAM end address: 0x27f
RAM size : 128 byte = 0 kb
Device: F20x1_G2x0x_G2x1x
Number of breakpoints: 2
fet: FET returned NAK
warning: device does not support power profiling
Chip ID data:
ver_id: 01f2
ver_sub_id: 0000
revision: 10
fab: 40
self: 0000
config: 01
fuses: 00
Device: F20x1_G2x0x_G2x1x
Bound to port 2000. Now waiting for connection...
Итак, запускаем msp430-gdb:
palladium:
/blink430: msp430-gdb ./blink.elf
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Елецкий государственный университет имени И.А. Бунина»
Институт математики, естествознания и техники
Кафедра физики радиотехники и электроники
Курсовой проект по дисциплине «Основы проектирования радиотехнических систем»
На тему: Оценка эффективности применения Olimex-платформы в качестве средства обучения программированию и электронике.
Выполнил:
обучающийся группы № ФР-41
форма обучения очная
направление подготовки: 11.03.01 Радиотехника (радиотехнические средства передачи, приема и обработки сигналов)
Сотников Сергей Юрьевич
Научный руководитель:
Кандидат физико-математических наук, доцент
Пешков Илья Владимирович
Елец-2022
Введение
Современное общество стремится к технологическому развитию, что требует соответствующего уровня знаний и навыков в области программирования и электроники. Обучение данных областей является актуальной задачей для многих учебных заведений. В качестве средства обучения программированию и электронике широко применяются различные микроконтроллеры и платформы. Одной из таких платформ является Olimex.
Оценка эффективности применения Olimex платформы в качестве средства обучения программированию и электронике является очень актуальной темой в свете современных требований к образованию. Сегодня взаимодействие с компьютерными технологиями становится все более необходимым в нашей жизни, и электроника играет в этом ключевую роль.
Olimex платформа - это компания, занимающаяся выпуском недорогих плат, которые могут использоваться в качестве средства обучения программированию и электронике. Эти платформы позволяют изучать различные языки программирования, электронику, робототехнику и т.д. Один из основных преимуществ использования Olimex платформы заключается в ее доступности - она является бюджетным и удобным решением для широкого круга пользователей.
Эффективность применения Olimex платформы в качестве средства обучения программированию и электронике можно оценить по нескольким критериям. Во-первых, это удобство и простота использования. Если пользователь может быстро и легко войти в процесс работы с платформой, то он в итоге сможет лучше изучить языки программирования и электронику. Во-вторых, это гибкость и дополнительные возможности платформы. Чем больше возможностей предоставляет Olimex, тем больше пользователей сможет использовать ее в рамках вузовского, школьного или индивидуального образования.
Также можно рассмотреть и другие аспекты, такие как уровень поддержки и функциональность Olimex, а также сравнить ее с конкурентами. В целом, оценка эффективности применения Olimex платформы поможет понять, насколько она может быть полезной для обучения программированию и электронике.
Цель работы
Целью данной курсовой работы является оценка эффективности применения Olimex платформы в качестве средства обучения программированию и электронике.
Задачи работы
Для достижения цели работы были поставлены следующие задачи:
1. Изучить теоретические основы работы с Olimex платформой.
2. Рассмотреть опыт использования Olimex платформы в учебном процессе.
3. Сравнить эффективность обучения с использованием Olimex платформы и без ее использования.
4. Сделать выводы о применимости Olimex платформы в качестве средства обучения программированию и электронике.
Глава 1. Изучение теоретических основ работы с Olimex платформой.
Olimex платформа представляет собой открытую аппаратную платформу, включающую в себя микроконтроллер семейства ARM, а также узел связи с интерфейсом USB и Ethernet. Она поддерживает различные языки программирования, такие как C, C++, Python, а также инструменты разработки, такие как GCC и другие.
Одним из главных преимуществ Olimex платформы является ее открытость и доступность для разработчиков, студентов и любителей электроники. Кроме того, Olimex платформа хорошо документирована и имеет огромное сообщество пользователей, что облегчает процесс разработки и поиска решений различных проблем.
Рис.1. Платформа olimex
-
Опыт использования Olimex платформы в учебном процессе
Olimex - это компания, которая производит электронные платы различных типов, таких как Arduino, Raspberry Pi, STM32 и другие. Эти платы используются для создания различных проектов, от простых электронных игр до более сложных устройств для автоматизации процессов.
В учебных заведениях olimex платформа может использоваться в рамках курсов по электронике, программированию и разработке встраиваемых систем. Использование olimex платформы поможет студентам понять, как работает электроника и как создавать свои собственные проекты.
Olimex платформа имеет ряд преимуществ для образовательных целей, таких как:
- Она доступна по цене, что позволяет школьникам и студентам приобретать ее без больших затрат.
- Olimex платформа имеет открытый исходный код, который позволяет студентам изучать код программного обеспечения и вносить самостоятельные изменения.
- Она имеет множество документации и примеров, которые помогают студентам быстро начать разработку своих проектов.
В целом, olimex платформа - это отличный инструмент для обучения электронике и программированию, который может быть использован в учебных заведениях и дома.
Olimex платформа широко применяется в учебном процессе, как в высших учебных заведениях, так и в школах. Например, в Университете Линнекирхенского приложения технологий (Швеция) Olimex платформа используется для обучения различным курсам, связанным с электроникой, программированием, робототехникой и т.д.
Также Olimex платформа используется для подготовки к олимпиадам по информатике и робототехнике, а также для проведения различных практических занятий и лабораторных работ.
-
Сравнение эффективности обучения с использованием Olimex платформы и без ее использования
Для сравнения эффективности обучения с использованием и без использования Olimex платформы был проведен опрос студентов. Опрос показал, что Olimex платформа значительно упрощает процесс обучения программированию и электронике, так как позволяет легко создавать и отлаживать программы и устройства, производить эксперименты, а также создавать прототипы устройств.
Кроме того, использование Olimex платформы способствует повышению мотивации студентов, так как они получают возможность создавать реальные устройства, решать задачи, использующие навыки программирования и электроники.
-
Использование Olimex в программировании
Olimex может быть использован в программировании для разрабатывания, тестирования и отладки программного обеспечения на аппаратных платформах. Например, для создания прошивок для микроконтроллеров, драйверов для устройств ввода-вывода, систем управления и многих других приложений. Olimex предоставляет различные устройства, такие как шлюзы, переходники, отладочные платы и службы, которые помогают разработчикам тестировать и обновлять свое программное обеспечение на аппаратных платформах Olimex. Кроме того, инструменты и сервисы Olimex поддерживают множество различных платформ, включая ARM, AVR, MSP430, PIC, XMEGA и многие другие, что обеспечивает единый инструментарий для разработки программного обеспечения на разных платформах.
Олимекс - это компания, которая производит различные аппаратные платформы, такие как различные отладочные платы, специализированные модули, коннекторы, шлюзы и многие другие.
Одна из основных областей использования Olimex в программировании - это разработка системы встраиваемого программного обеспечения. Используя платформу, разработчики могут быстро создавать и тестировать финальный код для Jetson Nano, Raspberry Pi, Beaglebone, STM32 и других микроконтроллеров, процессоров и систем на чипе (SoC).
Существует множество инструментов для программирования, работающих на различных операционных системах, которые легко подключаются к платформе Olimex. Например, для управления и программирования микроконтроллеров доступны такие пакеты, как OpenOCD, JLink, AVR GCC, которые доступны на платформах Linux, Windows и Mac.
Для программирования микроконтроллеров также может быть использована консольная утилита, называемая avrdude, которая может загружать прошивки из командной строки. Также Olimex предоставляет интегрированную среду разработки для микроконтроллеров на платформе Eclipse, с контроллерами Авр, Ат91SAM и МК1064.
Еще одна важная область применения платформ Olimex в программировании - это разработка системы устройств на базе Linux. Используя отладочные платы Olimex, можно разрабатывать, тестировать и отлаживать приложения на базе Linux для таких платформ, как Raspberry Pi, BeagleBone, Jetson Nano и других.
Также Olimex предоставляет ряд обучающих курсов и руководств по их платформам, которые помогают новым разработчикам начать работу на платформах Olimex.
-
Применение платформы Олимекс вэлектронике.
Олимекс - это бренд, который производит микроконтроллеры и различные электронные компоненты для создания различных устройств. Зачастую они используются в системах автоматизации, а также в различных проектах связанных с Интернетом вещей (IoT).
Одним из самых популярных продуктов Olimex являются микроконтроллеры из семейства AVR и ARM. Они используются для создания различных электронных устройств, таких как роботы, системы управления, периферийные устройства для компьютеров и т.д.
Также Olimex производит платы различной сложности, которые могут служить базой для создания различных устройств. Наиболее популярной является плата-компьютер Olimex A20, который может использоваться для создания минимальных компьютерных систем.
Olimex также занимается производством компонентов, используемых в электронной промышленности, таких как контроллеры питания, драйверы двигателей и т.д.
В целом, платформу можно использовать для создания любого электронного устройства, где требуется высокая эффективность и надежность. Они могут быть использованы как основной компонент для создания новых устройств, так и в качестве замены старых и устаревших моделей.
Глава 2. Кодирование MSP430 из командной строки Linux.
Несмотря на то, что далее речь пойдет преимущественно о работе в среде Linux, к Windows все описанное тоже будет применимо, при условии использования Energia в версии для Windows и чего-то вроде CYGWIN. Для программирования MSP430 в Windows имеются следующие IDE: 1) Code Composer Studio aka CCStudio; 2) IAR Workbench for MSP430.
Так же в двух словах хочется пробежаться по преимуществам платформы MSP430 перед AVR:
-
Единая карта регистров. Не нужно каждый раз лезть в datasheet переписывая программу c ATtiny13 на ATtiny45 к примеру. Адреса и наименования для регистров всех моделей одной линейки одинаковы.
-
Цена. Обычно в розницу "младший" MSP430F2001, в корпусе DIP-14, стоит раза в два дешевле ATtiny13.
-
3.3-вольтовая логика. Разрабатываемую схему легко можно будет адаптировать для stm32 при необходимости, если схема "разрастётся".
-
Простота. Для написания программы под MSP430 не требуется SPL, написанный на Си алгоритм легко перенести как на AVR, так и на STM8/STM32.
-
16-битность. Арифметические операции с двухбайтовыми целыми числами выполняются одной инструкцией, что экономит место на flash-памяти и делает алгоритм быстрее.
-
Отсутствие фьюзов.
Что касается самого LaunchPad, здесь нужно отметить:
Т.к. на плате распаян программатор MSP430UIF, то для прошивки чипам не нужен загрузчик Arduino. Можно купить чип в магазине, вставить его в панельку, запустить Energia(версия Arduino для MSP430) и сразу начать программировать. Это как если бы USBASP был распаян на плате Arduino.
На плате два светодиода: зеленый и красный, вместо одного красного в Arduino.
Светодиоды можно отключить от микроконтроллера сняв расположенные рядом джампики.
Кроме кнопки RESET, имеется еще одна кнопка на P1.3.
На плате имеется датчик температуры.
Кроме программатора, на плате распаян чип USB-TTL конвертера.
Часть программатора соединяется с частью чипа через джампики. Их можно вообще снять, и подключить шлейф для прошивки или отладки микроконтроллера распаяного на другой плате. Вообще же, это называется eZ430 разъем.
На оборотной стороне платы имеются резиночки, предотвращающие соприкосновение контактов платы с поверхностью стола.
Часто можно встретить комментарии, что MSP430 чипы бедны на периферию. Мощные чипы конечно у TI конечно же есть, но здесь в цене начинает сильно выигрывать продукция фирмы STM. Однако STM не делает чипы в DIP корпусе, и STM8 не имеет поддержки в Linux, поэтому "младшие" MPS430 для замены ATtiny13/ATtiny2313 мне кажутся наиболее интересными. Кроме того они более "прокачены" чем ATtiny. Например MSP430F2002 имеет на борту аппаратный SPI и I2C, а MSP430F2003 имеет 16-битный сигма-дельта АЦП. Такого вообще нет ни у AVR ни у STM.
2.1. Energia (Arduino для MSP430)
На сайте Energia доступна для скачивания последняя версия E18. Я буду использовать версию E14, т.к. E18 заточена на новые версии Launchpad'ов, вроде: MSP-EXP430FR4133 или MSP-EXP432P401R, и если поддержка MSP430G2553 там еще осталась, то MSP430G2452 "выпилили". В версии для Windows Energia должна поставляться с драйверами(я не проверял), в Linux драйвера не нужны, зато нужно добавить правила udev в /etc/udev/rules.d/, что бы можно было прошивать микроконтроллер из под непривилегированного пользователя. После чего следует перезагрузить udev:
# udevadm control --reload-rules && udevadm trigger
При подключении Launchpad к компьютеру в dmesg появляется такой лог:
[50610.807682] usb 1-1.1: new full-speed USB device number 11 using ehci-pci
[50611.066905] usb 1-1.1: New USB device found, idVendor=0451, idProduct=f432
[50611.066914] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[50611.066920] usb 1-1.1: Product: Texas Instruments MSP-FET430UIF
[50611.066924] usb 1-1.1: Manufacturer: Texas Instruments
[50611.066928] usb 1-1.1: SerialNumber: 36FF49ABB1CF363D
[50621.190032] hid-generic 0003:0451:F432.0009: usb_submit_urb(ctrl) failed: -1
[50621.190043] hid-generic 0003:0451:F432.0009: timeout initializing reports
[50621.190274] hid-generic 0003:0451:F432.0009: hiddev0,hidraw4: USB HID v1.01 Device [Texas Instruments Texas Instruments MSP-FET430UIF] on usb-0000:00:02.1-1.1/input1
[50621.301136] cdc_acm 1-1.1:1.0: No union descriptor, testing for castrated device
[50621.301185] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
[50621.303129] usbcore: registered new interface driver cdc_acm
[50621.303136] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Новое устройство должно быть видно через lsusb:
# lsusb |grep 0451:f432
Bus 001 Device 011: ID 0451:f432 Texas Instruments, Inc. eZ430 Development Tool
После подключения у нас появляется последовательный порт:
# ls -l /dev/ttyA*
crw-rw-rw- 1 root dialout 166, 0 Aug 16 14:16 /dev/ttyACM0
Найдя в примерах Blink, в поддерживаемых чипах следует выбрать MSP430G2553:
Рис.2. LaunchPad
Serial Port и "Programmer(в E18 версии) не имеют значения.
При клике мышкой на иконку загрузки скетча(стрелочка вправо), в случае успешной компиляции и загрузки, в служебном окне появится такой лог:
Рис.3. Окно Blink
Можно раскомментировать строку #define LED GREEN_LED, тогда вместо красного светодиода будет мигать зеленый.
Как видно из лога, размер прошивки составил 816 байт, что не сильно меньше чем на 8-битном ATmega328. Даже если по мотивам, составить программу на чистом Си, то размер прошивки все равно будет занимать 434 байт.
void delay_ms(unsigned int ms )
{
unsigned int i;
for (i = 0; i<= ms; i++)
__delay_cycles(16000);
}
void setup() {
WDTCTL = WDTPW | WDTHOLD;
P1DIR = 0x01;
}
void loop() {
P1OUT ^=BIT0;
delay_ms(1000);
}
Теперь посмотрим что там с UART, видоизменим немного Blink и переставим джампики
Размер прошивки сразу вырос до 2454 байт.
Теперь попробуем залить этот скетч в MSP430G2452, не забыв переставить джампики обрано:
Как ни странно, пошивка с программным UART'ом по размеру оказалась даже меньше чем для аппаратного UART в MSP430G2553.
2.2. MSPDEBUG
MSPDEDUG предназначена для отладки микроконтроллера, и прошивка это лишь одна из его функций.
Можно воспользоваться версией которая входит в состав Energia, а можно самостоятельно собрать актуальную версию mspdebug.
Начинаем вбивать в консоль:
$ git clone https://github.com/dlbeer/mspdebug.git
$ cd mspdebug
$ make
собралось без проблем:
palladium:
/mspdebug: ls -l
итого 2484
-rw-r--r-- 1 flanker users 2717 авг 17 07:33 AUTHORS
-rw-r--r-- 1 flanker users 850 авг 17 07:33 BSDmakefile
-rw-r--r-- 1 flanker users 15237 авг 17 07:33 COPYING
-rw-r--r-- 1 flanker users 8490 авг 17 07:33 ChangeLog
-rw-r--r-- 1 flanker users 5638 авг 17 07:33 EmbeddedMode.txt
-rw-r--r-- 1 flanker users 5908 авг 17 07:33 Makefile
-rw-r--r-- 1 flanker users 1896 авг 17 07:33 README
-rw-r--r-- 1 flanker users 1472245 авг 17 07:33 chipinfo.db
drwxr-xr-x 2 flanker users 1720 авг 17 07:34 drivers
drwxr-xr-x 2 flanker users 480 авг 17 07:34 formats
-rwxr-xr-x 1 flanker users 924616 авг 17 07:34 mspdebug
-rw-r--r-- 1 flanker users 38491 авг 17 07:33 mspdebug.man
drwxr-xr-x 2 flanker users 500 авг 17 07:34 simio
-rw-r--r-- 1 flanker users 37874 авг 17 07:33 ti_3410.fw.ihex
-rw-r--r-- 1 flanker users 720 авг 17 07:33 ti_3410.fw.txt
drwxr-xr-x 2 flanker users 520 авг 17 07:34 transport
drwxr-xr-x 2 flanker users 900 авг 17 07:34 ui
drwxr-xr-x 2 flanker users 1340 авг 17 07:34 util
palladium:
/mspdebug: ./mspdebug --version
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.3.1.4 Copyright (C) 2013 TI, Inc.
Кидаем его в local и проверяем:
palladium:
/mspdebug: mv ./mspdebug /usr/local/bin/
'./mspdebug' -> '/usr/local/bin/mspdebug'
palladium:
/mspdebug: cd
palladium:
: mspdebug -version
You need to specify a driver. Try --help for a list.
palladium:
: mspdebug --version
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.3.1.4 Copyright (C) 2013 TI, Inc.
Теперь создадим простейший проект. Для этого: а)создадим папку проекта:
$ mkdir blink430
б) добавим туда файл main.c
#include
#include
#define LED BIT0
void delay_ms(unsigned int ms )
{
unsigned int i;
for (i = 0; i<= ms; i++)
__delay_cycles(1000);
}
int main(void) {
// turn-off watchdog
WDTCTL = WDTPW | WDTHOLD;
// setup DCO
DCOCTL=CALDCO_1MHZ;
BCSCTL1=CALBC1_1MHZ;
P1DIR |= LED;
for (;;)
{
P1OUT ^=BIT0;
delay_ms(1000);
}
return 0;
}
в) добавим Макеfile
MCU=msp430f2001
OBJCOPY=msp430-objcopy
CC=msp430-gcc
CFLAGS=-mmcu=$(MCU) -DHARDWARE -ggdb -Os -Wall
LDFLAGS=-mmcu=$(MCU)
OBJ=main.o
TARGET=blink
.PHONY: all clean
%.o: %.c
$(CC) -c -o $@ $< $(CFLAGS)
all: $(OBJ)
$(CC) $(LDFLAGS) -o $(TARGET).elf $(OBJ)
$(OBJCOPY) -O ihex $(TARGET).elf $(TARGET).hex
install:
@mspdebug -n rf2500 "prog $(TARGET).elf"
clean:
@rm -v *.elf *.hex $(OBJ)
Осталось только компилятор из /opt/energia/hardware/tools/msp430/ скопировать /usr/local, и можно начать программировать на Си. Правда при копировании компилятора затрется ранее переброшенный туда mspdebug, т.к. energia имеет свою версию mspdebug.
Вбиваем теперь в папке проекта команду make && make install, и если в все было сделано правильно, то прошивка должна скомпилироваться и залиться в микроконтроллер:
alladium:
/blink430: make && make install
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Елецкий государственный университет имени И.А. Бунина»
Институт математики, естествознания и техники
Кафедра физики радиотехники и электроники
Курсовой проект по дисциплине «Основы проектирования радиотехнических систем»
На тему: Оценка эффективности применения Olimex-платформы в качестве средства обучения программированию и электронике.
Выполнил:
обучающийся группы № ФР-41
форма обучения очная
направление подготовки: 11.03.01 Радиотехника (радиотехнические средства передачи, приема и обработки сигналов)
Сотников Сергей Юрьевич
Научный руководитель:
Кандидат физико-математических наук, доцент
Пешков Илья Владимирович
Елец-2022
Введение
Современное общество стремится к технологическому развитию, что требует соответствующего уровня знаний и навыков в области программирования и электроники. Обучение данных областей является актуальной задачей для многих учебных заведений. В качестве средства обучения программированию и электронике широко применяются различные микроконтроллеры и платформы. Одной из таких платформ является Olimex.
Оценка эффективности применения Olimex платформы в качестве средства обучения программированию и электронике является очень актуальной темой в свете современных требований к образованию. Сегодня взаимодействие с компьютерными технологиями становится все более необходимым в нашей жизни, и электроника играет в этом ключевую роль.
Olimex платформа - это компания, занимающаяся выпуском недорогих плат, которые могут использоваться в качестве средства обучения программированию и электронике. Эти платформы позволяют изучать различные языки программирования, электронику, робототехнику и т.д. Один из основных преимуществ использования Olimex платформы заключается в ее доступности - она является бюджетным и удобным решением для широкого круга пользователей.
Эффективность применения Olimex платформы в качестве средства обучения программированию и электронике можно оценить по нескольким критериям. Во-первых, это удобство и простота использования. Если пользователь может быстро и легко войти в процесс работы с платформой, то он в итоге сможет лучше изучить языки программирования и электронику. Во-вторых, это гибкость и дополнительные возможности платформы. Чем больше возможностей предоставляет Olimex, тем больше пользователей сможет использовать ее в рамках вузовского, школьного или индивидуального образования.
Также можно рассмотреть и другие аспекты, такие как уровень поддержки и функциональность Olimex, а также сравнить ее с конкурентами. В целом, оценка эффективности применения Olimex платформы поможет понять, насколько она может быть полезной для обучения программированию и электронике.
Цель работы
Целью данной курсовой работы является оценка эффективности применения Olimex платформы в качестве средства обучения программированию и электронике.
Задачи работы
Для достижения цели работы были поставлены следующие задачи:
1. Изучить теоретические основы работы с Olimex платформой.
2. Рассмотреть опыт использования Olimex платформы в учебном процессе.
3. Сравнить эффективность обучения с использованием Olimex платформы и без ее использования.
4. Сделать выводы о применимости Olimex платформы в качестве средства обучения программированию и электронике.
Глава 1. Изучение теоретических основ работы с Olimex платформой.
Olimex платформа представляет собой открытую аппаратную платформу, включающую в себя микроконтроллер семейства ARM, а также узел связи с интерфейсом USB и Ethernet. Она поддерживает различные языки программирования, такие как C, C++, Python, а также инструменты разработки, такие как GCC и другие.
Одним из главных преимуществ Olimex платформы является ее открытость и доступность для разработчиков, студентов и любителей электроники. Кроме того, Olimex платформа хорошо документирована и имеет огромное сообщество пользователей, что облегчает процесс разработки и поиска решений различных проблем.
Рис.1. Платформа olimex
-
Опыт использования Olimex платформы в учебном процессе
Olimex - это компания, которая производит электронные платы различных типов, таких как Arduino, Raspberry Pi, STM32 и другие. Эти платы используются для создания различных проектов, от простых электронных игр до более сложных устройств для автоматизации процессов.
В учебных заведениях olimex платформа может использоваться в рамках курсов по электронике, программированию и разработке встраиваемых систем. Использование olimex платформы поможет студентам понять, как работает электроника и как создавать свои собственные проекты.
Olimex платформа имеет ряд преимуществ для образовательных целей, таких как:
- Она доступна по цене, что позволяет школьникам и студентам приобретать ее без больших затрат.
- Olimex платформа имеет открытый исходный код, который позволяет студентам изучать код программного обеспечения и вносить самостоятельные изменения.
- Она имеет множество документации и примеров, которые помогают студентам быстро начать разработку своих проектов.
В целом, olimex платформа - это отличный инструмент для обучения электронике и программированию, который может быть использован в учебных заведениях и дома.
Olimex платформа широко применяется в учебном процессе, как в высших учебных заведениях, так и в школах. Например, в Университете Линнекирхенского приложения технологий (Швеция) Olimex платформа используется для обучения различным курсам, связанным с электроникой, программированием, робототехникой и т.д.
Также Olimex платформа используется для подготовки к олимпиадам по информатике и робототехнике, а также для проведения различных практических занятий и лабораторных работ.
-
Сравнение эффективности обучения с использованием Olimex платформы и без ее использования
Для сравнения эффективности обучения с использованием и без использования Olimex платформы был проведен опрос студентов. Опрос показал, что Olimex платформа значительно упрощает процесс обучения программированию и электронике, так как позволяет легко создавать и отлаживать программы и устройства, производить эксперименты, а также создавать прототипы устройств.
Кроме того, использование Olimex платформы способствует повышению мотивации студентов, так как они получают возможность создавать реальные устройства, решать задачи, использующие навыки программирования и электроники.
-
Использование Olimex в программировании
Olimex может быть использован в программировании для разрабатывания, тестирования и отладки программного обеспечения на аппаратных платформах. Например, для создания прошивок для микроконтроллеров, драйверов для устройств ввода-вывода, систем управления и многих других приложений. Olimex предоставляет различные устройства, такие как шлюзы, переходники, отладочные платы и службы, которые помогают разработчикам тестировать и обновлять свое программное обеспечение на аппаратных платформах Olimex. Кроме того, инструменты и сервисы Olimex поддерживают множество различных платформ, включая ARM, AVR, MSP430, PIC, XMEGA и многие другие, что обеспечивает единый инструментарий для разработки программного обеспечения на разных платформах.
Олимекс - это компания, которая производит различные аппаратные платформы, такие как различные отладочные платы, специализированные модули, коннекторы, шлюзы и многие другие.
Одна из основных областей использования Olimex в программировании - это разработка системы встраиваемого программного обеспечения. Используя платформу, разработчики могут быстро создавать и тестировать финальный код для Jetson Nano, Raspberry Pi, Beaglebone, STM32 и других микроконтроллеров, процессоров и систем на чипе (SoC).
Существует множество инструментов для программирования, работающих на различных операционных системах, которые легко подключаются к платформе Olimex. Например, для управления и программирования микроконтроллеров доступны такие пакеты, как OpenOCD, JLink, AVR GCC, которые доступны на платформах Linux, Windows и Mac.
Для программирования микроконтроллеров также может быть использована консольная утилита, называемая avrdude, которая может загружать прошивки из командной строки. Также Olimex предоставляет интегрированную среду разработки для микроконтроллеров на платформе Eclipse, с контроллерами Авр, Ат91SAM и МК1064.
Еще одна важная область применения платформ Olimex в программировании - это разработка системы устройств на базе Linux. Используя отладочные платы Olimex, можно разрабатывать, тестировать и отлаживать приложения на базе Linux для таких платформ, как Raspberry Pi, BeagleBone, Jetson Nano и других.
Также Olimex предоставляет ряд обучающих курсов и руководств по их платформам, которые помогают новым разработчикам начать работу на платформах Olimex.
-
Применение платформы Олимекс вэлектронике.
Олимекс - это бренд, который производит микроконтроллеры и различные электронные компоненты для создания различных устройств. Зачастую они используются в системах автоматизации, а также в различных проектах связанных с Интернетом вещей (IoT).
Одним из самых популярных продуктов Olimex являются микроконтроллеры из семейства AVR и ARM. Они используются для создания различных электронных устройств, таких как роботы, системы управления, периферийные устройства для компьютеров и т.д.
Также Olimex производит платы различной сложности, которые могут служить базой для создания различных устройств. Наиболее популярной является плата-компьютер Olimex A20, который может использоваться для создания минимальных компьютерных систем.
Olimex также занимается производством компонентов, используемых в электронной промышленности, таких как контроллеры питания, драйверы двигателей и т.д.
В целом, платформу можно использовать для создания любого электронного устройства, где требуется высокая эффективность и надежность. Они могут быть использованы как основной компонент для создания новых устройств, так и в качестве замены старых и устаревших моделей.
Глава 2. Кодирование MSP430 из командной строки Linux.
Несмотря на то, что далее речь пойдет преимущественно о работе в среде Linux, к Windows все описанное тоже будет применимо, при условии использования Energia в версии для Windows и чего-то вроде CYGWIN. Для программирования MSP430 в Windows имеются следующие IDE: 1) Code Composer Studio aka CCStudio; 2) IAR Workbench for MSP430.
Так же в двух словах хочется пробежаться по преимуществам платформы MSP430 перед AVR:
-
Единая карта регистров. Не нужно каждый раз лезть в datasheet переписывая программу c ATtiny13 на ATtiny45 к примеру. Адреса и наименования для регистров всех моделей одной линейки одинаковы.
-
Цена. Обычно в розницу "младший" MSP430F2001, в корпусе DIP-14, стоит раза в два дешевле ATtiny13.
-
3.3-вольтовая логика. Разрабатываемую схему легко можно будет адаптировать для stm32 при необходимости, если схема "разрастётся".
-
Простота. Для написания программы под MSP430 не требуется SPL, написанный на Си алгоритм легко перенести как на AVR, так и на STM8/STM32.
-
16-битность. Арифметические операции с двухбайтовыми целыми числами выполняются одной инструкцией, что экономит место на flash-памяти и делает алгоритм быстрее.
-
Отсутствие фьюзов.
Что касается самого LaunchPad, здесь нужно отметить:
Т.к. на плате распаян программатор MSP430UIF, то для прошивки чипам не нужен загрузчик Arduino. Можно купить чип в магазине, вставить его в панельку, запустить Energia(версия Arduino для MSP430) и сразу начать программировать. Это как если бы USBASP был распаян на плате Arduino.
На плате два светодиода: зеленый и красный, вместо одного красного в Arduino.
Светодиоды можно отключить от микроконтроллера сняв расположенные рядом джампики.
Кроме кнопки RESET, имеется еще одна кнопка на P1.3.
На плате имеется датчик температуры.
Кроме программатора, на плате распаян чип USB-TTL конвертера.
Часть программатора соединяется с частью чипа через джампики. Их можно вообще снять, и подключить шлейф для прошивки или отладки микроконтроллера распаяного на другой плате. Вообще же, это называется eZ430 разъем.
На оборотной стороне платы имеются резиночки, предотвращающие соприкосновение контактов платы с поверхностью стола.
Часто можно встретить комментарии, что MSP430 чипы бедны на периферию. Мощные чипы конечно у TI конечно же есть, но здесь в цене начинает сильно выигрывать продукция фирмы STM. Однако STM не делает чипы в DIP корпусе, и STM8 не имеет поддержки в Linux, поэтому "младшие" MPS430 для замены ATtiny13/ATtiny2313 мне кажутся наиболее интересными. Кроме того они более "прокачены" чем ATtiny. Например MSP430F2002 имеет на борту аппаратный SPI и I2C, а MSP430F2003 имеет 16-битный сигма-дельта АЦП. Такого вообще нет ни у AVR ни у STM.
2.1. Energia (Arduino для MSP430)
На сайте Energia доступна для скачивания последняя версия E18. Я буду использовать версию E14, т.к. E18 заточена на новые версии Launchpad'ов, вроде: MSP-EXP430FR4133 или MSP-EXP432P401R, и если поддержка MSP430G2553 там еще осталась, то MSP430G2452 "выпилили". В версии для Windows Energia должна поставляться с драйверами(я не проверял), в Linux драйвера не нужны, зато нужно добавить правила udev в /etc/udev/rules.d/, что бы можно было прошивать микроконтроллер из под непривилегированного пользователя. После чего следует перезагрузить udev:
# udevadm control --reload-rules && udevadm trigger
При подключении Launchpad к компьютеру в dmesg появляется такой лог:
[50610.807682] usb 1-1.1: new full-speed USB device number 11 using ehci-pci
[50611.066905] usb 1-1.1: New USB device found, idVendor=0451, idProduct=f432
[50611.066914] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[50611.066920] usb 1-1.1: Product: Texas Instruments MSP-FET430UIF
[50611.066924] usb 1-1.1: Manufacturer: Texas Instruments
[50611.066928] usb 1-1.1: SerialNumber: 36FF49ABB1CF363D
[50621.190032] hid-generic 0003:0451:F432.0009: usb_submit_urb(ctrl) failed: -1
[50621.190043] hid-generic 0003:0451:F432.0009: timeout initializing reports
[50621.190274] hid-generic 0003:0451:F432.0009: hiddev0,hidraw4: USB HID v1.01 Device [Texas Instruments Texas Instruments MSP-FET430UIF] on usb-0000:00:02.1-1.1/input1
[50621.301136] cdc_acm 1-1.1:1.0: No union descriptor, testing for castrated device
[50621.301185] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
[50621.303129] usbcore: registered new interface driver cdc_acm
[50621.303136] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Новое устройство должно быть видно через lsusb:
# lsusb |grep 0451:f432
Bus 001 Device 011: ID 0451:f432 Texas Instruments, Inc. eZ430 Development Tool
После подключения у нас появляется последовательный порт:
# ls -l /dev/ttyA*
crw-rw-rw- 1 root dialout 166, 0 Aug 16 14:16 /dev/ttyACM0
Найдя в примерах Blink, в поддерживаемых чипах следует выбрать MSP430G2553:
Рис.2. LaunchPad
Serial Port и "Programmer(в E18 версии) не имеют значения.
При клике мышкой на иконку загрузки скетча(стрелочка вправо), в случае успешной компиляции и загрузки, в служебном окне появится такой лог:
Рис.3. Окно Blink
Можно раскомментировать строку #define LED GREEN_LED, тогда вместо красного светодиода будет мигать зеленый.
Как видно из лога, размер прошивки составил 816 байт, что не сильно меньше чем на 8-битном ATmega328. Даже если по мотивам, составить программу на чистом Си, то размер прошивки все равно будет занимать 434 байт.
void delay_ms(unsigned int ms )
{
unsigned int i;
for (i = 0; i<= ms; i++)
__delay_cycles(16000);
}
void setup() {
WDTCTL = WDTPW | WDTHOLD;
P1DIR = 0x01;
}
void loop() {
P1OUT ^=BIT0;
delay_ms(1000);
}
Теперь посмотрим что там с UART, видоизменим немного Blink и переставим джампики
Размер прошивки сразу вырос до 2454 байт.
Теперь попробуем залить этот скетч в MSP430G2452, не забыв переставить джампики обрано:
Как ни странно, пошивка с программным UART'ом по размеру оказалась даже меньше чем для аппаратного UART в MSP430G2553.
2.2. MSPDEBUG
MSPDEDUG предназначена для отладки микроконтроллера, и прошивка это лишь одна из его функций.
Можно воспользоваться версией которая входит в состав Energia, а можно самостоятельно собрать актуальную версию mspdebug.
Начинаем вбивать в консоль:
$ git clone https://github.com/dlbeer/mspdebug.git
$ cd mspdebug
$ make
собралось без проблем:
palladium:
/mspdebug: ls -l
итого 2484
-rw-r--r-- 1 flanker users 2717 авг 17 07:33 AUTHORS
-rw-r--r-- 1 flanker users 850 авг 17 07:33 BSDmakefile
-rw-r--r-- 1 flanker users 15237 авг 17 07:33 COPYING
-rw-r--r-- 1 flanker users 8490 авг 17 07:33 ChangeLog
-rw-r--r-- 1 flanker users 5638 авг 17 07:33 EmbeddedMode.txt
-rw-r--r-- 1 flanker users 5908 авг 17 07:33 Makefile
-rw-r--r-- 1 flanker users 1896 авг 17 07:33 README
-rw-r--r-- 1 flanker users 1472245 авг 17 07:33 chipinfo.db
drwxr-xr-x 2 flanker users 1720 авг 17 07:34 drivers
drwxr-xr-x 2 flanker users 480 авг 17 07:34 formats
-rwxr-xr-x 1 flanker users 924616 авг 17 07:34 mspdebug
-rw-r--r-- 1 flanker users 38491 авг 17 07:33 mspdebug.man
drwxr-xr-x 2 flanker users 500 авг 17 07:34 simio
-rw-r--r-- 1 flanker users 37874 авг 17 07:33 ti_3410.fw.ihex
-rw-r--r-- 1 flanker users 720 авг 17 07:33 ti_3410.fw.txt
drwxr-xr-x 2 flanker users 520 авг 17 07:34 transport
drwxr-xr-x 2 flanker users 900 авг 17 07:34 ui
drwxr-xr-x 2 flanker users 1340 авг 17 07:34 util
palladium:
/mspdebug: ./mspdebug --version
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.3.1.4 Copyright (C) 2013 TI, Inc.
Кидаем его в local и проверяем:
palladium:
/mspdebug: mv ./mspdebug /usr/local/bin/
'./mspdebug' -> '/usr/local/bin/mspdebug'
palladium:
/mspdebug: cd
palladium:
: mspdebug -version
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Елецкий государственный университет имени И.А. Бунина»
Институт математики, естествознания и техники
Кафедра физики радиотехники и электроники
Курсовой проект по дисциплине «Основы проектирования радиотехнических систем»
На тему: Оценка эффективности применения Olimex-платформы в качестве средства обучения программированию и электронике.
Выполнил:
обучающийся группы № ФР-41
форма обучения очная
направление подготовки: 11.03.01 Радиотехника (радиотехнические средства передачи, приема и обработки сигналов)
Сотников Сергей Юрьевич
Научный руководитель:
Кандидат физико-математических наук, доцент
Пешков Илья Владимирович
Елец-2022
Введение
Современное общество стремится к технологическому развитию, что требует соответствующего уровня знаний и навыков в области программирования и электроники. Обучение данных областей является актуальной задачей для многих учебных заведений. В качестве средства обучения программированию и электронике широко применяются различные микроконтроллеры и платформы. Одной из таких платформ является Olimex.
Оценка эффективности применения Olimex платформы в качестве средства обучения программированию и электронике является очень актуальной темой в свете современных требований к образованию. Сегодня взаимодействие с компьютерными технологиями становится все более необходимым в нашей жизни, и электроника играет в этом ключевую роль.
Olimex платформа - это компания, занимающаяся выпуском недорогих плат, которые могут использоваться в качестве средства обучения программированию и электронике. Эти платформы позволяют изучать различные языки программирования, электронику, робототехнику и т.д. Один из основных преимуществ использования Olimex платформы заключается в ее доступности - она является бюджетным и удобным решением для широкого круга пользователей.
Эффективность применения Olimex платформы в качестве средства обучения программированию и электронике можно оценить по нескольким критериям. Во-первых, это удобство и простота использования. Если пользователь может быстро и легко войти в процесс работы с платформой, то он в итоге сможет лучше изучить языки программирования и электронику. Во-вторых, это гибкость и дополнительные возможности платформы. Чем больше возможностей предоставляет Olimex, тем больше пользователей сможет использовать ее в рамках вузовского, школьного или индивидуального образования.
Также можно рассмотреть и другие аспекты, такие как уровень поддержки и функциональность Olimex, а также сравнить ее с конкурентами. В целом, оценка эффективности применения Olimex платформы поможет понять, насколько она может быть полезной для обучения программированию и электронике.
Цель работы
Целью данной курсовой работы является оценка эффективности применения Olimex платформы в качестве средства обучения программированию и электронике.
Задачи работы
Для достижения цели работы были поставлены следующие задачи:
1. Изучить теоретические основы работы с Olimex платформой.
2. Рассмотреть опыт использования Olimex платформы в учебном процессе.
3. Сравнить эффективность обучения с использованием Olimex платформы и без ее использования.
4. Сделать выводы о применимости Olimex платформы в качестве средства обучения программированию и электронике.
Глава 1. Изучение теоретических основ работы с Olimex платформой.
Olimex платформа представляет собой открытую аппаратную платформу, включающую в себя микроконтроллер семейства ARM, а также узел связи с интерфейсом USB и Ethernet. Она поддерживает различные языки программирования, такие как C, C++, Python, а также инструменты разработки, такие как GCC и другие.
Одним из главных преимуществ Olimex платформы является ее открытость и доступность для разработчиков, студентов и любителей электроники. Кроме того, Olimex платформа хорошо документирована и имеет огромное сообщество пользователей, что облегчает процесс разработки и поиска решений различных проблем.
Рис.1. Платформа olimex
-
Опыт использования Olimex платформы в учебном процессе
Olimex - это компания, которая производит электронные платы различных типов, таких как Arduino, Raspberry Pi, STM32 и другие. Эти платы используются для создания различных проектов, от простых электронных игр до более сложных устройств для автоматизации процессов.
В учебных заведениях olimex платформа может использоваться в рамках курсов по электронике, программированию и разработке встраиваемых систем. Использование olimex платформы поможет студентам понять, как работает электроника и как создавать свои собственные проекты.
Olimex платформа имеет ряд преимуществ для образовательных целей, таких как:
- Она доступна по цене, что позволяет школьникам и студентам приобретать ее без больших затрат.
- Olimex платформа имеет открытый исходный код, который позволяет студентам изучать код программного обеспечения и вносить самостоятельные изменения.
- Она имеет множество документации и примеров, которые помогают студентам быстро начать разработку своих проектов.
В целом, olimex платформа - это отличный инструмент для обучения электронике и программированию, который может быть использован в учебных заведениях и дома.
Olimex платформа широко применяется в учебном процессе, как в высших учебных заведениях, так и в школах. Например, в Университете Линнекирхенского приложения технологий (Швеция) Olimex платформа используется для обучения различным курсам, связанным с электроникой, программированием, робототехникой и т.д.
Также Olimex платформа используется для подготовки к олимпиадам по информатике и робототехнике, а также для проведения различных практических занятий и лабораторных работ.
-
Сравнение эффективности обучения с использованием Olimex платформы и без ее использования
Для сравнения эффективности обучения с использованием и без использования Olimex платформы был проведен опрос студентов. Опрос показал, что Olimex платформа значительно упрощает процесс обучения программированию и электронике, так как позволяет легко создавать и отлаживать программы и устройства, производить эксперименты, а также создавать прототипы устройств.
Кроме того, использование Olimex платформы способствует повышению мотивации студентов, так как они получают возможность создавать реальные устройства, решать задачи, использующие навыки программирования и электроники.
-
Использование Olimex в программировании
Olimex может быть использован в программировании для разрабатывания, тестирования и отладки программного обеспечения на аппаратных платформах. Например, для создания прошивок для микроконтроллеров, драйверов для устройств ввода-вывода, систем управления и многих других приложений. Olimex предоставляет различные устройства, такие как шлюзы, переходники, отладочные платы и службы, которые помогают разработчикам тестировать и обновлять свое программное обеспечение на аппаратных платформах Olimex. Кроме того, инструменты и сервисы Olimex поддерживают множество различных платформ, включая ARM, AVR, MSP430, PIC, XMEGA и многие другие, что обеспечивает единый инструментарий для разработки программного обеспечения на разных платформах.
Олимекс - это компания, которая производит различные аппаратные платформы, такие как различные отладочные платы, специализированные модули, коннекторы, шлюзы и многие другие.
Одна из основных областей использования Olimex в программировании - это разработка системы встраиваемого программного обеспечения. Используя платформу, разработчики могут быстро создавать и тестировать финальный код для Jetson Nano, Raspberry Pi, Beaglebone, STM32 и других микроконтроллеров, процессоров и систем на чипе (SoC).
Существует множество инструментов для программирования, работающих на различных операционных системах, которые легко подключаются к платформе Olimex. Например, для управления и программирования микроконтроллеров доступны такие пакеты, как OpenOCD, JLink, AVR GCC, которые доступны на платформах Linux, Windows и Mac.
Для программирования микроконтроллеров также может быть использована консольная утилита, называемая avrdude, которая может загружать прошивки из командной строки. Также Olimex предоставляет интегрированную среду разработки для микроконтроллеров на платформе Eclipse, с контроллерами Авр, Ат91SAM и МК1064.
Еще одна важная область применения платформ Olimex в программировании - это разработка системы устройств на базе Linux. Используя отладочные платы Olimex, можно разрабатывать, тестировать и отлаживать приложения на базе Linux для таких платформ, как Raspberry Pi, BeagleBone, Jetson Nano и других.
Также Olimex предоставляет ряд обучающих курсов и руководств по их платформам, которые помогают новым разработчикам начать работу на платформах Olimex.
-
Применение платформы Олимекс вэлектронике.
Олимекс - это бренд, который производит микроконтроллеры и различные электронные компоненты для создания различных устройств. Зачастую они используются в системах автоматизации, а также в различных проектах связанных с Интернетом вещей (IoT).
Одним из самых популярных продуктов Olimex являются микроконтроллеры из семейства AVR и ARM. Они используются для создания различных электронных устройств, таких как роботы, системы управления, периферийные устройства для компьютеров и т.д.
Также Olimex производит платы различной сложности, которые могут служить базой для создания различных устройств. Наиболее популярной является плата-компьютер Olimex A20, который может использоваться для создания минимальных компьютерных систем.
Olimex также занимается производством компонентов, используемых в электронной промышленности, таких как контроллеры питания, драйверы двигателей и т.д.
В целом, платформу можно использовать для создания любого электронного устройства, где требуется высокая эффективность и надежность. Они могут быть использованы как основной компонент для создания новых устройств, так и в качестве замены старых и устаревших моделей.
Глава 2. Кодирование MSP430 из командной строки Linux.
Несмотря на то, что далее речь пойдет преимущественно о работе в среде Linux, к Windows все описанное тоже будет применимо, при условии использования Energia в версии для Windows и чего-то вроде CYGWIN. Для программирования MSP430 в Windows имеются следующие IDE: 1) Code Composer Studio aka CCStudio; 2) IAR Workbench for MSP430.
Так же в двух словах хочется пробежаться по преимуществам платформы MSP430 перед AVR:
-
Единая карта регистров. Не нужно каждый раз лезть в datasheet переписывая программу c ATtiny13 на ATtiny45 к примеру. Адреса и наименования для регистров всех моделей одной линейки одинаковы.
-
Цена. Обычно в розницу "младший" MSP430F2001, в корпусе DIP-14, стоит раза в два дешевле ATtiny13.
-
3.3-вольтовая логика. Разрабатываемую схему легко можно будет адаптировать для stm32 при необходимости, если схема "разрастётся".
-
Простота. Для написания программы под MSP430 не требуется SPL, написанный на Си алгоритм легко перенести как на AVR, так и на STM8/STM32.
-
16-битность. Арифметические операции с двухбайтовыми целыми числами выполняются одной инструкцией, что экономит место на flash-памяти и делает алгоритм быстрее.
-
Отсутствие фьюзов.
Что касается самого LaunchPad, здесь нужно отметить:
Т.к. на плате распаян программатор MSP430UIF, то для прошивки чипам не нужен загрузчик Arduino. Можно купить чип в магазине, вставить его в панельку, запустить Energia(версия Arduino для MSP430) и сразу начать программировать. Это как если бы USBASP был распаян на плате Arduino.
На плате два светодиода: зеленый и красный, вместо одного красного в Arduino.
Светодиоды можно отключить от микроконтроллера сняв расположенные рядом джампики.
Кроме кнопки RESET, имеется еще одна кнопка на P1.3.
На плате имеется датчик температуры.
Кроме программатора, на плате распаян чип USB-TTL конвертера.
Часть программатора соединяется с частью чипа через джампики. Их можно вообще снять, и подключить шлейф для прошивки или отладки микроконтроллера распаяного на другой плате. Вообще же, это называется eZ430 разъем.
На оборотной стороне платы имеются резиночки, предотвращающие соприкосновение контактов платы с поверхностью стола.
Часто можно встретить комментарии, что MSP430 чипы бедны на периферию. Мощные чипы конечно у TI конечно же есть, но здесь в цене начинает сильно выигрывать продукция фирмы STM. Однако STM не делает чипы в DIP корпусе, и STM8 не имеет поддержки в Linux, поэтому "младшие" MPS430 для замены ATtiny13/ATtiny2313 мне кажутся наиболее интересными. Кроме того они более "прокачены" чем ATtiny. Например MSP430F2002 имеет на борту аппаратный SPI и I2C, а MSP430F2003 имеет 16-битный сигма-дельта АЦП. Такого вообще нет ни у AVR ни у STM.
2.1. Energia (Arduino для MSP430)
На сайте Energia доступна для скачивания последняя версия E18. Я буду использовать версию E14, т.к. E18 заточена на новые версии Launchpad'ов, вроде: MSP-EXP430FR4133 или MSP-EXP432P401R, и если поддержка MSP430G2553 там еще осталась, то MSP430G2452 "выпилили". В версии для Windows Energia должна поставляться с драйверами(я не проверял), в Linux драйвера не нужны, зато нужно добавить правила udev в /etc/udev/rules.d/, что бы можно было прошивать микроконтроллер из под непривилегированного пользователя. После чего следует перезагрузить udev:
# udevadm control --reload-rules && udevadm trigger
При подключении Launchpad к компьютеру в dmesg появляется такой лог:
[50610.807682] usb 1-1.1: new full-speed USB device number 11 using ehci-pci
[50611.066905] usb 1-1.1: New USB device found, idVendor=0451, idProduct=f432
[50611.066914] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[50611.066920] usb 1-1.1: Product: Texas Instruments MSP-FET430UIF
[50611.066924] usb 1-1.1: Manufacturer: Texas Instruments
[50611.066928] usb 1-1.1: SerialNumber: 36FF49ABB1CF363D
[50621.190032] hid-generic 0003:0451:F432.0009: usb_submit_urb(ctrl) failed: -1
[50621.190043] hid-generic 0003:0451:F432.0009: timeout initializing reports
[50621.190274] hid-generic 0003:0451:F432.0009: hiddev0,hidraw4: USB HID v1.01 Device [Texas Instruments Texas Instruments MSP-FET430UIF] on usb-0000:00:02.1-1.1/input1
[50621.301136] cdc_acm 1-1.1:1.0: No union descriptor, testing for castrated device
[50621.301185] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
[50621.303129] usbcore: registered new interface driver cdc_acm
[50621.303136] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Новое устройство должно быть видно через lsusb:
# lsusb |grep 0451:f432
Bus 001 Device 011: ID 0451:f432 Texas Instruments, Inc. eZ430 Development Tool
После подключения у нас появляется последовательный порт:
# ls -l /dev/ttyA*
crw-rw-rw- 1 root dialout 166, 0 Aug 16 14:16 /dev/ttyACM0
Найдя в примерах Blink, в поддерживаемых чипах следует выбрать MSP430G2553:
Рис.2. LaunchPad
Serial Port и "Programmer(в E18 версии) не имеют значения.
При клике мышкой на иконку загрузки скетча(стрелочка вправо), в случае успешной компиляции и загрузки, в служебном окне появится такой лог:
Рис.3. Окно Blink
Можно раскомментировать строку #define LED GREEN_LED, тогда вместо красного светодиода будет мигать зеленый.
Как видно из лога, размер прошивки составил 816 байт, что не сильно меньше чем на 8-битном ATmega328. Даже если по мотивам, составить программу на чистом Си, то размер прошивки все равно будет занимать 434 байт.
void delay_ms(unsigned int ms )
{
unsigned int i;
for (i = 0; i<= ms; i++)
__delay_cycles(16000);
}
void setup() {
WDTCTL = WDTPW | WDTHOLD;
P1DIR = 0x01;
}
void loop() {
P1OUT ^=BIT0;
delay_ms(1000);
}
Теперь посмотрим что там с UART, видоизменим немного Blink и переставим джампики
Размер прошивки сразу вырос до 2454 байт.
Теперь попробуем залить этот скетч в MSP430G2452, не забыв переставить джампики обрано:
Как ни странно, пошивка с программным UART'ом по размеру оказалась даже меньше чем для аппаратного UART в MSP430G2553.
2.2. MSPDEBUG
MSPDEDUG предназначена для отладки микроконтроллера, и прошивка это лишь одна из его функций.
Можно воспользоваться версией которая входит в состав Energia, а можно самостоятельно собрать актуальную версию mspdebug.
Начинаем вбивать в консоль:
$ git clone https://github.com/dlbeer/mspdebug.git
$ cd mspdebug
$ make
собралось без проблем:
palladium:
/mspdebug: ls -l
итого 2484
-rw-r--r-- 1 flanker users 2717 авг 17 07:33 AUTHORS
-rw-r--r-- 1 flanker users 850 авг 17 07:33 BSDmakefile
-rw-r--r-- 1 flanker users 15237 авг 17 07:33 COPYING
-rw-r--r-- 1 flanker users 8490 авг 17 07:33 ChangeLog
-rw-r--r-- 1 flanker users 5638 авг 17 07:33 EmbeddedMode.txt
-rw-r--r-- 1 flanker users 5908 авг 17 07:33 Makefile
-rw-r--r-- 1 flanker users 1896 авг 17 07:33 README
-rw-r--r-- 1 flanker users 1472245 авг 17 07:33 chipinfo.db
drwxr-xr-x 2 flanker users 1720 авг 17 07:34 drivers
drwxr-xr-x 2 flanker users 480 авг 17 07:34 formats
-rwxr-xr-x 1 flanker users 924616 авг 17 07:34 mspdebug
-rw-r--r-- 1 flanker users 38491 авг 17 07:33 mspdebug.man
drwxr-xr-x 2 flanker users 500 авг 17 07:34 simio
-rw-r--r-- 1 flanker users 37874 авг 17 07:33 ti_3410.fw.ihex
-rw-r--r-- 1 flanker users 720 авг 17 07:33 ti_3410.fw.txt
drwxr-xr-x 2 flanker users 520 авг 17 07:34 transport
drwxr-xr-x 2 flanker users 900 авг 17 07:34 ui
drwxr-xr-x 2 flanker users 1340 авг 17 07:34 util
palladium:
/mspdebug: ./mspdebug --version
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.3.1.4 Copyright (C) 2013 TI, Inc.
Кидаем его в local и проверяем:
palladium:
/mspdebug: mv ./mspdebug /usr/local/bin/
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Елецкий государственный университет имени И.А. Бунина»
Институт математики, естествознания и техники
Кафедра физики радиотехники и электроники
Курсовой проект по дисциплине «Основы проектирования радиотехнических систем»
На тему: Оценка эффективности применения Olimex-платформы в качестве средства обучения программированию и электронике.
Выполнил:
обучающийся группы № ФР-41
форма обучения очная
направление подготовки: 11.03.01 Радиотехника (радиотехнические средства передачи, приема и обработки сигналов)
Сотников Сергей Юрьевич
Научный руководитель:
Кандидат физико-математических наук, доцент
Пешков Илья Владимирович
Елец-2022
Введение
Современное общество стремится к технологическому развитию, что требует соответствующего уровня знаний и навыков в области программирования и электроники. Обучение данных областей является актуальной задачей для многих учебных заведений. В качестве средства обучения программированию и электронике широко применяются различные микроконтроллеры и платформы. Одной из таких платформ является Olimex.
Оценка эффективности применения Olimex платформы в качестве средства обучения программированию и электронике является очень актуальной темой в свете современных требований к образованию. Сегодня взаимодействие с компьютерными технологиями становится все более необходимым в нашей жизни, и электроника играет в этом ключевую роль.
Olimex платформа - это компания, занимающаяся выпуском недорогих плат, которые могут использоваться в качестве средства обучения программированию и электронике. Эти платформы позволяют изучать различные языки программирования, электронику, робототехнику и т.д. Один из основных преимуществ использования Olimex платформы заключается в ее доступности - она является бюджетным и удобным решением для широкого круга пользователей.
Эффективность применения Olimex платформы в качестве средства обучения программированию и электронике можно оценить по нескольким критериям. Во-первых, это удобство и простота использования. Если пользователь может быстро и легко войти в процесс работы с платформой, то он в итоге сможет лучше изучить языки программирования и электронику. Во-вторых, это гибкость и дополнительные возможности платформы. Чем больше возможностей предоставляет Olimex, тем больше пользователей сможет использовать ее в рамках вузовского, школьного или индивидуального образования.
Также можно рассмотреть и другие аспекты, такие как уровень поддержки и функциональность Olimex, а также сравнить ее с конкурентами. В целом, оценка эффективности применения Olimex платформы поможет понять, насколько она может быть полезной для обучения программированию и электронике.
Цель работы
Целью данной курсовой работы является оценка эффективности применения Olimex платформы в качестве средства обучения программированию и электронике.
Задачи работы
Для достижения цели работы были поставлены следующие задачи:
1. Изучить теоретические основы работы с Olimex платформой.
2. Рассмотреть опыт использования Olimex платформы в учебном процессе.
3. Сравнить эффективность обучения с использованием Olimex платформы и без ее использования.
4. Сделать выводы о применимости Olimex платформы в качестве средства обучения программированию и электронике.
Глава 1. Изучение теоретических основ работы с Olimex платформой.
Olimex платформа представляет собой открытую аппаратную платформу, включающую в себя микроконтроллер семейства ARM, а также узел связи с интерфейсом USB и Ethernet. Она поддерживает различные языки программирования, такие как C, C++, Python, а также инструменты разработки, такие как GCC и другие.
Одним из главных преимуществ Olimex платформы является ее открытость и доступность для разработчиков, студентов и любителей электроники. Кроме того, Olimex платформа хорошо документирована и имеет огромное сообщество пользователей, что облегчает процесс разработки и поиска решений различных проблем.
Рис.1. Платформа olimex
-
Опыт использования Olimex платформы в учебном процессе
Olimex - это компания, которая производит электронные платы различных типов, таких как Arduino, Raspberry Pi, STM32 и другие. Эти платы используются для создания различных проектов, от простых электронных игр до более сложных устройств для автоматизации процессов.
В учебных заведениях olimex платформа может использоваться в рамках курсов по электронике, программированию и разработке встраиваемых систем. Использование olimex платформы поможет студентам понять, как работает электроника и как создавать свои собственные проекты.
Olimex платформа имеет ряд преимуществ для образовательных целей, таких как:
- Она доступна по цене, что позволяет школьникам и студентам приобретать ее без больших затрат.
- Olimex платформа имеет открытый исходный код, который позволяет студентам изучать код программного обеспечения и вносить самостоятельные изменения.
- Она имеет множество документации и примеров, которые помогают студентам быстро начать разработку своих проектов.
В целом, olimex платформа - это отличный инструмент для обучения электронике и программированию, который может быть использован в учебных заведениях и дома.
Olimex платформа широко применяется в учебном процессе, как в высших учебных заведениях, так и в школах. Например, в Университете Линнекирхенского приложения технологий (Швеция) Olimex платформа используется для обучения различным курсам, связанным с электроникой, программированием, робототехникой и т.д.
Также Olimex платформа используется для подготовки к олимпиадам по информатике и робототехнике, а также для проведения различных практических занятий и лабораторных работ.
-
Сравнение эффективности обучения с использованием Olimex платформы и без ее использования
Для сравнения эффективности обучения с использованием и без использования Olimex платформы был проведен опрос студентов. Опрос показал, что Olimex платформа значительно упрощает процесс обучения программированию и электронике, так как позволяет легко создавать и отлаживать программы и устройства, производить эксперименты, а также создавать прототипы устройств.
Кроме того, использование Olimex платформы способствует повышению мотивации студентов, так как они получают возможность создавать реальные устройства, решать задачи, использующие навыки программирования и электроники.
-
Использование Olimex в программировании
Olimex может быть использован в программировании для разрабатывания, тестирования и отладки программного обеспечения на аппаратных платформах. Например, для создания прошивок для микроконтроллеров, драйверов для устройств ввода-вывода, систем управления и многих других приложений. Olimex предоставляет различные устройства, такие как шлюзы, переходники, отладочные платы и службы, которые помогают разработчикам тестировать и обновлять свое программное обеспечение на аппаратных платформах Olimex. Кроме того, инструменты и сервисы Olimex поддерживают множество различных платформ, включая ARM, AVR, MSP430, PIC, XMEGA и многие другие, что обеспечивает единый инструментарий для разработки программного обеспечения на разных платформах.
Олимекс - это компания, которая производит различные аппаратные платформы, такие как различные отладочные платы, специализированные модули, коннекторы, шлюзы и многие другие.
Одна из основных областей использования Olimex в программировании - это разработка системы встраиваемого программного обеспечения. Используя платформу, разработчики могут быстро создавать и тестировать финальный код для Jetson Nano, Raspberry Pi, Beaglebone, STM32 и других микроконтроллеров, процессоров и систем на чипе (SoC).
Существует множество инструментов для программирования, работающих на различных операционных системах, которые легко подключаются к платформе Olimex. Например, для управления и программирования микроконтроллеров доступны такие пакеты, как OpenOCD, JLink, AVR GCC, которые доступны на платформах Linux, Windows и Mac.
Для программирования микроконтроллеров также может быть использована консольная утилита, называемая avrdude, которая может загружать прошивки из командной строки. Также Olimex предоставляет интегрированную среду разработки для микроконтроллеров на платформе Eclipse, с контроллерами Авр, Ат91SAM и МК1064.
Еще одна важная область применения платформ Olimex в программировании - это разработка системы устройств на базе Linux. Используя отладочные платы Olimex, можно разрабатывать, тестировать и отлаживать приложения на базе Linux для таких платформ, как Raspberry Pi, BeagleBone, Jetson Nano и других.
Также Olimex предоставляет ряд обучающих курсов и руководств по их платформам, которые помогают новым разработчикам начать работу на платформах Olimex.
-
Применение платформы Олимекс вэлектронике.
Олимекс - это бренд, который производит микроконтроллеры и различные электронные компоненты для создания различных устройств. Зачастую они используются в системах автоматизации, а также в различных проектах связанных с Интернетом вещей (IoT).
Одним из самых популярных продуктов Olimex являются микроконтроллеры из семейства AVR и ARM. Они используются для создания различных электронных устройств, таких как роботы, системы управления, периферийные устройства для компьютеров и т.д.
Также Olimex производит платы различной сложности, которые могут служить базой для создания различных устройств. Наиболее популярной является плата-компьютер Olimex A20, который может использоваться для создания минимальных компьютерных систем.
Olimex также занимается производством компонентов, используемых в электронной промышленности, таких как контроллеры питания, драйверы двигателей и т.д.
В целом, платформу можно использовать для создания любого электронного устройства, где требуется высокая эффективность и надежность. Они могут быть использованы как основной компонент для создания новых устройств, так и в качестве замены старых и устаревших моделей.
Глава 2. Кодирование MSP430 из командной строки Linux.
Несмотря на то, что далее речь пойдет преимущественно о работе в среде Linux, к Windows все описанное тоже будет применимо, при условии использования Energia в версии для Windows и чего-то вроде CYGWIN. Для программирования MSP430 в Windows имеются следующие IDE: 1) Code Composer Studio aka CCStudio; 2) IAR Workbench for MSP430.
Так же в двух словах хочется пробежаться по преимуществам платформы MSP430 перед AVR:
-
Единая карта регистров. Не нужно каждый раз лезть в datasheet переписывая программу c ATtiny13 на ATtiny45 к примеру. Адреса и наименования для регистров всех моделей одной линейки одинаковы.
-
Цена. Обычно в розницу "младший" MSP430F2001, в корпусе DIP-14, стоит раза в два дешевле ATtiny13.
-
3.3-вольтовая логика. Разрабатываемую схему легко можно будет адаптировать для stm32 при необходимости, если схема "разрастётся".
-
Простота. Для написания программы под MSP430 не требуется SPL, написанный на Си алгоритм легко перенести как на AVR, так и на STM8/STM32.
-
16-битность. Арифметические операции с двухбайтовыми целыми числами выполняются одной инструкцией, что экономит место на flash-памяти и делает алгоритм быстрее.
-
Отсутствие фьюзов.
Что касается самого LaunchPad, здесь нужно отметить:
Т.к. на плате распаян программатор MSP430UIF, то для прошивки чипам не нужен загрузчик Arduino. Можно купить чип в магазине, вставить его в панельку, запустить Energia(версия Arduino для MSP430) и сразу начать программировать. Это как если бы USBASP был распаян на плате Arduino.
На плате два светодиода: зеленый и красный, вместо одного красного в Arduino.
Светодиоды можно отключить от микроконтроллера сняв расположенные рядом джампики.
Кроме кнопки RESET, имеется еще одна кнопка на P1.3.
На плате имеется датчик температуры.
Кроме программатора, на плате распаян чип USB-TTL конвертера.
Часть программатора соединяется с частью чипа через джампики. Их можно вообще снять, и подключить шлейф для прошивки или отладки микроконтроллера распаяного на другой плате. Вообще же, это называется eZ430 разъем.
На оборотной стороне платы имеются резиночки, предотвращающие соприкосновение контактов платы с поверхностью стола.
Часто можно встретить комментарии, что MSP430 чипы бедны на периферию. Мощные чипы конечно у TI конечно же есть, но здесь в цене начинает сильно выигрывать продукция фирмы STM. Однако STM не делает чипы в DIP корпусе, и STM8 не имеет поддержки в Linux, поэтому "младшие" MPS430 для замены ATtiny13/ATtiny2313 мне кажутся наиболее интересными. Кроме того они более "прокачены" чем ATtiny. Например MSP430F2002 имеет на борту аппаратный SPI и I2C, а MSP430F2003 имеет 16-битный сигма-дельта АЦП. Такого вообще нет ни у AVR ни у STM.
2.1. Energia (Arduino для MSP430)
На сайте Energia доступна для скачивания последняя версия E18. Я буду использовать версию E14, т.к. E18 заточена на новые версии Launchpad'ов, вроде: MSP-EXP430FR4133 или MSP-EXP432P401R, и если поддержка MSP430G2553 там еще осталась, то MSP430G2452 "выпилили". В версии для Windows Energia должна поставляться с драйверами(я не проверял), в Linux драйвера не нужны, зато нужно добавить правила udev в /etc/udev/rules.d/, что бы можно было прошивать микроконтроллер из под непривилегированного пользователя. После чего следует перезагрузить udev:
# udevadm control --reload-rules && udevadm trigger
При подключении Launchpad к компьютеру в dmesg появляется такой лог:
[50610.807682] usb 1-1.1: new full-speed USB device number 11 using ehci-pci
[50611.066905] usb 1-1.1: New USB device found, idVendor=0451, idProduct=f432
[50611.066914] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[50611.066920] usb 1-1.1: Product: Texas Instruments MSP-FET430UIF
[50611.066924] usb 1-1.1: Manufacturer: Texas Instruments
[50611.066928] usb 1-1.1: SerialNumber: 36FF49ABB1CF363D
[50621.190032] hid-generic 0003:0451:F432.0009: usb_submit_urb(ctrl) failed: -1
[50621.190043] hid-generic 0003:0451:F432.0009: timeout initializing reports
[50621.190274] hid-generic 0003:0451:F432.0009: hiddev0,hidraw4: USB HID v1.01 Device [Texas Instruments Texas Instruments MSP-FET430UIF] on usb-0000:00:02.1-1.1/input1
[50621.301136] cdc_acm 1-1.1:1.0: No union descriptor, testing for castrated device
[50621.301185] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
[50621.303129] usbcore: registered new interface driver cdc_acm
[50621.303136] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Новое устройство должно быть видно через lsusb:
# lsusb |grep 0451:f432
Bus 001 Device 011: ID 0451:f432 Texas Instruments, Inc. eZ430 Development Tool
После подключения у нас появляется последовательный порт:
# ls -l /dev/ttyA*
crw-rw-rw- 1 root dialout 166, 0 Aug 16 14:16 /dev/ttyACM0
Найдя в примерах Blink, в поддерживаемых чипах следует выбрать MSP430G2553:
Рис.2. LaunchPad
Serial Port и "Programmer(в E18 версии) не имеют значения.
При клике мышкой на иконку загрузки скетча(стрелочка вправо), в случае успешной компиляции и загрузки, в служебном окне появится такой лог:
Рис.3. Окно Blink
Можно раскомментировать строку #define LED GREEN_LED, тогда вместо красного светодиода будет мигать зеленый.
Как видно из лога, размер прошивки составил 816 байт, что не сильно меньше чем на 8-битном ATmega328. Даже если по мотивам, составить программу на чистом Си, то размер прошивки все равно будет занимать 434 байт.
void delay_ms(unsigned int ms )
{
unsigned int i;
for (i = 0; i<= ms; i++)
__delay_cycles(16000);
}
void setup() {
WDTCTL = WDTPW | WDTHOLD;
P1DIR = 0x01;
}
void loop() {
P1OUT ^=BIT0;
delay_ms(1000);
}
Теперь посмотрим что там с UART, видоизменим немного Blink и переставим джампики
Размер прошивки сразу вырос до 2454 байт.
Теперь попробуем залить этот скетч в MSP430G2452, не забыв переставить джампики обрано:
Как ни странно, пошивка с программным UART'ом по размеру оказалась даже меньше чем для аппаратного UART в MSP430G2553.
2.2. MSPDEBUG
MSPDEDUG предназначена для отладки микроконтроллера, и прошивка это лишь одна из его функций.
Можно воспользоваться версией которая входит в состав Energia, а можно самостоятельно собрать актуальную версию mspdebug.
Начинаем вбивать в консоль:
$ git clone https://github.com/dlbeer/mspdebug.git
$ cd mspdebug
$ make
собралось без проблем:
palladium:
/mspdebug: ls -l-
Опыт использования Olimex платформы в учебном процессе
-
Сравнение эффективности обучения с использованием Olimex платформы и без ее использования
-
Использование Olimex в программировании
-
Применение платформы Олимекс вэлектронике.
Единая карта регистров. Не нужно каждый раз лезть в datasheet переписывая программу c ATtiny13 на ATtiny45 к примеру. Адреса и наименования для регистров всех моделей одной линейки одинаковы.
Цена. Обычно в розницу "младший" MSP430F2001, в корпусе DIP-14, стоит раза в два дешевле ATtiny13.
3.3-вольтовая логика. Разрабатываемую схему легко можно будет адаптировать для stm32 при необходимости, если схема "разрастётся".
Простота. Для написания программы под MSP430 не требуется SPL, написанный на Си алгоритм легко перенести как на AVR, так и на STM8/STM32.
16-битность. Арифметические операции с двухбайтовыми целыми числами выполняются одной инструкцией, что экономит место на flash-памяти и делает алгоритм быстрее.
Отсутствие фьюзов.
итого 2484
-rw-r--r-- 1 flanker users 2717 авг 17 07:33 AUTHORS
-rw-r--r-- 1 flanker users 850 авг 17 07:33 BSDmakefile
-rw-r--r-- 1 flanker users 15237 авг 17 07:33 COPYING
-rw-r--r-- 1 flanker users 8490 авг 17 07:33 ChangeLog
-rw-r--r-- 1 flanker users 5638 авг 17 07:33 EmbeddedMode.txt
-rw-r--r-- 1 flanker users 5908 авг 17 07:33 Makefile
-rw-r--r-- 1 flanker users 1896 авг 17 07:33 README
-rw-r--r-- 1 flanker users 1472245 авг 17 07:33 chipinfo.db
drwxr-xr-x 2 flanker users 1720 авг 17 07:34 drivers
drwxr-xr-x 2 flanker users 480 авг 17 07:34 formats
-rwxr-xr-x 1 flanker users 924616 авг 17 07:34 mspdebug
-rw-r--r-- 1 flanker users 38491 авг 17 07:33 mspdebug.man
drwxr-xr-x 2 flanker users 500 авг 17 07:34 simio
-rw-r--r-- 1 flanker users 37874 авг 17 07:33 ti_3410.fw.ihex
-rw-r--r-- 1 flanker users 720 авг 17 07:33 ti_3410.fw.txt
drwxr-xr-x 2 flanker users 520 авг 17 07:34 transport
drwxr-xr-x 2 flanker users 900 авг 17 07:34 ui
drwxr-xr-x 2 flanker users 1340 авг 17 07:34 util
palladium:
'./mspdebug' -> '/usr/local/bin/mspdebug'
palladium:
You need to specify a driver. Try --help for a list.
palladium:
#include
#define LED BIT0
void delay_ms(unsigned int ms )
{
unsigned int i;
for (i = 0; i<= ms; i++)
__delay_cycles(1000);
}
int main(void) {
// turn-off watchdog
WDTCTL = WDTPW | WDTHOLD;
// setup DCO
DCOCTL=CALDCO_1MHZ;
BCSCTL1=CALBC1_1MHZ;
P1DIR |= LED;
for (;;)
{
P1OUT ^=BIT0;
delay_ms(1000);
}
return 0;
}
в) добавим Макеfile
MCU=msp430f2001
OBJCOPY=msp430-objcopy
CC=msp430-gcc
CFLAGS=-mmcu=$(MCU) -DHARDWARE -ggdb -Os -Wall
LDFLAGS=-mmcu=$(MCU)
OBJ=main.o
TARGET=blink
.PHONY: all clean
%.o: %.c
$(CC) -c -o $@ $< $(CFLAGS)
all: $(OBJ)
$(CC) $(LDFLAGS) -o $(TARGET).elf $(OBJ)
$(OBJCOPY) -O ihex $(TARGET).elf $(TARGET).hex
install:
@mspdebug -n rf2500 "prog $(TARGET).elf"
clean:
@rm -v *.elf *.hex $(OBJ)
Осталось только компилятор из /opt/energia/hardware/tools/msp430/ скопировать /usr/local, и можно начать программировать на Си. Правда при копировании компилятора затрется ранее переброшенный туда mspdebug, т.к. energia имеет свою версию mspdebug.
Вбиваем теперь в папке проекта команду make && make install, и если в все было сделано правильно, то прошивка должна скомпилироваться и залиться в микроконтроллер:
alladium:
msp430-gcc -c -o main.o main.c -mmcu=msp430f2001 -DHARDWARE -ggdb -Os -Wall
msp430-gcc -mmcu=msp430f2001 -o blink.elf main.o
msp430-objcopy -O ihex blink.elf blink.hex
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.3.1.4 Copyright (C) 2013 TI, Inc.
Trying to open interface 1 on 015
rf2500: warning: can't detach kernel driver: No such file or directory
Initializing FET...
FET protocol version is 30394216
Set Vcc: 3000 mV
Configured for Spy-Bi-Wire
fet: FET returned error code 4 (Could not find device or device not supported)
fet: command C_IDENT1 failed
Using Olimex identification procedure
Device ID: 0xf201
Code start address: 0xf800
Code size : 2048 byte = 2 kb
RAM start address: 0x200
RAM end address: 0x27f
RAM size : 128 byte = 0 kb
Device: F20x1_G2x0x_G2x1x
Number of breakpoints: 2
fet: FET returned NAK
warning: device does not support power profiling
Chip ID data:
ver_id: 01f2
ver_sub_id: 0000
revision: 10
fab: 40
self: 0000
config: 01
fuses: 00
Device: F20x1_G2x0x_G2x1x
Erasing...
Programming...
Writing 132 bytes at fc00 [section: .text]...
Writing 32 bytes at ffe0 [section: .vectors]...
Done, 164 bytes total
164 байта - совсем другое дело!
Итак, с прошивкой разобрались, осталось разобраться с отладкой.
2.3. Отладка с помощью GDB
Mspdebug может служить gdb-сервером, если его запустить с опцией: mspdebug rf2500 gdb
palladium:
GNU gdb (GDB) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=x86_64-unknown-linux-gnu --target=msp430".
For bug reporting instructions, please see:
Reading symbols from /home/flanker/blink/blink.elf...done.
(gdb)
Обращаю внимание, что прошивка должна быть скомпилирована с опцией -ggdb, она прописана в Makefile.
Подключаемся к серверу:
(gdb) target remote localhost:2000
Remote debugging using localhost:2000
_reset_vector__ () at ../../../gcc/gcc/config/msp430/crt0.S:105
105 ../../../gcc/gcc/config/msp430/crt0.S: Нет такого файла или каталога.
in ../../../gcc/gcc/config/msp430/crt0.S
загружаем прошивку, ставим break, и запускаем микроконтроллер на отладку:
(gdb) load
Loading section .text, size 0x84 lma 0xfc00
Loading section .vectors, size 0x20 lma 0xffe0
Start address 0xfc00, load size 164
Transfer rate: 691 bytes/sec, 82 bytes/write.
(gdb) break main
Breakpoint 1 at 0xfc44: file main.c, line 17.
(gdb) continue
Continuing.
Breakpoint 1, main () at main.c:17
17 DCOCTL=CALDCO_1MHZ;
(gdb)
Осматриваемся:
(gdb) disass
Dump of assembler code for function main:
0x0000fc3e <+0>: mov #23168, &0x0120 ;#0x5a80
=> 0x0000fc44 <+6>: mov.b &0x10fe,&0x0056
0x0000fc4a <+12>: mov.b &0x10ff,&0x0057
0x0000fc50 <+18>: bis.b #1, &0x0022 ;r3 As==01
0x0000fc54 <+22>: xor.b #1, &0x0021 ;r3 As==01
0x0000fc58 <+26>: mov #1000, r15 ;#0x03e8
0x0000fc5c <+30>: call #0xfc6c
0x0000fc60 <+34>: jmp $-12 ;abs 0xfc54
End of assembler dump.
(gdb) list
12 int main(void) {
13 // turn-off watchdog
14 WDTCTL = WDTPW | WDTHOLD;
15
16 // setup DCO
17 DCOCTL=CALDCO_1MHZ;
18 BCSCTL1=CALBC1_1MHZ;
19
20 P1DIR |= LED;
21
(gdb) info registers
pc/r0: fc44 sp/r1: 0280 sr/r2: 0003 r3: 0000
fp/r4: 0f57 r5: 5a08 r6: f57d r7: 7d7f
r8: d779 r9: dcc9 r10: c6ed r11: fbcb
r12: 4eb9 r13: 006c r14: 0080 r15: 0000
(gdb)
Прогоним рабочий цикл:
(gdb) x/xb 0x0021
0x21: 0xff
(gdb) n
18 BCSCTL1=CALBC1_1MHZ;
(gdb) n
20 P1DIR |= LED;
(gdb) x/xb 0x0022
0x22: 0x00
(gdb) n
24 P1OUT ^=BIT0;
(gdb) x/xb 0x0022
0x22: 0x01
(gdb) x/xb 0x0021
0x21: 0xff
(gdb) n
25 delay_ms(1000);
(gdb) x/xb 0x0021
0x21: 0xfe
(gdb)
После команды команды P1DIR|=LED; светодиод загорается т.к. в P1OUT изначально был забит единицами, а после команды P1OUT^=LED; светодиод гаснет.
Заключение
Выводы о применимости Olimex платформы в качестве средства обучения программированию и электронике.
Олимекс платформа действительно эффективна в качестве средства обучения программированию и электронике. Она обладает рядом преимуществ, таких как доступность, открытость, документированность, а также широкие возможности для создания прототипов устройств и разработки программ.
Олимекс платформа способствует повышению мотивации студентов и упрощает процесс обучения программированию и электронике. Ее применение в учебном процессе помогает студентам лучше понимать теоретические концепции, связанные с программированием и электроникой, а также помогает им научиться применять полученные знания в практической деятельности.
Таким образом, Olimex платформа может быть рекомендована как эффективное средство обучения программированию и электронике. Ее применение способствует повышению качества образования в соответствующих областях и помогает подготовить квалифицированных специалистов в области технологий.
Список использованных источников