Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2020-окт-22 06:52

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 5 сообщений ] 
Автор Сообщение
СообщениеДобавлено: 2018-дек-18 14:11 
Не в сети

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 126
Организация: частное лицо
Инструкция для сборки прошивки с помощью arm-none-eabi-gcc и программирования через UART
контроллеров Миландр серий 1986х 1901х (для Windows).

I Требования
Аппаратное обеспечение:
1. Компьютер с установленной Windows (7, 10 ...) и COM портом
(или USB-Serial адаптер в случае отсутствия COM порта)
2. Нуль модемный кабель
3. Отладочная плата Миландр 1986ВЕ91Т (либо 1986ВЕ1Т, 1901ВЦ1Т)

Программное обеспечение:
1. mingw32-make (напимер из состава Qt)
2. Компилятор gcc для ARM контроллеров (arm-none-eabi-gcc)
3. Утилита прошивки контроллеров через UART (MSA-mcufmloader-1.0.rar)
4. Библиотека для контроллеров Миландр и пример использования
библиотеки (test-evbrd-src.rar)


II Установка программного обеспечения
1. Установка mingw32-make
1.1 Скачать и установить дистрибутив Qt.
mingw32-make.exe находится в папке "<директория Qt>\Qt<version>\Tools\mingw491_32\bin"
1.2 Добавить путь к mingw32-make.exe в системную переменную Path.
Вложение:
Комментарий к файлу: Добавление пути в переменную Path
[ attachment ]
add_to_path_var.PNG [ 45.26 КБ | 2454 просмотра ]
2. Установка компилятора arm-none-eabi-gcc
2.1 Скачать и распаковать архив с компилятором в любую директорию.
Скачать можно здесь:
https://launchpad.net/gcc-arm-embedded/ ... -win32.zip
Компилятор arm-none-eabi-gcc.exe находится в папке "<директория arm-none-eabi-gcc>\bin
2.2 Добавить путь к arm-none-eabi-gcc.exe в системную переменную Path.

3. Установка утилиты mcufmloader
3.1 Скачать и распаковать архив с утилитой (MSA-mcufmloader-1.0.rar) в любую директорию.
3.2 Добавить путь к mcufmloader в системную переменную Path.


III Исходный код примера (test-evbrd-src.rar)
Директория lib содержит низкоуровневый код для работы с периферийными
утсройствами микроконтроллеров Миландр серий 1986х, 1901х.
Директория test-evbrd содержит исходный код примера и Makefile для его сборки
Директория test-evbrd/src содержит файлы исходного кода примера
Директория test-evbrd/output содержит выходные файлы после сборки:
output/bin - файлы прошивки после сборки в форматах elf, hex, bin, а также map файл;
output/lst - файлы листингов;
output/obj - объектные файлы.


IV Сборка исходного кода
Все команды выполняются в каталоге test-evbrd.
Все символы в командной строке латинские.
По умолчанию сборка производится для контроллера 1986ВЕ91Т

1. Сборка прошивки для 1986ВЕ91Т:
mingw32-make -f Makefile-test

2. Сборка прошивки для 1986ВЕ1Т:
mingw32-make -f Makefile-test MCU=1986BE1x MCUM=1986BE1T

3. Сборка прошивки для 1901ВЦ1Т:
mingw32-make -f Makefile-test MCU=1901BC1x MCUM=1901BC1T
Вложение:
Комментарий к файлу: Вывод компилятора при успешной сборке
[ attachment ]
gcc-output.PNG [ 36.57 КБ | 2454 просмотра ]
V Программирование/стирание EEPROM
Перед программированием подключите отладочную плату нуль-модемным кабелем к
компьютеру и установите на плате переключатели SW1,SW2,SW3 в режим загрузки по UART
(UART loader, см. описание на соответствующую плату).
После этого рекомендуется выключить и затем снова включить питание платы.

По умолчанию программирование производится через порт COM1, используйте
опцию "-port N" утилиты mcufmloader для выбора порта:
"-port 0" соответствует COM1; "-port 1" соответствует COM2 и т.д.
Выполните команду "mcufmloader --help" для получения подробной справки.


1. Программирование EEPROM 1986ВЕ91Т:
mingw32-make -f Makefile-test program

2. Программирование EEPROM 1986ВЕ1Т:
mingw32-make -f Makefile-test MCU=1986BE1x MCUM=1986BE1T program

3. Программирование EEPROM 1901ВС1Т:
mingw32-make -f Makefile-test MCU=1901BC1x MCUM=1901BC1T program
Вложение:
Комментарий к файлу: Вывод при успешном программировании EEPROM
[ attachment ]
mcufmloader-output.PNG [ 20.03 КБ | 2454 просмотра ]
4. Стирание EEPROM 1986ВЕ91Т:
mingw32-make -f Makefile-test erase

