Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 05.05.2008, 16:58  
Don_Ambrosio
Вид на жительство
 
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Don_Ambrosio на пути к лучшему
По умолчанию Как в HEX-файл добавить кусок другого HEX-а?

Который должен начинаться с заданного адреса
Реклама:
__________________
Дон Амброзио благодарит алфавит за любезно предоставленные буквы
Блин!! Морковь в 2,5 раза подорожала!!!
Don_Ambrosio вне форума  
Непрочитано 05.05.2008, 18:26  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Наверно вначале их нужно в BIN превратить.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 05.05.2008, 18:57  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,311
Сказал спасибо: 1,794
Сказали Спасибо 1,257 раз(а) в 553 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Как в HEX-файл добавить кусок другого HEX-а?

Сообщение от Don_Ambrosio
Который должен начинаться с заданного адреса
1) Почитать в инете про формат HEX файла
2) Взять тестовый редактор...
nml вне форума  
Непрочитано 05.05.2008, 20:25  
Don_Ambrosio
Вид на жительство
 
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Don_Ambrosio на пути к лучшему
По умолчанию Re: Как в HEX-файл добавить кусок другого HEX-а?

Сообщение от nml
Сообщение от Don_Ambrosio
Который должен начинаться с заданного адреса
1) Почитать в инете про формат HEX файла
2) Взять тестовый редактор...
Да знаю я что нужно конвертить адреса строк и контрольные суммы строк..

Нашёл утилиты командной строки, но чёта как-то ненаглядно всё - как бы не ошибиться работая "вслепую".. Мне бы утилитку какую с ГУЁвиной чтоб всё наглядно было.. А шоб не ошибиться случайно..

Пробал WinHEX... Чёта не получилось.. Глючит
__________________
Дон Амброзио благодарит алфавит за любезно предоставленные буквы
Блин!! Морковь в 2,5 раза подорожала!!!
Don_Ambrosio вне форума  
Непрочитано 05.05.2008, 20:29  
lsa
Почётный гражданин KAZUS.RU
 
Аватар для lsa
 
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,214
Сказали Спасибо 3,008 раз(а) в 686 сообщении(ях)
lsa на пути к лучшему
По умолчанию Re: Как в HEX-файл добавить кусок другого HEX-а?

Почти любая оболочка для программатора может загружать файлы .BIN и .HEX; и сохранять файлы .BIN и .HEX
1)Загружаем исходный .HEX и сохраняем его как .BIN
2)Тоже для второго файла.
3)Копируем во втором .BIN нужные байты
4)Вставляем в текстовом редакторе с нужной позиции в исходном файле скопированные данные, сохраняем.
5)Открываем новый .BIN и пересохраняем его как .HEX
lsa вне форума  
Непрочитано 05.05.2008, 20:31  
urry1
Временная регистрация
 
Регистрация: 11.12.2007
Сообщений: 79
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
urry1 на пути к лучшему
По умолчанию

А на фига играться, извините ? Подсказали же - конвертни в бин, а там можно клеить как хошь, потом обратно в хекс.
urry1 вне форума  
Непрочитано 05.05.2008, 21:20  
smg123
Гражданин KAZUS.RU
 
Регистрация: 13.07.2005
Сообщений: 602
Сказал спасибо: 14
Сказали Спасибо 40 раз(а) в 19 сообщении(ях)
smg123 на пути к лучшему
По умолчанию Re: Как в HEX-файл добавить кусок другого HEX-а?

Сообщение от lsa
Почти любая оболочка для программатора может...
Тогда уж как-то так:
1. Загружаем 1-й НЕХ
2. С нужного адреса подгружаем 2-й НЕХ
3. Сохраняем в виде файла.
PS А зачем вообще это надо?
smg123 вне форума  
Непрочитано 05.05.2008, 21:27  
Don_Ambrosio
Вид на жительство
 
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Don_Ambrosio на пути к лучшему
По умолчанию

Сообщение от urry1
А на фига играться, извините ? Подсказали же - конвертни в бин, а там можно клеить как хошь, потом обратно в хекс.
Проблему решил без всяких утилит благодаря Антону

"Доделал пару "софт под Win32"-"софт под ATMega128" до того, что уже пишет во FLASH в количестве "скока хочешь" слов (по два байта) по адресу "куда следует". И ни разу не ошибается!

И вот, когда уже вроде бы "всё пучком", ещё раз нарываюсь на грабли: в формате iHex НЕТУ никакой возможности адресовывать свыше 64 килобайт!!!

Я даже три книги купил, но там всё честно про формат написано - уже по-русски, чтобы быть уверенным. На адресацию отводится ровно 4 символа в формате HEX.

Анализ файла от ImageCraft выявил наличие в на границе перехода через 64k некоторой неоднородности в файле iHex:
______cut here ___________
:14FFA0009924AA24BB2441D0C1F044D0B1F0E8E2000F111F6 3
:14FFB400221F331F771C881C991CAA1CBB1C88169906AA063 0
:14FFC800BB0628F0881A990AAA0ABB0A0395EA9559F726F40 D
:14FFDC00082D192D2A2D3B2D13C07A928A929A92AA92BA922 8
:10FFF000CA92EA938A939A93AA93BA938B859C8523
:020000021000EC
:14000000AD85BE85C32E0EF0CB260895C7FC17D0B991A991C C
:1400140099918991E991C990B990A99099908990799024963 A
:140028000895E02FE12BE22BE32B0895E82FE92BEA2BEB2BF E
:14003C00089500951095209530950F5F1F4F2F4F3F4F0895D A
:1400500080959095A095B0958F5F9F4FAF4FBF4F089568946 7
:1400640001C0E8942A93FA92EA92FF24EE2420E1000FFF1C2 6
______cut here ___________

Вот такая вот беда...

Видимо он куски памяти подсчитывает и закончив одину 64-килобайтную секцию начинает писать в другую.

Мне это не очень нравится, потому что может стать источником ошибки: а вдруг мне сразу во вторую часть писать нужно?

И вот ведь в чём прикол: я уже и программатор отстроил на максимальную гибкость, а тут...

В общем, я весь в расстройстве. Помогите, кто знает!

Спасибо.

……
Учитывая немаленькое число просмотров, дам ответ...
Ответ крылся в том самом неясном куске.

Если тип строки 00 - это данные. Если 01 - конец файла.
А если 02 - это команда изменения сегмента.

Сегменты дробятся с кратностью 16 байт. За командой идёт адрес сегмента - два байта, старший сначала(!).

При открытии файла, если сегмент не изменялся, пишем в нулевой сегмент. Поэтому в коротких программах эта строка "тип 02" вообще не встречается.

В начале каждой строки данных следует относительный адрес записи - адрес, куда эти данные писать.

Абсолютный адрес записи - нужно учесть текущий сегмент. Достаточно его умножить на 16 и прибавить к относительному адресу.

Всё!

Я записал 70% проца ATMega128 из iHex, считал и всё совпало. Да и прога - тоже работала как часы.

Всем спасибо. С форматом iH вопрос ясен.

Антон.
"(С)

Т.е. просто перед блоком данных вставляем директиву задания номера 16-ти байтного сегмента и вуаля. Ничего конвертить не надо . И смещения в добавленном блоке будут отсчитываться от начала заданного Вами сегмента, а не от начала памяти
__________________
Дон Амброзио благодарит алфавит за любезно предоставленные буквы
Блин!! Морковь в 2,5 раза подорожала!!!
Don_Ambrosio вне форума  
Непрочитано 05.05.2008, 21:56  
lsa
Почётный гражданин KAZUS.RU
 
Аватар для lsa
 
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,214
Сказали Спасибо 3,008 раз(а) в 686 сообщении(ях)
lsa на пути к лучшему
По умолчанию Re: Как в HEX-файл добавить кусок другого HEX-а?

Сообщение от smg123
PS А зачем вообще это надо?
У меня например в мега32 прога занимает 10 килобайт.
А данные (килобайт 20) хранятся в конце адресного пространства.
Исходник откомпиллирован и уже есть HEX.
Я готовлю данные за пару минут и за пару минут объединяю в готовую прошивку.
lsa вне форума  
Непрочитано 05.05.2008, 22:02  
Don_Ambrosio
Вид на жительство
 
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Don_Ambrosio на пути к лучшему
По умолчанию Re: Как в HEX-файл добавить кусок другого HEX-а?

Сообщение от lsa
Сообщение от smg123
PS А зачем вообще это надо?
У меня например в мега32 прога занимает 10 килобайт.
А данные (килобайт 20) хранятся в конце адресного пространства.
Исходник откомпиллирован и уже есть HEX.
Я готовлю данные за пару минут и за пару минут объединяю в готовую прошивку.
Во-во... А у меня в ATmega128 прога занимает 8 килобайт, а остальные 120 килобайт - это данные. Например прошивки для других микроконтроллеров сети
__________________
Дон Амброзио благодарит алфавит за любезно предоставленные буквы
Блин!! Морковь в 2,5 раза подорожала!!!
Don_Ambrosio вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать из cof/hex файл-прошивку srec? code-by Микроконтроллеры, АЦП, память и т.д 4 26.05.2009 23:39
CV не создаёт hex файл master-ruden Proteus, KiCAD и другие ECAD 10 08.06.2007 15:56
Дизасемблировать .hex файл возможно ? Tier13 Proteus, KiCAD и другие ECAD 7 02.03.2007 19:08
Почему AVR Studio4 запрашивает hex файл? zhan99999 Proteus, KiCAD и другие ECAD 3 06.01.2007 02:09
Как в Keil C51 создать hex файл? 011119xx Микроконтроллеры, АЦП, память и т.д 1 13.07.2005 11:59


Часовой пояс GMT +4, время: 00:43.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot