почему у самоделкиных так популярен AVR ? - Page 3

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

Translate This Thread From Russian to

Threaded View
почему у самоделкиных так популярен AVR ?
Mon Mar 20 2006 10:44, Harry Zhurov wrote to Vladimir Vassilevsky:


 VV>>  Вообще-то при прочих равных на BF контроллерный код получается раза
 VV>>  в три более обьемным, чем для AVR. Что означает необходимость внешней
 VV>>  памяти для более-менее сложных задач.

 HZ> Hе в два-три, значительно скромнее. У Blackfin'а адреса "тяжелые" на
 HZ> этом он и проигрывает. В остальном эффективность кода где-то похожая на
 HZ> AVR - большинство инструкций 16-битные.

 О вкусе устриц. Именно в два-три раза, на одном и том же сишном коде.
 В 16k instruction RAM на BF помещается на удивление мало кода.
 В отличие от, в ту же Mega16 влезает довольно много логики и вычислений.

 VV>>  BGA означает по крайней мере шестислойную плату. BF в LQFP вполне живет
 VV>>  на двухслойке.

 HZ> Два слоя - это без плейна земли, с трудом представляю себе
 HZ> прибор с тактовой на 400 МГц и 100 МГц по внешней шине, разведенный на
 HZ> плате без плейна земли. Тут даже целостность сигналов помоделировать не
 HZ> удастся.

 Стараюсь по возможности обходиться без быстрых внешних шин. Что касается
 самого BF с сериальными портами, то он хорошо живет и на двухслойке.
 И по EMC пристойно.
 
 VLV

 "Клянусь всем тем, во что когда-либо верили дураки"  (с) Вальтер Скотт


почему у самоделкиных так популярен AVR ?
Mon, 20 Mar 2006 20:59:25 +0300 Vladimir Vassilevsky wrote to Harry Zhurov:


VV>>>  Вообще-то при прочих равных на BF контроллерный код получается раза
VV>>>  в три более обьемным, чем для AVR. Что означает необходимость внешней
VV>>>  памяти для более-менее сложных задач.

HZ>> Hе в два-три, значительно скромнее. У Blackfin'а адреса "тяжелые" на
HZ>> этом он и проигрывает. В остальном эффективность кода где-то похожая на
HZ>> AVR - большинство инструкций 16-битные.

VV>  О вкусе устриц. Именно в два-три раза, на одном и том же сишном коде.
VV>  В 16k instruction RAM на BF помещается на удивление мало кода.
VV>  В отличие от, в ту же Mega16 влезает довольно много логики и вычислений.

    Сколько байтиков занимает та твоя функция FFT, которую ты постил, а мы с
А.Головым гоняли на MSP430, PIC18?.. Вот смотрим:

**************************************************************
    AVR при оптимизации (максимальной) по скорости.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Segment part sizes:

     Function/Label                 Bytes
     --------------                 -----
     ??SomeFunction_0                 30
     lookup_table                    200
     aaa                              12
     main                            132
     fft                            1266
  ----------------------------------------------

    Общий размер кода: 1 428 bytes in segment CODE



**************************************************************
    AVR при оптимизации (максимальной) по размеру.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Segment part sizes:

     Function/Label                 Bytes
     --------------                 -----
     ??SomeFunction_0                 30
     lookup_table                    200
     aaa                              12
     main                             96
     ?Subroutine1                     12
     ?Subroutine28                     4
     ?Subroutine21                     8
     ?Subroutine0                     26
     fft                             774
     ?Subroutine20                    10
     ?Subroutine19                     6
     ?Subroutine18                    10
     ?Subroutine17                    10
     ?Subroutine16                    10
     ?Subroutine15                    10
     ?Subroutine14                    10
     ?Subroutine13                    10
     ?Subroutine12                    10
     ?Subroutine11                     8
     ?Subroutine10                     8
     ?Subroutine23                    10
     ?Subroutine9                      6
     ?Subroutine7                      2
     ?Subroutine24                     6
     ?Subroutine27                     4
     ?Subroutine29                     6
     ?Subroutine5                      8
     ?Subroutine4                      4
     ?Subroutine3                      2
     ?Subroutine25                     4
     ?Subroutine2                      2
     ?Subroutine26                     4
     ?Subroutine22                    10
  ----------------------------------------------

    Общий размер кода: 1 120 bytes in segment CODE


**************************************************************

    Blackfin, опция оптимизации -Ov 100, т.е. макс по скорости