5. Стирание EEPROM 1986ВЕ1Т:
mingw32-make -f Makefile-test MCU=1986BE1x MCUM=1986BE1T erase

6. Стирание EEPROM 1901ВС1Т:
mingw32-make -f Makefile-test MCU=1901BC1x MCUM=1901BC1T erase


Вложения:
Комментарий к файлу: Исходный код примера программы для контроллеров серий 1986х, 1901х
test-evbrd-src.rar [507.94 КБ]
287 скачиваний
Комментарий к файлу: Консольная утилита прошивки контроллеров через UART
MSA-mcufmloader-1.0.rar [327.63 КБ]
234 скачивания
Вернуться к началу
СообщениеДобавлено: 2019-окт-14 12:03 
Не в сети

Зарегистрирован: 2019-окт-10 12:45
Сообщения: 9
Организация: private person
Sergey3141592 писал(а):
Инструкция для сборки прошивки с помощью arm-none-eabi-gcc и программирования
большое СПАСИБО за рабочий пример. эта шутку сразу компилируется и работает, но есть практические замечания:
1) make не обязательно брать в громоздком QT. как минимум mingw есть отдельно, есть GnuWin32 и другие
но есть и такой момент - в примере makefile используется довольно нетипичная конструкция с for которая работает со старыми make а вот новыми (v.4+) уже не хочет
2) mcufmloader вещь хорошая так как из командной строки работает. Но мне показалось что она помедленнее 1986VE1WSD, исходников нет, бутлоадеры запихнуты внутрь софтины, их если что не поменять.
3) с выбором mcu че то мудрено :)
3) самописный ld радует, но он дает "дырку" в три байта в конце hex файла, не все софты это понимают и дают ошибку верфикации
Но это все лирика. Объем работы поражает, т.к. это не многолетнее копирование исходников phiton, milandr и кого там еще


Вернуться к началу
СообщениеДобавлено: 2019-окт-14 12:16 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1526
Откуда: Тула
Nuts писал(а):
... исходников нет, бутлоадеры запихнуты внутрь софтины, их если что не поменять.
Я когда "творчески перерабатывал" программы vasili тоже столкнулся с этой проблемой.
Предполагал для начала использовать его загрузчики, а позднее написать единый проект загрузчика для нескольких серий МК и под это дело оставил возможность выбора загрузчика. Но позднее стало ясно, что особого смысла это не имеет: для любых изменений в алгоритме обмена с загрузчиком или введения дополнительной функциональности требуется изменения управляющей программы, а без исходников это невозможно. Так что определение загрузчика пользователем пришлось запретить.

_________________
сочувствующий…


Вернуться к началу
СообщениеДобавлено: 2019-окт-14 15:50 
Не в сети

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 126
Организация: частное лицо
Nuts писал(а):
большое СПАСИБО за рабочий пример. эта шутку сразу компилируется и работает, но есть практические замечания:
1) make не обязательно брать в громоздком QT. как минимум mingw есть отдельно, есть GnuWin32 и другие
но есть и такой момент - в примере makefile используется довольно нетипичная конструкция с for которая работает со старыми make а вот новыми (v.4+) уже не хочет
2) mcufmloader вещь хорошая так как из командной строки работает. Но мне показалось что она помедленнее 1986VE1WSD, исходников нет, бутлоадеры запихнуты внутрь софтины, их если что не поменять.
3) с выбором mcu че то мудрено :)
4) самописный ld радует, но он дает "дырку" в три байта в конце hex файла, не все софты это понимают и дают ошибку верификации
Но это все лирика. Объем работы поражает, т.к. это не многолетнее копирование исходников phiton, milandr и кого там еще
Спасибо за оценку.
1) make из Qt, потому что я одно время писал приложения для Qt и привык к его редактору кода. Вместо for, думаю можно добавить компиляцию каждого файла отдельной строкой.
2) прикладываю исходный код mcufmloader.
3) По поводу MCU/MCUM: предполагается что MCU - некий общий тип контроллера, MCUM - конкретная модель со своими особенностями.
4) не могу ничего сказать.


Вложения:
Комментарий к файлу: Исходный код mcufmloader
mcufmloader-2016-12-19_16-34-00.rar [111 КБ]
160 скачиваний
Вернуться к началу
СообщениеДобавлено: 2019-окт-14 16:00 
Не в сети

Зарегистрирован: 2019-окт-10 12:45
Сообщения: 9
Организация: private person
ого! загрузчики тоже свои.. снимаю шляпу!


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 5 сообщений ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB