|
Как узнать размер кода в HEX-файле, вроде должнен быть эезешник какой то... |
|
|
|
Apr 21 2008, 08:47
|
Участник

Группа: Новичок
Сообщений: 44
Регистрация: 9-03-08
Пользователь №: 35 755

|
avr-size, она так в линуксе называется. Есть вроде винавр какой-то  там тоже наверное есть
Сообщение отредактировал LamerMan - Apr 21 2008, 08:48
|
|
|
|
|
Apr 21 2008, 09:58
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Ну да, я с TI-Text попутал... Ну тогда так. Открываем HEX. :10110000B240805A20013F40F6473E4000023D4039 Это одна строка. Красный - адрес, зелёный - данные. Итого 43 байта идут на кодирование 16 байт прошивки. 43/16=2,6875 То есть коэфф. деления 2,6875 Может, размер файла неправильно определяется?
Да, забыл, ещё 2 байта на перевод строки
Кстати, в соседней теме советуют - hex2bin и bin2hex. По моим понятиям, hex2bin как раз даст бинарный образ программы.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Apr 21 2008, 10:07
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
В обсчем решил проблему(хотя не совсем это и проблема)... Может кому будет полезно - НЕХ - :040000000001703a51 :0400010002c06034a5 :040002005ac52414a3 :040003000019883a1e Асм- листинг // wrctl status, zero 0: 0001703a wrctl status,zero // movhi led_addr, %hi(BOOT_LED) 4: 02c06034 movhi r11,384 // ori led_addr, led_addr, %lo(BOOT_LED) 8: 5ac52414 ori r11,r11,5264 // mov led_value,r0 c: 0019883a mov r12,zero В ниосе инструкция кодируется 32 битами - из вышеприведённых данных видно что в НЕХ-е мы имеем 3 строчки по 32 бита - то есть 3*4*байт - итого 12 байт. Далее смотрим на последнюю строчку в НЕХ-е - у меня тут :04004e008000683a8c Тоесть (4е+1)*4 <- количество занимаемых байт. ( Цифра 316 подтверждается так же листингом - // последняя осмысленна инструкция jmp return_address 138: 8000683a jmp r16 то есть 138+4 - размер кода -> 13С == 316 ) В итоге получилось 316 байт - жирненький я хвостик дописал  пЫсЫ. Касательно hex2bin - не нашёл в ниосовском ЕДС..
|
|
|
|
|
Apr 21 2008, 11:11
|
Знающий
   
Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057

|
Цитата(Kuzmi4 @ Apr 21 2008, 13:07)  Касательно hex2bin - не нашёл в ниосовском ЕДС.. У Атмела надо искать.
|
|
|
|
|
Apr 21 2008, 13:25
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(Kuzmi4 @ Apr 21 2008, 14:22)  Error - Could not open hex file Status: HEX to BIN conversion was not successful. Видимо, проблема в том что форматы хексов у всех разные. по части количества байт в строке. Если применить мой метод для вашего хекса, то получим: :040000000001703a51 - итого 21 байт (вместе с переносом строки) для записи 4-х байт. Делим 21/4=5,25 Делим размер файла 1608 на 5,25 - получаем 306,28 Почти попал
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|