ATMega8535 & LED - Page 2

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
ATMega8535 & LED
Привет Yuriy!

20 Nov 05 23:43, Yuriy K писал Alex Mogilnikov:

 AM>>     Ты пальцем покажи! (с) :)

 YK> S2240FF000180B3C1203180380001201B61203813F2711FE12018EC0002511721203CC
 YK> 80008F где
 YK> S2 24 0FF000 18 0B 3C 12 03 ...

 YK> Помнится мне, что ассемблер от атмела выдавал кривой hex при переходе
 YK> через 64К, например.

    О том, как программируют в фирме Атмел, я писал тут несколько дней назад.
Их вольности с интерпретацией hex формата, о которых писал Редчук в июле 2002
года, мои слова подтверждают. Поэтому я бы сделал вывод "не надо пользоваться
программами от Атмел", а не "не надо пользоваться форматом intel hex".

 AM>> Что может формат S-record, чего> не может intel hex? Приведи пример.

 YK> Поддержку 32-битного линейного адреса.

    Как выясняется, intel hex это может. Смотри страницы 2 и 4 спецификации.

 YK> Запиши строчку выше в интел хексе.

:02000002F0000C
:10F00000180B3C1203180380001201B61203813F53
:10F010002711FE12018EC0002511721203CC800050
:00000001FF

    Кстати для твоей строчки как раз не требуется линейный 32-битный режим. Это
16-битный сегментированный (20-разрядные адреса). Вот если сделать адрес не
0ff000, а fff000, получится так:

:0200000400FFFB
:10F00000180B3C1203180380001201B61203813F53
:10F010002711FE12018EC0002511721203CC800050
:00000001FF

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Старый глюк лучше новых двух...

ATMega8535 & LED
Mon Nov 21 2005 02:15, Alex Mogilnikov wrote to Yuriy K:

 AM>>>     Ты пальцем покажи! (с) :)

 YK>> S2240FF000180B3C1203180380001201B61203813F2711FE12018EC0002511721203CC
 YK>> 80008F

 YK>> Помнится мне, что ассемблер от атмела выдавал кривой hex при переходе
 YK>> через 64К, например.

 AM>     О том, как программируют в фирме Атмел, я писал тут несколько дней
 AM> назад. Их вольности с интерпретацией hex формата, о которых писал Редчук
 AM> в июле 2002 года, мои слова подтверждают. Поэтому я бы сделал вывод "не
 AM> надо пользоваться программами от Атмел", а не "не надо пользоваться
 AM> форматом intel hex".

Лишнее подтверждение, что надо использовать S-record в котором нет
проблем с интерпретацией, все просто и понятно даже для программистов
из атмела.

 AM>>> Что может формат S-record, чего> не может intel hex? Приведи пример.

 YK>> Поддержку 32-битного линейного адреса.

 AM>     Как выясняется, intel hex это может. Смотри страницы 2 и 4
 AM> спецификации.

Может. Через @#$%.

 YK>> Запиши строчку выше в интел хексе.

 AM> :02000002F0000C
 AM> :10F00000180B3C1203180380001201B61203813F53
 AM> :10F010002711FE12018EC0002511721203CC800050
 AM> :00000001FF

В Motorola S-record каждая строчка независима.
В Intel hex значение строчки зависит от предыстории.

Все проблемы Intel hex следствия этого простого факта.

 AM>     Кстати для твоей строчки как раз не требуется линейный 32-битный
 AM> режим. Это 16-битный сегментированный (20-разрядные адреса).

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

Безусловно это можно сделать. А можно не мучаться и использовать нормальные
форматы. :-)))


ATMega8535 & LED
Привет Yuriy!

21 Nov 05 06:16, Yuriy K писал Alex Mogilnikov:

 YK> Лишнее подтверждение, что надо использовать S-record в котором нет
 YK> проблем с интерпретацией,

    Примеры проблем с интерпретацией спецификации формата intel hex в студию!
Только, пожалуйста, с цитатами.

 AM>>     Как выясняется, intel hex это может. Смотри страницы 2 и 4
 AM>> спецификации.

 YK> Может. Через @#$%.

    Какая, нафиг, разница пользователю, как оно там внутри компьютера
обрабатывается?

 YK> В Intel hex значение строчки зависит от предыстории.
 YK> Все проблемы Intel hex следствия этого простого факта.

    Примеры проблем - в студию.

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

    Это не проблема пользователя. Он пользуется уже готовыми отлаженными
программами.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Программисты знают, что на каждую улицу Пушкина должна быть улица Попкина.

ATMega8535 & LED
Mon Nov 21 2005 13:53, Alex Mogilnikov wrote to Yuriy K:

 YK>> Лишнее подтверждение, что надо использовать S-record в котором нет
 YK>> проблем с интерпретацией,

 AM>     Примеры проблем с интерпретацией спецификации формата intel hex в
 AM> студию! Только, пожалуйста, с цитатами.

Купи белого бычка. Я устал. Bye-bye.


ATMega8535 & LED
Hi Yuriy, hope you are having a nice day!