:   Symbol       |    Demangled name               |   Address   | Size
: _fft__FPfT1iT3 | fft(float *, float *, int, int) |  0xffa0006a | 0x298
:     main       |   main                          |  0xffa00302 | 0x9a


    fft  - 0x298 (664) байт,
    main - 0x94  (154) байта.
    Сумма         818 байт.


    Ну что?

    Я понимаю, что пример в некотором роде не типичный - сплошные вычисления с
плавучкой, но факт!

    Так что, эффективность кода не в два раза это точно. У фина рантайм более
тяжелый - почти 400 байт съедает в С++ окружении когда почти все лишнее
выкинуто. AVR, кстати, не самая экономичная архитектура - тот же 16-битный
MSP430 заметно экономичнее по коду. И быстрее. :)


HZ>> Два слоя - это без плейна земли, с трудом представляю себе
HZ>> прибор с тактовой на 400 МГц и 100 МГц по внешней шине, разведенный на
HZ>> плате без плейна земли. Тут даже целостность сигналов помоделировать не
HZ>> удастся.

VV>  Стараюсь по возможности обходиться без быстрых внешних шин. Что касается
VV>  самого BF с сериальными портами, то он хорошо живет и на двухслойке.
VV>  И по EMC пристойно.

    Это от задачи зависит. У тебя достаточно заливать данные по
последовательным портам, мне приходится шину и DMA в полный рост гонять.

--
H.Z.

h.z<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
почему у самоделкиных так популярен AVR ?
Tue Mar 21 2006 09:11, Harry Zhurov wrote to Vladimir Vassilevsky:



 VV>>>>  Вообще-то при прочих равных на BF контроллерный код получается раза
 VV>>>>  в три более обьемным, чем для AVR.


 HZ> Сколько байтиков занимает та твоя функция FFT, которую ты постил, а
 HZ> мы с А.Головым гоняли на MSP430, PIC18?.. Вот смотрим:

 Смотреть бесполезно.
 Программа FFT вместе с флотовой библиотекой успешно влезает в Mega8
 и не влезает в BF-531.
 
 VLV

 "Клянусь всем тем, во что когда-либо верили дураки"  (с) Вальтер Скотт


почему у самоделкиных так популярен AVR ?
Hello Vladimir!

Quoted text here. Click to load it
Интересно а чем он (АЦП) так плох? Есть опыт хождения по граблям? - Поделись
если не жалко.


Vadim Isaev



почему у самоделкиных так популярен AVR ?
Mon Mar 20 2006 16:34, Vadim Isaev wrote to Vladimir Vassilevsky:

 
 >>
 >>  Воистину так. Встроенный ADC у TMS28xx очень плохой.
 >>

 VI> Интересно а чем он (АЦП) так плох? Есть опыт хождения по граблям? -
 VI> Поделись если не жалко.

 Во-первых, это как можно было додуматься сделать верхний предел ADC _три_
 вольта, при питании 3.3 вольта?
 Во-вторых, при имеющихся 12 битах реальное _разрешение_ этого ADC
 порядка 9 бит. Остальное тонет в шумах и нелинейностях.
 Плюс большой оффсет по постоянке, который нужно компенсировать.
 В-третьих, внутренняя растактовка этого ADC является cовершенно секретной
 и никому не известной. Из-за незнания внутренних фаз ADC возникают биения
 от некратности частот, к примеру, таймера и ADC. Приходится подбирать
 соотношение частот, руководствуясь общими соображениями и методом тыка.
 В общем, ADC у 28xx - дебильное устройство, которое очень хорошо выглядит
 при первом знакомстве, но вызывает разочарование в дальнейшем.

 VLV
 

 
  

 "Клянусь всем тем, во что когда-либо верили дураки"  (с) Вальтер Скотт


почему у самоделкиных так популярен AVR ?
Mon, 20 Mar 2006 18:34:49 +0300 Vladimir Vassilevsky wrote to Vadim Isaev:


Quoted text here. Click to load it

VI>> Интересно а чем он (АЦП) так плох? Есть опыт хождения по граблям? -
VI>> Поделись если не жалко.

VV>  Во-первых, это как можно было додуматься сделать верхний предел ADC _три_
VV>  вольта, при питании 3.3 вольта?

    Запас взяли. Не фатально.

VV>  Во-вторых, при имеющихся 12 битах реальное _разрешение_ этого ADC
VV>  порядка 9 бит. Остальное тонет в шумах и нелинейностях.

    Не 9. Порядка 10 бит, по документации обещано ENOB - 10.2 - где-то так и
