roboforum.ru

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

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

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

Doniak » 20 июл 2009, 07:20

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

Почему первая строчка не полная в ней всего 10 байт ? ПониПрог здвигает на место не достающих следующие байты значит она также и записывает в флеш память? И ещё один вопрос во всех хекс файлах первые несколько строчек байты данных почти одинаково чередуются что в них записывается?
ну надеюсь понятно и правильно оформил тему :pardon:

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

blindman » 20 июл 2009, 08:28

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

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

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

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

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

Doniak » 20 июл 2009, 09:20

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

.....Flash..........адреса байтов
0000000000000000....0x0000 -> 0x0001
0000000000000000....0x0002
0000000000000000....0x0004
0000000000000000....0x0006


Rambler\'s Top100 Mail.ru counter