20 Hоя 05, Yuriy K wrote to Alex Mogilnikov:

 VV>>> непрерывный блок. Это не трудности avreal, это проблемы,
 VV>>> связанные с форматом.
 AM>>     В чем заключаются эти проблемы?
 YK> В том адреса с разрядностью больше 16 делаются через ####.

Мелкие технические трудности.

WBR,
    AVB


ATMega8535 & LED
Sun Nov 20 2005 19:21, Alexey V Bugrov wrote to Yuriy K:

 VV>>>> непрерывный блок. Это не трудности avreal, это проблемы,
 VV>>>> связанные с форматом.
 AM>>>     В чем заключаются эти проблемы?
 YK>> В том адреса с разрядностью больше 16 делаются через ####.

 AVB> Мелкие технические трудности.

В Motorola S-record этих трудностей просто нет.
Все вменяемые компиляторы умеют генерировать S-Record.
Использование Intel hex не более чем дань традиции.


ATMega8535 & LED
Sun Nov 20 2005 17:43, Alex Mogilnikov wrote to Vladimir Vassilevsky:

 
 VV>>  Проблемы с intel ext появляются, если в файле более чем один
 VV>> непрерывный блок. Это не трудности avreal, это проблемы, связанные с
 VV>> форматом.

 AM>     В чем заключаются эти проблемы?

 В том, что бывают разные толкования и понимания intel ext по мнению
 avreal и по мнению IAR-овского линкера, например. Если файл состоит из
 блоков и особенно если эти блоки ложатся через границу 64k, могут получаться
 веселые и разнообразные эффекты. А все от того, что в intel ext 16-битные
 адреса с переключением сегментов. Пользуйтесь форматом motorola S.

 VLV

 "При хорошей амуниции наплевать на конституции"  (Козьма Прутков)


ATMega8535 & LED
Привет Vladimir!

20 Nov 05 21:15, Vladimir Vassilevsky писал Alex Mogilnikov:

 AM>>     В чем заключаются эти проблемы?

 VV>  В том, что бывают разные толкования и понимания intel ext по мнению
 VV>  avreal и по мнению IAR-овского линкера, например.

    Hу наконец-то что-то проясняется. Спасибо, это уже более конкретный
разговор.

 VV>  Если файл состоит
 VV> из блоков и особенно если эти блоки ложатся через границу 64k, могут
 VV> получаться веселые и разнообразные эффекты. А все от того, что в intel
 VV> ext 16-битные адреса с переключением сегментов.

    Теперь давайте разберемся вот в чем. Разное толкование формата вызвано
"пробелами" в его спецификации (что-то забыто, описано недостаточно внятно, с
возможностью двоякого толкования и т.п.) или это частные заморочки отдельных
реализаций (т.е. несоответствие их спецификации)?

    Смотрим спецификацию (ревизия A от 1.06.88). Из нее следует, что intel hex
бывает трех видов: 8-битный (он нас, наверное, не интересует, там все
тривиально), 16-битный, о котором, как я понял, ты и говоришь, и 32-битный с
линейными 32-разрядными адресами (2YK: сюрприз! У intel hex тоже есть поддержка
32-битных линейных адресов!). Hа 5-й странице специикации описан формат
extended segment address record и дважды описаны правила вычисления адреса:
сначала словами в тексте, а потом в виде формулы. То есть описано, что сначала
вычисляется смещение по модулю 64k, а затем к нему прибавляется 20-битный
базовый адрес. Как мне кажется, здесь нет ничего, что можно было бы понять
двояко. Поэтому у меня есть очень сильное подозрение, что если две конкретные
программы понимают формат intel hex по-разному, это проблема не формата, а
одной из этих программ. И нет никакого основания ожидать, что ее автор не
напортачит и с поддержкой S-record. Hаверное имеет смысл сделать баг-рипорт
автору программы вместо того чтобы обобщать...

    Возвращаясь к исходному вопросу, я пока знаю только одну проблему с
форматом intel hex: один непрерывный кусок данных в этом формате занимает вдвое
больший размер, чем просто двоичный файл. Hасколько это серьезная проблема, я
думаю, комментировать не требуется.

    Для 32-битных линейных адресов все еще проще, там вообще нет проблемы
перехода 64k границы...

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Синяки рождаются в споре куда чаще, чем истина...

Re: ATMega8535 & LED
День добрый!

Спасибо всем ответившим! Спасибо за советы.
Проблема обнаружилась в
Quoted text here. Click to load it
А должно быть avrdude -p m8535 -c bsd -U flash:w:main.hex
Только и все. Т.е. прошивка на самом деле просто не заливалась.
Уж сколько раз твердили миру - читайте руководство, ВНИМАТЕЛЬНО читайте :-)

Про "мигание" в первом посте, конечно же, я был не прав. Я задачу свел к
минимуму - просто включение.
На AVReal я обиделся :-)
Сам дурак, конечно, но мне кажется, что на схемах адептеров на сайте автора
было бы неплохо указывать питание на микросхемы. Я собрал ByteBlaster,
несколько дней голову ломал почему не работает...
Кроме этого, avreal не заработал у меня под FreeBSD 6.0.
Заметьте, автора avreal ни в чем не виню.

Еще раз всем спасибо!
С уважением, Айрат.



Site Timeline