| Автор | Сообщение |
uretz Новичок Сообщения: 24
|
Помогите разобраться с организацией памяти в AVR.
Конкретно имеется ATMEGA 32.Flash 32Кб, eeprom 1024б.
Сливаю прошивку с модуля стиральной машины- размер 74кб.
Думаю ошибка, смотрю другие прошивки схожих моделей- размер так же превышает размер внутренней памяти проца.
Задал вопрос на ветке по СМА, получил ответ: А фьюзы? И всё...
Я сам думал об этом, где хранится инфа о фьзах во флеш или загрузочной области, получается где ещё?
BLS – Boot Loader Section
While the Application section is used for storing the application code, the The Boot
Loader software must be located in the BLS since the SPM instruction can initiate a programming
when executing from the BLS only. The SPM instruction can access the
entire Flash, including the BLS itself.
Судя по этому загрузочная область (Boot Loader Section ) - часть flash, а она 32кб в Atmega32
Да ещё, если я загружаю прошивку с компа в Pony prog то информации о фьюзах нет, она считываются только если микропроцессор непосредственно подключен к порту компа через программатор, значит во флеш её нет?
спасибо заранее |
|
AlexM Участник Сообщения: 883
|
А в чём собственно проблема ? Места на компе жалко? По поводу фьюзы тебе наврали.  |
|
uretz Новичок Сообщения: 24
|
Во мне! Понять xoчу
32 меньше, чем 74 как? встакан налить поллитра |
|
AlexM Участник Сообщения: 883
|
| uretz писал: | Во мне! Понять xoчу
32 меньше, чем 74 как? встакан налить поллитра |
ОК . А если взвесить 250г водки налитой в стакан вместе со стаканом и теже поллитра налить в целофановый пакет и тоже взвесить. Вес будет одинаковый? Скорее всего нет. Файл это тоже упаковка для данных. Если Вы возьмёте Notepad напиште текст "водка". Сохраните полученный документ как файл *.txt, а потом тоже самое проделаете в Microsoft word и сохраните документ как *.doc.
Получите два файла разных размеров хотя в них только одно слово ВОДКА.
Попробуйте в Вашем программаторе сохранить данные с разширением .HEX и теже данные сохранить с разрешением .BIN и тоже получите разные размеры файлов потому,что у файлов будет разная структура (упаковка). |
|
uretz Новичок Сообщения: 24
|
Понял, спасибо, доступно.
Где инфа о Fuses and Lock Bits is situated? То бишь есть какая- то необозначенная область ППЗУ в проце именно для этого?
Я писал: Да ещё, если я загружаю прошивку с компа в Pony prog то информации о фьюзах нет, она считываются только если микропроцессор непосредственно подключен к порту компа через программатор, значит во флеш её нет? соответственно в eeprom тоже? |
|
AlexM Участник Сообщения: 883
|
У AVR fuses находятся в специальной области памяти, считать их можно из контроллера выбрав соответсвующую опцию в программаторе. В Пони Вы можете сохранить конфигурацию в файл только если будет использовать радной формат Поника *.e2p. У ПИКов не много по другому, там можно сохранить фусы в *.hex. |
|
uretz Новичок Сообщения: 24
|
Опять же всё понятно.
Следует ли из этого, что имея запись прошивы e2p формата, записывая чистый проц нам не надо будет выставлять фьюзы отдельно, они пропишутся сами? даже учитывая то , что с завода некоторые процы идут с уже выставленными фьюзами (применительно к avr )
А, туплю если генерации не будет то какой режим программирования...
Т. е. сначала всё-таки фьюзы выставляются
Поясню, к чему это, идея была программировать прямо в модуль запаивая новый проц, не собирая программатора, но там ведь стоит кварц с определённой частотой, т.е. сначала всё-таки нужно высставить в проце во фьюзах частоту соответствующую частоте кварца в устройстве.
Так? |
|
AlexM Участник Сообщения: 883
|
| uretz писал: |
Следует ли из этого, что имея запись прошивы e2p формата, записывая чистый проц нам не надо будет выставлять фьюзы отдельно, они пропишутся сами? даже учитывая то , что с завода некоторые процы идут с уже выставленными фьюзами (применительно к avr )
|
Честно говоря я не всё написаное понял, но попробую ответить.
FUSE это биты (опции) конфигурации контроллера и она , конфигурация, всегда есть. В новом не прошитом контроллере битами установлена одна конфигурация в устройстве может быть установлена другая, но всегда какая то есть. Даже если все биты сброшены это всё равно означает что контроллер имеет определённую конфигурацию.
Что означает каждый бит в конфигурации нужно смотреть в документации на конкретный контроллер. Подробней в общем виде моно почитать на пример здесь: http://easyelectronics.ru/avr-uchebnyj-kurs-konfiguraciya-fuse-bit.htm ...
Предположим у Вас есть запрограммированный контроллер с определёной конфигурацией (FUSE) и в конфигурации не установлены биты защиты.
В этом случае Вы можете считать память программ (FLASH) ,память данных (EEPROM) и биты конфигурации и после этого сохранить всё в файл -> save device file *.e2p При этом сохранится всё включая FUSE и при программировании нового контроллера, используя этот файл, будут и установлены FUSE как в считаном. НО программа Поника позволяет сохранить только например (EEPROM) с разширением *.e2p соответственно в этом случае возможно будет сохранены только данные EEPROM . Вообщем я так делать не пробовал я не пользуюсь поником. Вы можете это проверить. |
|
uretz Новичок Сообщения: 24
|
AlexM!
Большое спасибо, немогу конечно точно сформулировать общепринятыми в данной сфере терминами (понятиями) свои вопросы (порой даже для себя .
Но вы мне очень помогли. Инфы в и-нете море, читать не перечитать, но придётся, хотя бы, что бы задавать понятные вопросы, плюс конечно эксперементировать.
Но с главным в чём была тема, несоответствием размера памяти и файла прошивки разобрался, и где находится инфа о фьзах тоже (кстати нашёл об этом в одной книжке сегодня, читал невнимательно) так,что будем считать эта тема решена. |
|
AlexM Участник Сообщения: 883
|
| uretz писал: |
идея была программировать прямо в модуль запаивая новый проц, не собирая программатора, но там ведь стоит кварц с определённой частотой, т.е. сначала всё-таки нужно высставить в проце во фьюзах частоту соответствующую частоте кварца в устройстве.
Так? |
По поводу программирования контроллера в устройстве, проблемы могут возникнуть скорей не с кварцем а с портами.
В новом контроллере обычно конфигурацией определено работать от внутреннего генератора , т.е. есть или нет и какой кварц в устройстве не важно. По алгоритму программирования сначала будет записана программа потом выполнена верификация(проверка) и только потом записана новая конфигурация. А вот порты используемые, для программирование могут в устройстве быть подключены к низкоомной нагрузке или переключателям которые удерживают низкий или высокий уровень. |
|
uretz Новичок Сообщения: 24
|
P.S. Да действительно, если сохранять в pony device file в e2p формате то информация о фьзах сохраняется!
И если записать в формате bin то размер как раз и получится 33кб (flash 32kb + eeprom 1kb) |
|
|