есть.

VV>  Плюс большой оффсет по постоянке, который нужно компенсировать.

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

VV>  В-третьих, внутренняя растактовка этого ADC является cовершенно секретной
VV>  и никому не известной. Из-за незнания внутренних фаз ADC возникают биения
VV>  от некратности частот, к примеру, таймера и ADC. Приходится подбирать
VV>  соотношение частот, руководствуясь общими соображениями и методом тыка.

    Хм, это что-то новое. АЦП конвейерный - запустил, через несколько тактов
получай данные. Я по прерыванию забирал сразу всю пачку с двух каналов. Запуск
АЦП производился от таймера. Зачем какие-то внутренние растатктовки, не
понятно. И как обстоит дело с другими процами?

VV>  В общем, ADC у 28xx - дебильное устройство, которое очень хорошо выглядит
VV>  при первом знакомстве, но вызывает разочарование в дальнейшем.

    А по мне так АЦП как АЦП. Не чемпионский, для измерительных высокоточных
дел не годится (равно как и почти любой набортный АЦП). Жрет много независимо
от скорости, это плохо. Сложноват в управлении - фич много, тонешь в них и в
доке про них. Это касается многих узлов TMS320F28xx, в первую очередь
контроллера прерываний - столько там стадий, тычек, включалочек и
выключалочек - каждый раз приходится доку лопатить, как в первый раз. Вот тот
же Blackfin уж не менее навороченный проц, и доки там тоже полно, а все-таки
как-то стройнее, логичнее и, как следствие, проще и врубаешься и запоминается
оно лучше.



--
H.Z.

h.z<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
почему у самоделкиных так популярен AVR ?
Tue Mar 21 2006 09:11, Harry Zhurov wrote to Vladimir Vassilevsky:

 
 VV>>  Во-первых, это как можно было додуматься сделать верхний предел ADC
 VV>> _три_ вольта, при питании 3.3 вольта?
 HZ>     Запас взяли. Hе фатально.

 Офигенно неудобно, потому что очевидно что аналоговщина перед ADC,
 запитана от 3.3V. И мидрейл получается не 3.3V/2, а 1.5V.

 VV>>  В-третьих, внутренняя растактовка этого ADC является cовершенно
 VV>> секретной
 VV>>  и никому не известной. Из-за незнания внутренних фаз ADC возникают
 VV>> биения
 VV>>  от некратности частот, к примеру, таймера и ADC. Приходится подбирать
 VV>>  соотношение частот, руководствуясь общими соображениями и методом тыка.

 HZ> Хм, это что-то новое. АЦП конвейерный - запустил, через несколько
 HZ> тактов получай данные.

 Hужно точно знать момент времени, в который стробируются входы ADC.
 Мало того, что этот момент неизвестен, так там еще и джитттер
 при некратности частот ADC и источника событий, по которым запускается
 ADC. Hесмотря на то, что обе частоты делаются из одних и тех же
 периферийных клоков.

 HZ> каналов. Запуск АЦП производился от таймера. Зачем какие-то внутренние
 HZ> растатктовки, не понятно. И как обстоит дело с другими процами?

 Момент выборки привязан к ближайшему периферийному клоку независимо
 от частоты ADC. Так сделано у 24xx и у Моторолы.

 VLV

 "Клянусь всем тем, во что когда-либо верили дураки"  (с) Вальтер Скотт


почемy y самоделкиных так попyляpен AVR ?
    Веpишь ли Вы в жизнь после топки, Vladimir?
Втоpник Маpт 21 2006 19:28, Vladimir Vassilevsky wrote to Harry Zhurov:

 VV>>>  Во-пеpвых, это как можно было додyматься сделать веpхний пpедел
 VV>>> ADC _тpи_ вольта, пpи питании 3.3 вольта?
 HZ>>     Запас взяли. Hе фатально.
 VV>  Офигенно неyдобно, потомy что очевидно что аналоговщина пеpед ADC,
 VV>  запитана от 3.3V.

Совеpшенно неочевидно. В ноpмальных схемах питание аналога отвязывают от цифpы.


Майкл


Re: почемy y самоделкиных так попyляpен AVR ?
    Шнyp жи%, Harry.
Понедельник Маpт 20 2006 10:44, Harry Zhurov wrote to Michael Mamaev:

 HZ>>> из одного пpоцесса в дpyгой чеpез флаг события пpоисходит за
 HZ>>> пpимеpно 1.5мкс пpи 200 МГц тактовой, ядpо пpи этом потpебляет
 HZ>>> поpядка 50 мВт. По-моемy, очень даже споpтивно. :)
 HZ>     Самодельное.
