реклама на сайте
подробности

 
 
> Собственный Bootloader для MSP430
Pavel V.
сообщение May 18 2010, 10:01
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



Здравствуйте!

Интересно, писал ли кто-нибудь собственный бутлоадер для контроллеров MSP? Хочется обновлять прошивку через стандартный UART, с помощью которого плата общается с управляющим компьютером. Для AVR встречал множество примеров, а для MSP никак не могу найти. По идее технически это возможно, но где бы посмотреть пример?

Буду рад любой помощи и ссылке где почитать.


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение May 18 2010, 19:04
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Pavel V. @ May 18 2010, 16:01) *
По идее технически это возможно
Технически - да, это несложно. Техника самопрограммирования Flash в MSP430 весьма неплохая. Однако, как это часто бывает, "дьявол кроется в мелочах".
Во-первых, напомню, что во всех MSP430 (кроме самых маленьких из серии MSP430F20xx) есть встроенный BootStrip Loader, который описан в документации. Если нет нехватки пинов МК, то часто его можно совместить с UART. Добавив два преобразователя уровня для сигналов TEST/TCK и RESET, можно программировать через тот же порт, к которому подключены пины UART. Протокол BSL описан. Имеется возможность патчить его. Тщательно этот вопрос не исследовал, но по-моему имеется возможность перенаправить порт В/В для BSL на один из реальных UART.
Во-вторых, следует прояснить, вам нужен bootloader для настольного или "полевого" варианта устройства? Имеется в виду, есть к устройству физический доступ или оно работает где-то в сети и внутрь его влезть невозможно? Если вариант настольный, то я опять же голосую за встроенный BSL. Лично я в устройствах, где не предполагается смена ПО в полевых условиях обычно вывожу 6 пинов для BSL и все. Нужно перепрограммировать - снял крышку с прибора, подключил преобразователь уровней от COM-порта, прижав его разъем к отверстиям в плате, и за пару минут перешил.
Если же нужен "полевой" вариант бутлоадера, то следует учитывать такой нюанс. Все вектора прерываний у MSP430 находятся в одном секторе Flash. Следовательно при смене ПО, использующего прерывания, нужно этот сектор стирать и переписывать. Но если сбой произойдет именно в момент стирания/перезаписи, то все. Капут. Ваш бутлоадер уже больше не стартанет, т.к. будет запорчен (стерт) вектор сброса, где располагается адрес перехода на ваш бутлоадер. Поэтому сегмент с прерываниями стирать нельзя крайне нежелательно. Вместо этого сами вектора следует отмаппировать в другой сегмент Flash или в ОЗУ. Тут на форуме где-то уже давали вариант исходника маппирования векторов прерываний в ОЗУ. Но следует учитывать, что компиляторы про такое маппирование даже не будут подозревать, бо это нештатный хук. Поэтому вам самому придется писать ПО с учетом такого маппирования. И соответственно одной из функций бутлоадера должна быть проверка валидности "перемещенных" векторов прерываний. "Перемещенных" в кавычках, т.к. маппирование получается виртуальное и адреса векторов физически не перемещаются. Векторы прерываний при этом лишь содержат адрес ячейки памяти, где должен стоять JMP на адрес реального обработчика прерывания.
Вот такие мысли. laughing.gif
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 19 2010, 06:26
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(rezident @ May 18 2010, 23:04) *
Нужно перепрограммировать - снял крышку с прибора, подключил преобразователь уровней от COM-порта, прижав его разъем к отверстиям в плате, и за пару минут перешил.

А теперь представим, что на складе лежит штук 100 готовых изделий, по 6 винтов в крышечке.
Плюс герметизирующая резинка, которая прилипает, и крышку иногда отколупывать приходится с помощью какой-то матери, стараясь не повредить эмаль корпуса.
Также представим, что я выпускаю извещение на ПО и иду с ним к регулировщикам...
Далее следует непереводимая игра слов...
Вот появилась идея вызывать вшитый BSL по какой-либо сервисной команде, тогда для перепрошивки достаточно объединить UART с пинами BSL и перепрошивать без вскрытия через имеющийся канал связи.
Но это вариант только для внутреннего применения, т.к. прошивка не шифруется.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pavel V.   Собственный Bootloader для MSP430   May 18 2010, 10:01
- - VVlad   Пробовал по приложенной ссылке, но пока без успеха...   May 18 2010, 10:43
- - Сергей Борщ   Цитата(Pavel V. @ May 18 2010, 13:01) Для...   May 18 2010, 10:46
|- - Сергей Борщ   Цитата(rezident @ May 18 2010, 22:04) Вме...   May 18 2010, 23:00
- - Shread   Есть вот такая аппликуха: http://focus.ti.com/gene...   May 20 2010, 08:58
|- - MrYuran   Цитата(Shread @ May 20 2010, 12:58) Есть ...   May 20 2010, 10:31
- - Pavel V.   Большое спасибо всем за ответы, особенно Сергею и ...   May 20 2010, 13:53
- - xgcyo   Мы делали следующим образом. Бутлоадер зашивался п...   May 24 2010, 13:23
|- - Сергей Борщ   Цитата(xgcyo @ May 24 2010, 16:23) ...   May 24 2010, 14:43
- - Rud0x1   Здравствуйте. Правильно ли я понимаю, что для F55...   Feb 1 2013, 11:33
- - thodnev   Интересно, кто-то заморачивался созданием usb-бутл...   Feb 4 2013, 13:42
|- - Shread   Цитата(thodnev @ Feb 4 2013, 17:42) Интер...   Feb 11 2013, 10:03
- - Ave   Добрый день. Не могли бы подсказать где находится ...   Apr 4 2013, 10:52
|- - rezident   Цитата(Ave @ Apr 4 2013, 15:52) Не могли ...   Apr 4 2013, 11:00
- - Ave   Интересует кристалл MSP430F5528. И возможно прошит...   Apr 5 2013, 07:46
|- - Shread   Цитата(Ave @ Apr 5 2013, 11:46) Интересуе...   Apr 14 2013, 14:54
|- - Ave   Добрый день Спасибо за ответ. Пробывал передать ...   May 3 2013, 09:56
- - jack_avenger   Цитата(Ave @ May 3 2013, 12:56) Добрый де...   May 3 2013, 18:55
|- - d7d1cd   Цитата(jack_avenger @ May 3 2013, 21:55) ...   Aug 30 2015, 12:27
- - Ave   Спасибо за ответы. Разобрался у MSP430F55xx станда...   Jul 25 2013, 11:29
- - slavokhire5   Привет всем. Делаю блютуз-бутлоадер для msp430. Фл...   Aug 28 2015, 10:50
|- - KARLSON   Цитата(slavokhire5 @ Aug 28 2015, 13:50) ...   Sep 16 2015, 06:16
- - controller_m30   Если вместо формата "msp430-txt" выбрать...   Aug 28 2015, 11:17
- - slavokhire5   Привет всем. Пишу бутлоадер для msp430f6721 в IAR....   Aug 31 2015, 06:46
- - slavokhire5   Привет всем. Пытаюсь разобраться с разблокирование...   Mar 26 2016, 14:07
- - mcheb   Для обращения к области BSL её надо разблокировать...   Mar 27 2016, 04:49
|- - slavokhire5   Цитата(mcheb @ Mar 27 2016, 08:49) Для об...   Mar 27 2016, 09:44
- - mcheb   BSL Scripter должен уметь разлочивать область BSL....   Mar 27 2016, 15:47


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016