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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> AT91SAM7 управление памятью(samba)
aaarrr
сообщение Feb 8 2012, 22:55
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Twen @ Feb 9 2012, 02:46) *
Эти слова меня удивили, честно говоря.

Почему? Из "системы команд" загрузчика уже очевидно, что флеш он не пишет.

Цитата(Twen @ Feb 9 2012, 02:46) *
Получается мне нужно будет написать программку для слейва, например такую, если пришла команда x, то записать код у флеш...скомпилировать эту программку и отправить по протоколу X-Modem как файл, по адрессу начальном из таблицы 21.4(SAM7X256: 0x202000 - 0x210000 ).

Ну хорошо скажем зашил я у слейв вторичный загрузчик(программу обработки запросов от мастера), а какую мне потом команду нужно выполнить для выполнения этого кода из стартового адреса 0x202000, на стороне слейва. Вот эту - G0x202000,# ?

Да, эту.

Цитата(Twen @ Feb 9 2012, 02:46) *
Когда у слейва будет запущена программа обработки запросов мастера, тогда мастер сможет посылать определенные команды(например записать данные такие-то во флеш или стереть, разблокировать флеш).
Я правильно понимаю?

Совершенно верно.

Цитата(Twen @ Feb 9 2012, 02:46) *
А заводская программа выходит загружает в область юзера RAM свои аплеты, в зависимости от команды , или только один аплет универсальный, который будет обслуживать все команды запроса?

Возможно, заводская программа в RAM ничего и не держит, кроме векторов и переменных - не изучал.
При программировании через SAM-BA, последняя загружает в RAM свой код (см. папку tcl_lib), и работает уже с ним.
Go to the top of the page
 
+Quote Post
Twen
сообщение Feb 9 2012, 07:33
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543



Ясно, спасибо. Возможно, понял не сразу потому-что со встроенными аппаратными загрузчиками никогда не работал, но теперь понял.
Сейчас хочу установить Visual C++ 6.0 и открыть проект этого загрузчика им(проект которыйй идет в папке "example"), тогда будет удобно разобраться в коде производителя.
Также запущу снифер, посмотрю как ПК общается с МК.
Кстати, все сниферы ком-порта разбирают протокол X-modem? Просто хотелось бы увидеть пакеты протокола x-modem с инкапсулированными данными, а не как поток данных, чтобы легче было разобраться.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 9 2012, 08:50
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Если честно, не знаю, имеет ли смысл ковыряться со сниффером и кодом производителя. ИМХО, проще сразу написать свой загрузчик и поддержку X-modem.
Go to the top of the page
 
+Quote Post
Twen
сообщение Feb 9 2012, 09:44
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543



Возможно напишу и свой загрузчик.
Интересно почему у даташите не написали, что загрузчик SAM-BA может писать в RAM, читать с RAM и Flash, но не может писать у Flash...искал в даташите, но ничего об этом не нашел...
Go to the top of the page
 
+Quote Post
Twen
сообщение Feb 9 2012, 11:43
Сообщение #20


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543



Сейчас запущу снифер и SAM-BA посмотрю о чем они общаются.

Сообщение отредактировал Twen - Feb 9 2012, 12:22
Go to the top of the page
 
+Quote Post
Twen
сообщение Feb 9 2012, 16:11
Сообщение #21


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543



Так вот, после запуска SAM-BA со стороны ПК я включил снифер в состояние прослушивания. Выбрал загрузка в RАМ, выбрал сам файл бинарный, который сам создал (в нем были аски символы 1234), выбрал адрес 0x0020 0000, после этого нажал кнопку Send...вот что я увидел:

S00200000,00000004#
C
<SOH><SOH>ю1234<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><DC2>n
<ACK>
<EOT>
<ACK>


Значение после команды передачи файла =4 - кол. байт.

Пробывал через терминал писать байт в RAM и читать , все отлично работает...пробывал записать у Flash значение, команда прошла, вернулся символ > , но когда прочитал то получил FF.

Нашел статью одну небольшую, оказывается сам протокол boot loader-a не открытый, его просто подсмотрели частично...

Сообщение отредактировал Twen - Feb 10 2012, 09:35
Go to the top of the page
 
+Quote Post

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

 


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


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