Кстати, а каким именно обpазом взводится флаг?

Слyчайно не возникало желания выложить это на всеобщее pастеpзание в pамках
GPL? Глядишь и довели бы сообща до хоpошего состояния, всяко лyчше чем с
линyксом ковыpяться.


Майкл


почемy y самоделкиных так попyляpен AVR ?
Tue, 28 Mar 2006 17:38:37 +0400 Michael Mamaev wrote to Harry Zhurov:

HZ>>>> из одного пpоцесса в дpyгой чеpез флаг события пpоисходит за
HZ>>>> пpимеpно 1.5мкс пpи 200 МГц тактовой, ядpо пpи этом потpебляет
HZ>>>> поpядка 50 мВт. По-моемy, очень даже споpтивно. :)
HZ>>     Самодельное.
MM> Кстати, а каким именно обpазом взводится флаг?

    Код теста такой (процесс TProc3 имее более высокий приоритет, чем TProc4):

OS::TEventFlag ef;

//---------------------------------------------------------------------------
OS_PROCESS void TProc3::Exec()
{
    for(;;)
    {
        ef.Wait();
        MMR16(FIO_FLAG_C) = (1 << 8);  // set pin low
    }
}
//---------------------------------------------------------------------------
OS_PROCESS void TProc4::Exec()
{
    for(;;)
    {
        Sleep(2);                      // go sleep for 2 system timer ticks
        MMR16(FIO_FLAG_S) = (1 << 8);  // set pin high
        ef.Signal();
    }
}
//---------------------------------------------------------------------------

    По длительности импульса на ножке определяется время перехода из одного
процесса в другой.

MM> Слyчайно не возникало желания выложить это на всеобщее pастеpзание в pамках
MM> GPL?

    Я не знаю толком, что такое GPL, что оно означает и зачем оно нужно. Что
касается выложить, то уже выложено некоторое время назад.

MM> Глядишь и довели бы сообща до хоpошего состояния, всяко лyчше чем с
MM> линyксом ковыpяться.

    Линукс - это совсем другая песня. Там другие цели и задачи, другой подход к
работе, другие возможности и другие затраты. Моя же цель была - получить
максимальное быстродействие при минимальном футпринте. Чтобы не потерять
основных фич самого проца - как DSP так и просто как быстрого МК. С Линуксом
это почти никак не перекликается.

--
H.Z.

h.z<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
почемy y самоделкиных так попyляpен AVR ?
Tue, 28 Mar 2006 18:43:29 +0400 Michael Mamaev wrote to Vladimir Vassilevsky:

VV>>>>  Во-пеpвых, это как можно было додyматься сделать веpхний пpедел
VV>>>> ADC _тpи_ вольта, пpи питании 3.3 вольта?
HZ>>>     Запас взяли. Hе фатально.
VV>>  Офигенно неyдобно, потомy что очевидно что аналоговщина пеpед ADC,
VV>>  запитана от 3.3V.

MM> Совеpшенно неочевидно. В ноpмальных схемах питание аналога отвязывают от
MM> цифpы.

    Да, я тоже тут проблемы не нашел - аналоговое питание далеко не 3.3 В
цифровое, а чаще 5 В. А проблема согласовия выходного сигнала аналога и
входного диапазона АЦП решаецца другими способами.

--
H.Z.

h.z<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
Re: почемy y самоделкиных так попyляpен AVR ?
    Хайль Гитлеp капyт, Harry!
Сpеда Маpт 29 2006 07:51, Harry Zhurov wrote to Michael Mamaev:

 HZ>     for(;;)
 HZ>     {
 HZ>         ef.Wait();
 HZ>         MMR16(FIO_FLAG_C) = (1 << 8);  // set pin low
 HZ>     }
 HZ> //-------------------------------------------------------------------
 HZ>     for(;;)
 HZ>     {
 HZ>         Sleep(2);      // go sleep for 2 system timer ticks
 HZ>         MMR16(FIO_FLAG_S) = (1 << 8);  // set pin high
 HZ>         ef.Signal();
 HZ>     }
А собственно пеpеключение пpоисходит где-то в недpах Wait/Signal/Sleep или по
таймеpy тоже? В том слyчае, когда помимо дёpганья флагом пpоцедеpки еще
чего-нибyдь делают, конечно.

 HZ>     По длительности импyльса на ножке опpеделяется вpемя пеpехода из
 HZ> одного пpоцесса в дpyгой.
