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

 
 
 
Reply to this topicStart new topic
> А есть ли такая фишка в MSP430, писать во внешнюю память программ
Gorby
сообщение May 1 2006, 11:38
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002



Даже затрудняюсь в двух словах задачу описать. Начну сначала.

Для некоторой управляющей микропроцессорной системы требуется следующая функциональность: наличие Serial Port (лучше два). И самое главное, возможность апдейтить софт удаленно (система имеет в составе GSM модуль WISMO).
Я вижу это дело так: имеется бут-лоадер, который умеет грузить из внешней последовательной флешки бинарный образ в некое ОЗУ (внешнее или внутреннее), находящееся также (или после переключаемое) в области памяти программ. Ну и после успешной загрузки передает туда управление. Быстродействия особого не требуется.
Для апдейта мы просто записываем новый образ в последовательную флешку (рядом с исходным, Оригинальным образом). А бут-лоадер умееть распознать его наличие и грузит его в ОЗУ, из которого оно и выполняется.
Запутанно...

Например, достаточно подходящим выглядит обычный AT89S53 от Атмел. То есть умеет исполнять код из внешней памяти. И писать туда может как в данные.

А вот в АВР-ах такой возможности не нашел. Или не заметил? Я смотрел AT90S8515. Он умеет работать с внешней памятью данных, но не программ.

Кто что может посоветовать?


--------------------
Умею молчать на 37 языках...
Go to the top of the page
 
+Quote Post
dxp
сообщение May 1 2006, 12:04
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Gorby @ May 1 2006, 18:38) *
Даже затрудняюсь в двух словах задачу описать. Начну сначала.

Для некоторой управляющей микропроцессорной системы требуется следующая функциональность: наличие Serial Port (лучше два). И самое главное, возможность апдейтить софт удаленно (система имеет в составе GSM модуль WISMO).
Я вижу это дело так: имеется бут-лоадер, который умеет грузить из внешней последовательной флешки бинарный образ в некое ОЗУ (внешнее или внутреннее), находящееся также (или после переключаемое) в области памяти программ. Ну и после успешной загрузки передает туда управление. Быстродействия особого не требуется.
Для апдейта мы просто записываем новый образ в последовательную флешку (рядом с исходным, Оригинальным образом). А бут-лоадер умееть распознать его наличие и грузит его в ОЗУ, из которого оно и выполняется.
Запутанно...

MSP430 не умеет работать с внешний памятью. Ни программ, ни данных - вся память у него внутри шины адресов и данных наружу не выходят. Но ничего не мешает, имхо, загружить куски кода во внутреннее ОЗУ и пускать оттуда. Весь вопрос только в том, сколько ОЗУ в применяемом МК, влезет ли в нее нужное количество кода.

Еще вариант - программировать свою флешь "на лету". Т.е. не в ОЗУ грузить программу, а прямо во флешь. Флешь у MSP430 побита на блоки по 512 байт, каждый блок может быть индивидуально стерт. Таким образом, можно спокойно перекачать данные (программу) из внешнего хранилища во внутреннюю флешь. И не трогать уже запрограммированые блоки.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Gorby
сообщение May 1 2006, 12:20
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002



Цитата(dxp @ May 1 2006, 16:04) *
Цитата(Gorby @ May 1 2006, 18:38) *

Даже затрудняюсь в двух словах задачу описать. Начну сначала.

Запутанно...

MSP430 не умеет работать с внешний памятью. Ни программ, ни данных - вся память у него внутри шины адресов и данных наружу не выходят. Но ничего не мешает, имхо, загружить куски кода во внутреннее ОЗУ и пускать оттуда. Весь вопрос только в том, сколько ОЗУ в применяемом МК, влезет ли в нее нужное количество кода.

Еще вариант - программировать свою флешь "на лету". Т.е. не в ОЗУ грузить программу, а прямо во флешь. Флешь у MSP430 побита на блоки по 512 байт, каждый блок может быть индивидуально стерт. Таким образом, можно спокойно перекачать данные (программу) из внешнего хранилища во внутреннюю флешь. И не трогать уже запрограммированые блоки.


Спасибо, пища для размышлений уже появилась.
А насчет
"Но ничего не мешает, имхо, загружить куски кода во внутреннее ОЗУ и пускать оттуда. " это точно? Ибо далеко не каждый проц умеет выполнять команды из ОЗУ данных.


--------------------
Умею молчать на 37 языках...
Go to the top of the page
 
+Quote Post
Shread
сообщение May 1 2006, 16:33
Сообщение #4


иногда заглядывающий
****

Группа: Свой
Сообщений: 900
Регистрация: 18-05-05
Из: Зеленоград
Пользователь №: 5 170



Цитата
"Но ничего не мешает, имхо, загружить куски кода во внутреннее ОЗУ и пускать оттуда. " это точно? Ибо далеко не каждый проц умеет выполнять команды из ОЗУ данных.

- Абсолютно точно! biggrin.gif
Вот она ортоганальность архитектуры MSP430, делается простым jmp на нужный адрес.
Go to the top of the page
 
+Quote Post
Gorby
сообщение May 2 2006, 18:50
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002



Цитата(vvvvv @ May 2 2006, 20:26) *
Я делал эту штуку, все просто :
= после копирования watchdog reset. Все, испытано немерянное
количество раз, работает супер, вплоть до докачки при обрыве
связи в следующем сеансе. А вот и исходники.



Спасибо огромное! Именно то, что искал.


--------------------
Умею молчать на 37 языках...
Go to the top of the page
 
+Quote Post

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

 


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


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