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

 
 
> Собственный 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
Ответов
xgcyo
сообщение May 24 2010, 13:23
Сообщение #2





Группа: Участник
Сообщений: 8
Регистрация: 9-07-09
Из: Рига, Латвия
Пользователь №: 51 080



Мы делали следующим образом. Бутлоадер зашивался по джэйтэгу, ну а прошивка в зашифрованном виде по уарту. DTR и RTS линии использовалисть для сброса МК и переключения между бутлоадером и рабочей программой соответственно. К МК подключен мост от FTDI, который по 7-8 долларов у нас. Бутлоадер компилировался обычным образом, никаких "перемещений" векторов в нём нет. Функции всех прерываний бутлоадера содержали инструкцию безусловного перехода (branch) по адресам "сдвинутых" прерываний рабочей программы. Эти адреса задавались в скрипте для компоновщика. "Сдвинутые" прерывания находятся во флеше, сначала были в RAM, но от этой идеи отказались, т.к. возможны неприятные последствия, какие именно уже не помню.
Ещё надо разграничить адресное пространство для бутлоадера и рабочей программы, чтоб не перекрывались. Вот команды для компоновщика IAR, включая "перемещённые" вектора прерываний рабочей программы.

Для бутлоадера.
Код
// Constant data
-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT=EA00-FFDF

// Code
-Z(CODE)CSTART,ISR_CODE=EA00-FFDF
-P(CODE)CODE=EA00-FFDF

// Interrupt vectors
-Z(CODE)INTVEC=0xFFE0-0xFFFF
-Z(CODE)RESET=FFFE-FFFF


Для рабочей программы.
Код
// Constant data
-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT=4040-FFFF

// Code
-Z(CODE)CSTART,ISR_CODE=4040-FFFF
-P(CODE)CODE=4040-FFFF

// Interrupt vectors
-Z(CODE)INTVEC=0x4000-0x403F
-Z(CODE)RESET=403E-0x403F


Чтоб задействовать в IARе: Project -> Options -> Linker -> Config -> Linker command file -> Override default снять. Скопировать файл, который там указан в директорию своего проекта и добавить вышеописанные команды. Вы разберётесь.
Вобщем всё это интересно, можно свою мини-ось написать с отдельными экзешниками, мультизадачностью... Был бы вагон времени только. smile.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 24 2010, 14:43
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(xgcyo @ May 24 2010, 16:23) *
"Сдвинутые" прерывания находятся во флеше, сначала были в RAM, но от этой идеи отказались, т.к. возможны неприятные последствия, какие именно уже не помню.
У меня с точностью до наоборот - прерывания в ОЗУ чтобы можно было в приложении и в загрузчике использовать разные обработчики на одних и тех же векторах без дополнительных ветвлений. А неприятные последствия только одни - случайное затирание этой таблицы в ОЗУ. Ну так к таким же последствиям может привести и случайное затирание стека.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
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   Цитата(Pavel V. @ May 18 2010, 16:01) По ...   May 18 2010, 19:04
|- - Сергей Борщ   Цитата(rezident @ May 18 2010, 22:04) Вме...   May 18 2010, 23:00
|- - MrYuran   Цитата(rezident @ May 18 2010, 23:04) Нуж...   May 19 2010, 06:26
- - 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
- - 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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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