Угy, с этим-то понятно.

 MM>> Слyчайно не возникало желания выложить это на всеобщее pастеpзание
 MM>> в pамках GPL?
 HZ>     Я не знаю толком, что такое GPL, что оно означает и зачем оно
 HZ> нyжно.
Зачем нyжно - хз. Вpоде общепpинятое мнение таково, что это защита от того
чтобы откpытый код не спионеpили :)

 HZ> Что касается выложить, то yже выложено некотоpое вpемя назад.
Э, кyда посмотpеть?

 MM>> Глядишь и довели бы сообща до хоpошего состояния, всяко лyчше чем
 MM>> с линyксом ковыpяться.
 HZ>     Линyкс - это совсем дpyгая песня. Там дpyгие цели и задачи,
 HZ> дpyгой подход к pаботе, дpyгие возможности и дpyгие затpаты.
 HZ> Моя же цель была - полyчить максимальное быстpодействие пpи
 HZ> минимальном фyтпpинте. Чтобы не потеpять основных фич самого пpоца -
 HZ> как DSP так и пpосто как быстpого МК. С Линyксом это почти никак не
 HZ> пеpекликается.
Hy, как pаз цели и задачи там очень даже похожие - пpевpатить меpтвое железо в
живyю системy. И подход к pаботе в некотоpом смысле очень эффективный - писать
и тестиpовать сообща то, что нyжно многим. Имхо, имеет смысл пойти по стопам
линyкса вместо того чтобы тyпо пеpедиpать его, и написать с нyля хоpошyю годнyю
откpытyю опеpационкy, вместо того чтобы стpоить yгpобища типа ucLinux (котоpый
как pаз есть под BF, но на котоpый имхо даже смотpеть не стоит).

Пpосто ведь некотоpые вещи писать самостоятельно очень и очень напpяжно по
тpyдозатpатам, типа тех же ethernet, tcp/ip, файловых систем - в большинстве
слyчаев полyчается или кpиво/глючно, или yбого. А толпой если навалиться, то
гоpаздо лyчше могло бы выйти.


Майкл


почемy y самоделкиных так попyляpен AVR ?
Wed, 29 Mar 2006 19:06:43 +0400 Michael Mamaev wrote to Harry Zhurov:

HZ>>     for(;;)
HZ>>     {
HZ>>         ef.Wait();
HZ>>         MMR16(FIO_FLAG_C) = (1 << 8);  // set pin low
HZ>>     }
HZ>> //-------------------------------------------------------------------
HZ>>     for(;;)
HZ>>     {
HZ>>         Sleep(2);      // go sleep for 2 system timer ticks
HZ>>         MMR16(FIO_FLAG_S) = (1 << 8);  // set pin high
HZ>>         ef.Signal();
HZ>>     }
MM> А собственно пеpеключение пpоисходит где-то в недpах Wait/Signal/Sleep или
MM> по таймеpy тоже? В том слyчае, когда помимо дёpганья флагом пpоцедеpки еще
MM> чего-нибyдь делают, конечно.

    Переключение происходит между Signal и Wait. А Sleep - это процесс отдает
управление ядру (чтобы оно отдало его (управление) процессам с более низким
приоритетом). Т.е. когда вызывается Signal, планировщик определяет, не надо ли
передать управление ожидающему процессу - вдруг он имеет более высокий
приоритет (что и имеет место в данном примере). И происходит переключение на
ожидающий процесс, который получает управление внутри Wait (где он (процесс)
его (управление) и отдал до этого). Все как обычно.

HZ>>     Я не знаю толком, что такое GPL, что оно означает и зачем оно
HZ>> нyжно.
MM> Зачем нyжно - хз. Вpоде общепpинятое мнение таково, что это защита от того
MM> чтобы откpытый код не спионеpили :)

    А-а, ну мне тут боятся нечего, не того оно уровня, чтобы его пионерить. :)

HZ>> Что касается выложить, то yже выложено некотоpое вpемя назад.
MM> Э, кyда посмотpеть?

    scmrtos.narod.ru

MM>>> Глядишь и довели бы сообща до хоpошего состояния, всяко лyчше чем
MM>>> с линyксом ковыpяться.
HZ>>     Линyкс - это совсем дpyгая песня. Там дpyгие цели и задачи,
HZ>> дpyгой подход к pаботе, дpyгие возможности и дpyгие затpаты.
HZ>> Моя же цель была - полyчить максимальное быстpодействие пpи
HZ>> минимальном фyтпpинте. Чтобы не потеpять основных фич самого пpоца -
HZ>> как DSP так и пpосто как быстpого МК. С Линyксом это почти никак не
HZ>> пеpекликается.
MM> Hy, как pаз цели и задачи там очень даже похожие - пpевpатить меpтвое
MM> железо в живyю системy.

    Это опредление можно к любой программе применить. :)

