roboforum.ru

Технический форум по робототехнике.

.Hex фал несколько вопросов

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

.Hex фал несколько вопросов

Сообщение Doniak » 20 июл 2009, 07:20

Заинтересовал такой вот вопрос как записывается хекс файл в МК.
А именно непрерывно от начала флеш памяти и аж до конца ? А как нащот пустой памяти в ПониПрог я заметил выставляется везде FF FF FF... то есть память заполняется полностью единицами о.О
Вот кусок хекс файла:
Код: Выделить всёРазвернуть
:0A0000000C9468000C9400000C94AE
:10000A0000000C9400000C9400000C9400000C9466
:10001A00C2010C9400000C9400000C9400000C9493
:10002A0000000C9400000C9400000C9400000C9446
:10003A0000000C9400000C9400000C9400000C9436
:10004A0000000C9400000C94000000315111612151
:10005A0041017132521262224202723454146424EF
:10006A004404746858180000000E110E00121F1084
:10007A00001D15170015151F0007041F0017151D71

Почему первая строчка не полная в ней всего 10 байт ? ПониПрог здвигает на место не достающих следующие байты значит она также и записывает в флеш память? И ещё один вопрос во всех хекс файлах первые несколько строчек байты данных почти одинаково чередуются что в них записывается?
ну надеюсь понятно и правильно оформил тему :pardon:
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

Re: .Hex фал несколько вопросов

Сообщение blindman » 20 июл 2009, 08:28

"Пустые" байты FF получаются при стирании памяти, которое выполняется перед программированием.
Почему первая строчка не полная в ней всего 10 байт ?

Это просто программа которая создаёт HEX так написана. Возможно, её разработчики исходили из собственных эстетических предпочтений, ну нравится им когда все строчки одинаковой длины, и неполная строка им кажется красивее в начале, чем в конце :) На самом деле это совершенно неважно, можно хоть по 1 байту в каждой строке.

во всех хекс файлах первые несколько строчек байты данных почти одинаково чередуются что в них записывается?

Не во всех, конечно, но довольно часто. У контроллеров AVR там обычно таблица векторов прерываний. Многие вектора часто не используются, и ведут на один и тот же участок программы (например, в программах скомпилированных AVR-GCC срабатывание прерывания приведет к перезапуску программы с начала).
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: .Hex фал несколько вопросов

Сообщение Doniak » 20 июл 2009, 09:20

Получается что запись программы в флеш МК не слишком требовательная можно хоть по 1 байту на страницу, а можно непрерывно всё записывать, главное только отделить флеш от EEPROM. А как понять флеш память имеет 16 битные ячейки, флэш-память организована как 64 кбит х 16. Тоесть она выглядит как то так?

.....Flash..........адреса байтов
0000000000000000....0x0000 -> 0x0001
0000000000000000....0x0002
0000000000000000....0x0004
0000000000000000....0x0006
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19