|
AT91SAM7 управление памятью(samba) |
|
|
|
Jan 18 2012, 18:04
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543

|
Добрый вечер. Я на форуме видел несколько похожих тем, но они не дают ответа на мои вопросы, по этому решил создать эту тему. Меня мучает некоторое непонимание... Смотрите, у микроконтроллера AT91SAM7 есть 4 основных блока адресации :
0x0000 0000 - ROM,RAM,FLASH - в зависимости от бита GPNVM и remap 0x0010 0000 - Flash 0x0020 0000 - SRAM 0x0030 0000 - ROM
Первое что мне не понятно это зачем вообще нужна команда remap, я так понимаю, что работа счетчика команд возмжна только в диапазоне адресов от 0x0000 0000 до 0x0010 0000, и по этому для того чтобы можно было выполнять код программы из Ram или Flash использ. комана remap, правильно?
Теперь, если например мы сделали ERASE, быт GPNVM очистился, что означает, что загрузка происходит из ROM. То есть начинается выполнятся загрузка из ROM и будет ждать пока я запущу прогр. samba и прошью плату? Хорошо, если я потом прошью ее, скажем у Flash, то есть по адресу 0x0010 0000 , то после сброса бит GPNVM установится автоматически и загрузка начнется с флеши, так?
Также, я заметил, что некоторые программы с примеров от атмела выполняют remapRam у функции инициализации Lowlevel...Выходит, если я прошил программу у Flash, она выполняется, а потом делается RemapRAm() и уже по начальному адрессу 0x0000 00xx мы проц выполняет команды из RAM, но прошивали же его у Flash , у RAM ничего же нету, кода программы или при вызове команды RemapRAM автомат. происходит копирование кода программы у RAM из Flash и дальнейшее ее выполнение, но тогда тратится же много ОЗУ, не могу понять.
Мне эти недопонимания застряли в голове и не дают покоя, если может ли кто-то, пожалуйста, объяснить, спасибо.
Сообщение отредактировал Twen - Jan 18 2012, 18:07
|
|
|
|
|
 |
Ответов
|
Feb 8 2012, 16:56
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543

|
Блин я опять немного запутался, извиняйте, но я начну немного вернусь назад... Цитата если например мы сделали ERASE, быт GPNVM очистился, что означает, что загрузка происходит из ROM. То есть начинается выполнятся загрузка из ROM и будет ждать пока я запущу прогр. samba и прошью плату Это так, загрузчик выполняется из ROM, потом перехожу на даташит SAM7x Series, пункт 21.3 Deviece Initialization: 1,2...6 - Copy code into SRAM,7...11 - Jump to Sam-Ba Boot sequence. Вот, пункт шестой - копируем код у RAM(код загрузчика у ROM я так понял)... Немного не понятно зачем его копировать туда, если он выполняется из ROM(пускай бы изROM бы и выполнялся, а у раме находились бы его какие-то переменные)...ааа наверное это связано с вектором прерываний. Выходит мы скопировали загрузчик у RAM, который выполнялся из ROM и потом загрузчик запустил выполнение кода из RAM, правильно? А потом при записи с ПК файла в МК он пишется у выбранную нами область, кроме той где находится загрузчик. Цитата Лучше сделать так: 1. Мастер записывает при помощи X-modem в RAM слейва небольшую программку для программирования флеш 2. Дальнейшее общение мастер производит уже с ней Собственно, самба так и работает. Если вы говорите что собственно, самба так и работает, то для чего тогда писать для слейва прогу такую же, тогда использую аппаратный загрузик у слейве, а для мастера напишу свою. (Извините, если что-то не так понял...) Если кто-то реализовывал подобное, пишите)
|
|
|
|
|
Feb 8 2012, 17:19
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Twen @ Feb 8 2012, 20:56)  1,2...6 - Copy code into SRAM,7...11 - Jump to Sam-Ba Boot sequence. Вот, пункт шестой - копируем код у RAM(код загрузчика у ROM я так понял)... Немного не понятно зачем его копировать туда, если он выполняется из ROM(пускай бы изROM бы и выполнялся, а у раме находились бы его какие-то переменные)...ааа наверное это связано с вектором прерываний. Выходит мы скопировали загрузчик у RAM, который выполнялся из ROM и потом загрузчик запустил выполнение кода из RAM, правильно? Ну, это как бы внутренняя кухня загрузчика. Цитата(Twen @ Feb 8 2012, 20:56)  А потом при записи с ПК файла в МК он пишется у выбранную нами область, кроме той где находится загрузчик. Область памяти, которую можно использовать под свой загрузчик, прописана в табличке в п.21.5 Цитата(Twen @ Feb 8 2012, 20:56)  Если вы говорите что собственно, самба так и работает, то для чего тогда писать для слейва прогу такую же, тогда использую аппаратный загрузик у слейве, а для мастера напишу свою. Этот "аппаратный загрузчик" не предназначен для записи флеш. Единственная его задача - позволить загрузить с хоста вторичный загрузчик (то что у самбы называется applet). То есть вам нужно сделать три вещи: Для слейва: Написать прошивальщик со своим протоколом, который будет жить в дозволенной области RAM. Для хоста: Обеспечить загрузку этого прошивальщика через X-modem Обеспечить взаимодействие с прошивальщиком для последующей записи флеш/GPNVM.
|
|
|
|
Сообщений в этой теме
Twen AT91SAM7 управление памятью(samba) Jan 18 2012, 18:04 aaarrr Цитата(Twen @ Jan 18 2012, 22:04) Первое ... Jan 18 2012, 18:11 _4afc_ Цитата(aaarrr @ Jan 18 2012, 21:11) Нет, ... Jan 20 2012, 09:25  aaarrr Цитата(_4afc_ @ Jan 20 2012, 13:25) В слу... Jan 20 2012, 10:36 sparcmaster Про remap популярно объясняется тут. Jan 19 2012, 04:33 Twen Спасибо, немного стало яснее. Jan 19 2012, 14:47 Twen ЦитатаТак как в первом сообщении помянут бит GPNVM... Jan 23 2012, 14:13 aaarrr Цитата(Twen @ Jan 23 2012, 18:13) Ходят с... Jan 23 2012, 14:49 Twen Ок, спасибо, но я слышал, что вроде сталкивались с... Jan 28 2012, 08:06 aaarrr Нет, такого не встречал, хотя с EMAC'ом работа... Jan 28 2012, 09:48 Twen Сегодня узнал, что нужно будет вплотную занятся из... Feb 8 2012, 14:27 aaarrr Если писать по словам командами, то получится очен... Feb 8 2012, 14:39 Twen Завтра я установлю снифер, зайду у samb-ba и попыт... Feb 8 2012, 22:46 aaarrr Цитата(Twen @ Feb 9 2012, 02:46) Эти слов... Feb 8 2012, 22:55 Twen Ясно, спасибо. Возможно, понял не сразу потому-что... Feb 9 2012, 07:33 aaarrr Если честно, не знаю, имеет ли смысл ковыряться со... Feb 9 2012, 08:50 Twen Возможно напишу и свой загрузчик.
Интересно почему... Feb 9 2012, 09:44 Twen Сейчас запущу снифер и SAM-BA посмотрю о чем они о... Feb 9 2012, 11:43 Twen Так вот, после запуска SAM-BA со стороны ПК я вклю... Feb 9 2012, 16:11
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|