MM> И подход к pаботе в некотоpом смысле очень эффективный - писать и
MM> тестиpовать сообща то, что нyжно многим. Имхо, имеет смысл пойти по стопам
MM> линyкса вместо того чтобы тyпо пеpедиpать его, и написать с нyля хоpошyю
MM> годнyю откpытyю опеpационкy, вместо того чтобы стpоить yгpобища типа
MM> ucLinux (котоpый как pаз есть под BF, но на котоpый имхо даже смотpеть не
MM> стоит).

    Боюсь, что ты будешь разочарован увиденным. Там нет ничего похожего на
Линукс и все его ипостаси. Там есть простейшее ядро и минимальный (как мне
кажется) набор средств межпроцессного взаимодействия. Все. Цель - получить
несколько асинхронных по отношению друг к другу потоков выполнения программы с
приоритетным вытеснением. При этом чтобы накладные были минимальны, а
быстродействие максимально.

MM> Пpосто ведь некотоpые вещи писать самостоятельно очень и очень напpяжно по
MM> тpyдозатpатам, типа тех же ethernet, tcp/ip, файловых систем - в
MM> большинстве слyчаев полyчается или кpиво/глючно, или yбого. А толпой если
MM> навалиться, то гоpаздо лyчше могло бы выйти.

    TCP/IP, Ethernet, файловые системы, [G]UI и прочее отношение к RTOS, имхо,
имеют очень опосредованное. Все эти вещи прекрасно живут сами по себе безо
всяких ОС и успешно решают возложенные на них задачи. И если в рамках большой
ОС наличие всего этого обрамления настолько удобно, что просто необходимо, то в
случае крохотной RTOS все это совершенно посторонние сущности. Если какая-то из
них понадобилась, то ее можно просто добавить на уровне библиотеки, в этом
препятствий нет. Но включать в состав не вижу никакого смысла. Кроме того, надо
помнить, что любая фича обходится не бесплатно - она жрет память и
быстродействие. Поэтому сделано все по минимуму. Если что-то понадобилось, то
можно добавлять, но иметь в виду, чем за это расплачиваешься.

--
H.Z.

h.z<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
почему у самоделкиных так популярен AVR ?

   Vladimir, ты ещё здесь сидишь?


Среда Март 15 2006 05:10, Vladimir Vassilevsky wrote to Harry Zhurov:

 HZ>> У меня в текущей разработке стоит один Blackfin, который
 HZ>> выполняет всю работу и по управлению прибором, и по обработке
 HZ>> данных. Т.е. и контроллером работает, и процессором обработки
 HZ>> данных.
 VV>  Чтобы использовать BF в задаче обработки данных с осмысленной
 VV> сложностью, ему нужно иметь хотя бы 128k RAM.

 От конкретной задачи зависит!

 VV> Это или внешняя память на шине, или большой BF в BGA-корпусе, который
 VV> стоит уже не $5, а $30.

 Думаешь, для обработки данных с матрицы оптической мышки, используется
монстр за $30 с 128k RAM? ;)


                                                   Георгий


Re: GCC - поясните.
Hello, Kirill Frolov!
You wrote in conference fido7.ru.embedded to George Shepelev on Wed, 15 Mar
2006 20:28:32 +0000 (UTC):

 >>  Менее багоопасны как раз вменяемые флаги, а не полный список
 >> состояний.

Это "по-академически". Состояния действительно на много удобней.

 KF>   Флаги -- это состояние закодированное массивом двоичных "флагов",
 KF> вместо одной переменной. Не зна что в них вменяемого.

 >> легко может привести к тому, что появятся флаги, описывающие
 >> состояния некоторых автоматов ;)

 KF>   Один автомат -- одно состояние -- одна переменная.

 >>  Могут. Hо если состояний два, почему бы не применять флаги? При этом
 >> не нужно снова искусственно выдумывать "полный список состояний"
 >> каждого

С той же дверью пример применения флагов крайне неудачный. Дверь может быть
открыта, закрыта и при этом заперта или не заперта. Открыта и заперта она
быть уже не может. И с добавлением замка в дверь гораздо удобней добавить
еще одно состояние в список состояний, чем еще один флаг и все комбинации
его с другими флагами, в том числе и бессмысленные.

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

Уже очень давно пишу программы, состоящие преимущественно из конечных
автоматов в виде switch () case и правил перехода из одного состояния в
другое. Флажки тоже бывают, но для всяких асинхорнных автомату событий.

 KF>   Вот я и говорю -- флаг редко имеет смысл.

Как асинхронное событие - вполне имеет. Как хранение состояние конечного
автомата - нет.

dima

http://www.dorlov.no-ip.com


Re: почему у самоделкиных так популярен AVR ?
Hi Harry !

 Совсем недавно 16 Mar 06 09:19, Harry Zhurov писал к  Ruslan Mohniuc:

 HZ>>>     Почему сразу "операционкой"? Без оной его использовать
 HZ>>> нельзя?..

 RM>> :-)
 RM>> Там столько ресурса, что очень хотелось ОСку. Всякие там готовые
 RM>> езернеты, ftp, USB, FAT...

 HZ>     Во блин! :) Ты процессор под задачу выбираешь или задачи под
 HZ> процессор? Я - первое. Мне его мегамипсы совсем не лишние, чтобы их
 HZ> бездарно сливать.
Я хотел добавить чуть-чуть мегамипсов для своей задачи и готов был выделить
четверть гигамипса под реализацию дополнительных функций.
Операционка предоставляла мне в готовом виде эти доп.возможности.
Hо неудачный выбор операционки, которая хоть и обладает рюшечками, но все
остальное пускает под откос, уже изменил мою точку зрения. Да, наверняка можно
обложиться ограничениями и решить частную конкретную задачу на линуксе, но
боюсь, что главным ограничением для общего случая решения задач реалтайма на
линуксе является недопустимость использования линукса :)

 HZ>     И потом, как связаны "Всякие там готовые езернеты, ftp, USB,
 HZ> FAT..." с ОС? По-моему, это вещи весьма ортогональные.
В смысле, что софт для этих интерфейсов и протоколов возможно использовать и
без операционки? Hе спорю. Hо этот софт еще нужно иметь.
Hу например есть у меня своя реализация FAT16 и доступа к IDE-устройствам. Все
остальное писать самому- разве что в случае, когда других вариантов нет. Hо
можно взять готовое. Если это готовое написано под скажем Линукс- мне казалось
логичным и взять этот самый линукс. Лень, однако. :)

 RM>> Смотрел на его uClinux, и мне не понравились результаты.
 RM>> Подтвердилось то, о чем раньше имел только теоретическое
 RM>> представление: линукс для реалтайма не катит совсем. То есть на
 RM>> уровне ядра написанный мной драйвер успевал выгребать из
 RM>> подключенной железяки, а вот на уровень приложений
 RM>> надежно передать я так и не смог. Я абсолютно уверен, что без
 RM>> линукса запас производительности для моей задачи- в десятки раз
 RM>> (ADSP2181 чуть-чуть не хватало, правда без всяких езернетов и
 RM>> операционнок). Разочаровался.

 HZ>     Hа телесистках где-то с год назад примерно один чел примерно так
 HZ> охарактеризовал связку Blackfin+uClinux: "uClinux превращает Blackfin
 HZ> в AVR".
ВОТ! Значит не я один пришел к такому выводу. :-)


 HZ>  Если кому-то оно надо, то почему бы и нет - проект живет, значит
 HZ> есть желающие. Мне оно не надо.
И мне тоже. будут более мягкие требования- может, оно и заинтересует.


 HZ>>> Под самодельной. :)
 RM>> Hу, это неспортивно.

 HZ>     Чего это не спортивно?
Hу, это была шутка. :)

 HZ> Имею возможность разделить всю программу на отдельные асинхронные
 HZ> потоки выполнения с приоритетным вытеснением и
 HZ> достаточным набором средств межпроцессного взаимодействия. Передача
 HZ> управления из одного процесса в другой через флаг события происходит
 HZ> за примерно 1.5 мкс при 200 МГц тактовой, ядро при этом потребляет
 HZ> порядка 50 мВт. По-моему, очень даже спортивно. :)

Это не просто спортивно, это очень здорово.

 RM>> Так каждый может. :-)

 HZ>     Вот и отлично, что у каждого есть такая возможность. И тебе никто
 HZ> не мешает. ;-)
Угу. :)

         WBRgrds
                   Ruslan


Re: почему у самоделкиных так популярен AVR ?
Приветствую Вас, Harry!

Однажды 15 Мар 06 в 09:50, Harry Zhurov писал(а) к Vladimir Vassilevsky...

VV>> Все чисто :))) Приходишь и договариваешься.
VV>> Мени-мени - чипо-чипо, как говорят китайцы.
HZ>
HZ>     Тебе видней. Меня вообще цена на чип в пределах десятка-другого
HZ> баксов мало волнует. У нас не серия. Hо те, кому это надо, испытают
HZ> проблемы - вряд ли удастся привезти в Россию даже большую партию по
HZ> такой низкой цене. Таможня и налоги. Если только контрабандой, если
HZ> кого-то устроит этот путь.

 К сожалению, то что тебе кажется официальным путем доставки в Россию, является
таковым лишь в 1% случаев. Реалии "пpитягиваются" к законодательству личными
знакомствами и взятками. Я даже думаю, что так пpавильно, - иногда здpавый
смысл важнее любого закона, но это уже субъективности, могущие поpодить флейм,
так что обсуждать это не стоит. Добавлю, что с китайцами очень интеpесно
общаться - можно выпpосить скидку даже в 50% на совсем не "пуховики из
синтипона". И паpтии небольшие. Тут главное, чтобы хотябы о нескольких k$ шел
pазговоp.

С уважением, Виталий.

... -|O|-

Re: почему у самоделкиных так популярен AVR ?
Здравствуйте, Уважаемый Vladimir!

Mon Mar 13 2006 06:46, Vladimir V. Teplouhov wrote to Vladislav Baliasov:

 VVT> Ребята слепили зарядник - однокристалка + ЖКИ.  Считай, один ЖКИ
 VVT> баксов 5 минум...  Итого 10-20$ одних деталей + секс...
 VVT> А сама схема так себе, даже без ассимметрички для восстановления
 VVT> аккумуляторов...  А теперь внимание, вопрос - скоко батареек
 VVT> можно купить за эти бабки и на скоко их хватит?..

Батарейки не всегда могут заменить аккумулятор. Hапример, в цифровых
фотоаппаратах, камерах и др.девайсах с контролем напряжения питания. Кто
пытался, тому приходилось менять батарейки через 10 минут их работы потому,
что кривая разряда у них не такая как у аккумуляторов. И это несмотря на то,
что емкость батареек несранимо выше. Приходится иметь целый вагон батареек.
Это Вам ответ, сколько нужно купить батарек вместо нормального аккумулятора и
зарядного устройства к нему.

Всего Вам Хорошего
Ольга


Re^2: почему у самоделкиных так популярен AVR ?
   Привет, Vladimir!



13 мар 06 06:46, Vladimir V. Teplouhov -> Vladislav Baliasov:

 VT> а 48 битный не подойдет? :)
 VT> blackfin, 5$ штучка.  Сэмплы можно и на халяву получить...
 VT> Правильный ответ - потомучто самоделкины.
 VT> Hекоторым нравиться процесс ;)

 Вова! Тебя за язык никто не тянул!

 Давай поставь мне 10 (десять) штук блэкфинов (пофик каких, но только
одинаковых) по цене за штуку в менее чем $5. Итого это будет $5 * 10 == 1450,00
руб. Даю тебе недельный срок 7 дней, (счетчик уже пошел...).

Если не поставишь - то ты трепло! Согласен?





    До свидания, Oleg.



Re^2: почему у самоделкиных так популярен AVR ?
Hello Oleg.

13 Mar 06 19:14, you wrote to me:
 OP> 13 мар 06 06:46, Vladimir V. Teplouhov -> Vladislav Baliasov:

 VT>> а 48 битный не подойдет? :)
 VT>> blackfin, 5$ штучка.  Сэмплы можно и на халяву получить...
 VT>> Правильный ответ - потомучто самоделкины.
 VT>> Hекоторым нравиться процесс ;)

 OP>  Вова! Тебя за язык никто не тянул!

 OP>  Давай поставь мне 10 (десять) штук блэкфинов (пофик каких,
 OP> но только одинаковых) по цене за штуку в менее чем $5.
 OP> Итого это будет $5 * 10 == 1450,00 руб.

а на сайте ad на халяву заказать религия не позволяет?

 OP> Даю тебе недельный срок 7 дней, (счетчик уже пошел...).

какие 7, они за 1-3 дня отправляют.
Мне половину заказа из европейского центра вообще через
неск часов выслали, АЦП откуда-то с филипин через день или два ли...

Vladimir


Site Timeline