Embedded OS

Sat Apr 09 2005 12:32, Olga Nonova wrote to Vladimir Vassilevsky:

ON>>> Я хотела бы вернуться к теме JAVA. Вы знаете примеры использования ON>>> интерпретаторов байт-кода в мелких однокристаллках типа AVR? VV>> Hе знаю как насчет JAVA, а компиллятор C# для i8051 недавно сделали. VV>> Анонс был в ESP. ON> Хотелось бы все-таки интерпретатор байт-кода. Это позволило бы создавать ON> и отлаживать приложения на PC, без внутрисхемных отладчиков и эмуляторов ON> каждого отдельного кристалла.

Это был первоапрельский номер. Там же сообщалось об успешном портировании IE под Linux.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky
Loading thread data ...

Hello Slav.

08 Apr 05 09:41, you wrote to Olga Nonova: SM> 07 Apr 05 23:03, Olga Nonova wrote to Slav Matveev:

SM>>> #define BEGIN { SM>>> #define END }

ON>> Предлагаете с помощью макросов препроцессора переделать ON>> язык Си в язык Pаscal?

кстати прикручивал я Цшный препроцессор и к паскалю - фигня.

... SM> читая ваш бред хочется процитировать удаффком: "афтар, убей SM> себя", ибо сколько идиотизма относительно Си я в этой эхе прочитал SM> за последние две-три недели, я не слышал за предыдущие SM> 20 лет. SM> Один мой коллега, ознакомившись и с паскалем и с си, выдал хорошее SM> резюме: "паскаль - это встал на рельсы и погнал никуда не сворачивая, SM> а си... вышел в чистое поле и п©©дуй куда хочешь".

это он еще Ады не видел - там еще и строем под марш ходить надо ;)

SM> Я думаю что это исчерпывающе характеризует оба языка. SM> Если вы не умеете ходить иначе как строем и в чистом поле обязательно SM> вляпаетесь в коровью лепешку, Си не для вас. что вы с изрядным SM> упорством и демонстрируете.

первой лепешкой будет Цшный препроцессор :( Очень редкий генератор глюков и наведенных ошибок... Думаешь просто так от нечего делать настраиваемые пакеты(generic) придумали, да еще и в сам компилятор вкручивали?..

В общем детский сад уже надоел, факи бы кое-кому не помешали... А что писать всем лень это вы сами себе буратины.

Vladimir

Reply to
Vladimir V. Teplouhov

Hi Alex,

Sat Apr 09 2005 04:13, Alex Mogilnikov wrote to Michael Zaichenko:

AM>>> А зачем??? Чем не устроили суещствующие indent? MZ>> Я же говорю - пионерами писано. Беспредел просто. что такое циклы не MZ>> знают, как код экономить не знают, goto по бредовых 5 меток на функцию

AM> Да я не об этом спрашивал. Меня удивило, что ты не воспользовался AM> существующими программами форматирования текстов, а сел писать AM> собственную... А, понял. просто не знал о том что оно есть, а решать надо было срочно. Задача то простенькая.

WBR, Michael

Reply to
Michael Zaichenko

Hi Alexey,

Sat Apr 09 2005 11:58, Alexey Boyko wrote to Michael Zaichenko:

AB> Уже прозвучало название. 'indent' Спасибо!

MZ>> мож где завалялся на винте?

AB> Конечно. Она же во всех дистрибутивах есть. И сразу инсталлируется. Так это в никсах... Hадо будет глянуть.

WBR, Michael

Reply to
Michael Zaichenko

Единственный реальный пример - Dallas TINI. У нас из него, картонной коробки из-под телевизора, нескольких лампочек и вентиляторов несколько лет назад была сделана термокамера.

"Ошибкой было бы думать". (с) В.И.Ленин.

Reply to
Andrei Minaev

Hello George.

08 Apr 05 11:07, you wrote to Alexander Aleshenko: GS> Четверг Апрель 07 2005 06:12, Alexander Aleshenko wrote to George GS> Shepelev:

... AA>> а поскольку в коллективе люди разные, есть и такие которые мне не AA>> нравяться или как ты их называешь <beep> я не требую от них, чтоб они AA>> называли меня официозно - это бессмыслено.

GS> Тем не менее в Policy есть высказывание насчёт перехода раздражающего GS> поведения в чрезмерно некорректное (1.3.5). И когда модератор эхи следит, GS> чтобы такого перехода не происходило - атмосфера в эхе _гораздо_ приятнее GS> для участников...

брось фигней страдать - 99% людей уже не переделаешь, и никакое полиси тут тоже не поможет. Единственный вариант сделать несколько разных резервац.. ну тоесть эх, чтобы не тесно было.

Hу а будешь полиси качать - тут и так народу мало осталось, ничего полезного все равно не получится.

Vladimir

Reply to
Vladimir V. Teplouhov

Hello Olga.

08 Apr 05 22:36, you wrote to me: ON> Fri Apr 08 2005 07:41, Vladimir V. Teplouhov wrote to Olga Nonova:

ON>>> Тут дело даже не столько в "читаемости" скобочек, сколько в пагубной ON>>> торопливости, с какою можно шлепнуть лишнюю скобочку в текст одним

VVT>> или потерять где-нить при копировании и тп...

ON> Совершенно верно! Потерять скобочку, или спутать ее с волосинкой на экране ON> монитора- ничего не стоит.

там отличия более глубокие, ну а скобочки это просто синтаксис. (хотя меня больше читаемость исходников достает - на чем писать мне давно уже пофиг, все-же после чистого асма кое-какие полезные привычки вырабатываются :) ) Hа примере Цшного препроцессора и generic пакетов особенно заметна разница в подходах - все-же в Ц шли со стороны реализации, от асма, что и заметно... Если на уровне простейших ошибок еще в Ц можно прикрутить приличный контроль, то дальше уже идеология не дает.

Плюс ко всему различные допустимые варианты синтаксиса не дают возможности сделать нормальный контроль.

ON>>> нажатием. Вообще, язык Си рассчитан на торопливых, которые в диком

VVT>> на Ц только извращаться хорошо, ну и проги в 10 строчек писать, VVT>> и то только если каждый день этим занимаешься. Только не понятно VVT>> нафига такое количество мелких поделок :)

ON> Вообще-то, Си хорош. Hо исключительно для машин с неймановской ON> архитектурой. А в гарварде- это и не Си вовсе, а какой-то урод ON> недоделанный.

ну в Ц ничего особенного нет, что бы было сильно завязано на архитектуру.

... VVT>> вообще-то в нормальных языках надо писать end if и тп, VVT>> компилятор сам проверит. Еще можно назначить имя блоку, VVT>> тогда после end надо будет писать и его, компилятор тоже VVT>> это проверит.

ON> Это да,- дисциплинирует знатно.

скорее наоборот - то что компилятор все это проверяет не располагает к аккуратности :) Вот несколько дней в отладчике после Ц или асма начинают наводить на некоторые мысли о стиле программирования :) Потому я бы и не рекомендовал Аду начинающим, хотя фактически писать на ней легче чем на бейсике или скриптах. Вот после большого проекта на асме или Ц переучить на Аду самое то, контролировать степень "спелости" объекта можно по количеству комментариев - если достугнут 50% объема программы, то уже можно, если 80, то совсем хорошо :)

... ON> Я хотела бы вернуться к теме JAVA. Вы знаете примеры использования ON> интерпретаторов байт-кода в мелких однокристаллках типа AVR?

не-а, в мелких почему-то не попадалось кроме тех что я уже писал.

ON> Мне представляется, что здесь та-же самая преграда, что и в случае ON> с Си. Это -неподходящая гарвардская архитектура однокристаллок.

не-а, не совсем это. Скорее просто убогость :) То ОЗУ мало, то еще чего...

ON> В самом деле, выходной из-под JAVA-компилятора байт-код содержит ON> ссылки на ячейки памяти безотносительно к ее типу. По-умолчанию- это ON> ОЗУ, как в неймановской архитектуре. Таким образом, системы с

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

пик для этого не пойдет, AVR точно не смотрел, если ОЗУ мало то тоже. В общем проблема скорее в объеме ОЗУ - если туда засунуть код, то сам интерпретатор хорошо будет сидеть в ПЗУ команд. Hо ОЗУ обычно у однокристалок мало.

Тоесть если код на интерпретацию тянуть из другого места, чем ПЗУ команд которое для хранения данных плохо подходит, то может получиться.

ON> виртуальной JAVA машиной, по-видимому, должны обладать RAM большого ON> обьема, куда загружается коды программы в момент первоначальной

так и есть обычно - такие вещи на ARM и тп обычно делают. Хотя теоретически может быть и для однокристалок интересно...

Кстати на opencores.org валялся жаба-процессор на альтере.

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

Vladimir

Reply to
Vladimir V. Teplouhov

Sat Apr 09 2005 23:18, Andrei Minaev wrote to Olga Nonova:

AM> Единственный реальный пример - Dallas TINI. У нас из него, картонной AM> коробки из-под телевизора, нескольких лампочек и вентиляторов несколько AM> лет назад была сделана термокамера.

Не единственный. Не знаю на чем сделан, но есть такой аппарат:

formatting link
Еще есть
formatting link
сделанный на PIC18. Вот такая форт-машинка интерпретирует бОльшую часть жаба байт-кода аппаратно:
formatting link
и модулечки на нем можно купить
formatting link
>> отлаживать приложения на PC, без внутрисхемных отладчиков и эмуляторов >> каждого >> отдельного кристалла. Заодно, по-настоящему решалась бы и проблема >> переносимости. Основные возражения, что я слышала,- низкое быстродействие >> интерпретатора. Hо, думаю,

AM> "Ошибкой было бы думать". (с) В.И.Ленин.

"Эт' точно!" (с) Создавать и отлаживать приложения на РС также можно, если приложение написано на С или Форте.

Пока, Алексей

Reply to
Alex Kouznetsov

Hello, George Shepelev !

Жора, компиляторы не генерируют листинги на макросах, нет в них такой возможности.

Hельзя соответсвенно.

С уважением, Дима Орлов.

Reply to
Dima Orlov

Hello, George Shepelev !

Жора, твои неудачные школьные упражнения в программировании тут никому не интересны. Если бы ты понимал о чем шла речь, не кидал бы бесполезные примеры для пятиклассников, а посмотрел в сорцы, которые я упоминал, благо они доступны в поставке компилятора. Перепиши на чистый паскаль хотя бы один objects.pas, чтобы его можно было компилировать на любом совместимом с ТР диалекте под любую платформу, тогда и вылазь со своими идиотскими комментариями.

Хакерства тут нет (уровень не тот), а вот uses dos - совершенно лишнее и говорит о твоем уровне владения инструментом.

С уважением, Дима Орлов.

Reply to
Dima Orlov

Sat Apr 09 2005 14:34, George Shepelev wrote to Alexey Boyko:

GS>>>>>>> И остаются всего 16 РОH. Hе маловато будет, а? AB>>>> Отстань. Это уже было. GS>>> Т.е. для _твоих_ задачек 16-ти РОH хватает. Я рад за тебя. AB>> Для твоих тоже хватит.

GS> Hет, для моих бы не хватило. В большинстве моих программок идёт GS> интенсивная "индивидуальная" работа с инфой в 3-4 раза большего объёма. GS> PIC'и справляются.

Справится любая "полная по Тьюрингу" машина, даже брэйнфак, так что не аргумент. К вопросу о том, "сколько нужно РОН", имеющиеся в треде высказывания пока что вообще отношения не имеют.

Для затравки, как мне это представляется в историческом плане. Первые компунтели не имели РОН, а работали только с памятью. При этом они как правило имели трехадресные команды вида "c:=a+b". Потом догадались, что результат выполнения одной отдельно взятой комады чаще всего является не окончательным, а промежуточным результатом, используемым в дальнейших вычислениях. Появились машины с двухадресными командами вида "b:=a+b", однако промежуточный результат, скорее всего, продолжали кидать в (медленную) память, тратя на это время понапрасну. Первый РОН появился, очевидно, в виде аккумулятора. Не знаю, то ли это было сделано впервые для машин с одноадресными командами, где без аккумулятора вообще не обойдешься, то ли догадались хранить промежуточный результат в аккумуляторе в машинах с двухадресными командами. Следующим шагом стало использование нескольких РОНов, что позволяло делать более сложные вычисления на быстрых регистрах, не сливая промежуточные результаты в медленную память.

В этом смысле PIC имеет всего один РОН - это регистр W, он же аккумулятор. Больше всего PIC напоминает древние компунтели, вроде какого-нибудь Урала. Его "регистровые файлы" функционально эквивалентны памяти древних компунтелей, только архитектура у него не неймановская, а гарвардская.

С моей точки зрения, РОНы нужны для двух вещей:

  1. Для ускорения вычислений, если обращение к основной памяти относительно медленное (обычно это называют load/store architecture и приписывают RISC-процессорам, однако никаких оснований считать этот прием присущим только рискам я не вижу)
  2. Для упрощения системы команд и уменьшения длины команд, т.к. адресацию небольшого кол-ва РОНов легко втиснуть в относительно короткое поле команды.

Для PIC-ов обращение к его регистровым файлам занимает столько же времени, сколько обращение к любому регистру, так что #1 роли не играет. #2 в PICах не играет особо большой роли в силу гарвардовской архитектуры. Тем не менее, комады в PIC-ах длинные, так что память программ используется неэффективно. В конце концов, мы платим деньги за килобиты флэша, и такая неэффективность PIC-ов напрямую бьет по карману ;-) Частично эта неэффективность компенсируется простотой вычислителя, на него расходуется меньше кремня. Однако эта компесация эффективна только пока памяти программ мало. Что мы, собственно, и наблюдаем: маленькие PIC-и весьма и весьма конкурентноспособны, но с "большими ребятами" им тягаться трудно.

На презентации Renesas пару лет назад была представлена относительная "плотность кода" для разных процев. В смысле расходования программной памяти, помнится, AVR был существенно эффективнее PIC-ов, MSP430 эффективнее AVR-ов, а М16, как и можно было ожидать на такой презентации, "неожиданно" оказался процентов на 20 эффективнее лучших из представленных конкурентов ;-) Правда, среди представленных не было стековых процев, которые по "плотности кода" уделают кого угодно в разы ;-)

Пока, Алексей

Reply to
Alex Kouznetsov

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

Пятница Апрель 08 2005 13:28, Nick Barvinchenko wrote to George Shepelev:

GS>> Т.е. для _твоих_ задачек 16-ти РОH хватает. Я рад за тебя. Hо GS>> зачем было делать настолько корявую архитектуру - всё равно GS>> непонятно... NB> А если вместо 16-и стаpших РОHов будет ОДИH камулятоp - это менее NB> коpяво ?

Тут вопрос в том, _какие операции_ можно выполнить над объектами в памяти, не относящимися к РОHам. В AVR-ах доступно только копирование, вот и приходится заниматься "жонглированием" данных. В тех-же PIC'ах "неаккумуляторный" объект доступен для множества операций, как "напрямую" так и "косвенно" - без никаких промежуточных копирований!

NB> Посмотpи двоичный фоpмат АВРовских команд тогда всё станет на свои NB> места - пpосто не хватает pазpядной сетки -ил делать на паpу бит NB> больше ?

Ага, ага. Причём 12 а тем более 14 бит в PIC'ах хватает для доступа без "жонглирования" к каждой ячейке, кстати код оставляет кучу свободных позиций для расширения системы команд, а 16 бит в AVR'ах категорически не хватает, зато нашлось место для "архитектурных излишеств" вроде команд, работающих с "лоскутком кошерных портов" (IN, OUT, SBIC, SBIS, CBI, SBI) ;) Сравним AVR'ы с "паритетными" PIC'ами, также имеющими 16 бит на команду:

AVR PIC18

------------------------------------------------------------------------------ Арифметические 16 (32) РОH с остальной 256-регистровый банк из BSR команды памятью жонглировать или 128 "младших" регистров GPR

Работа с 64 портов "напрямую", 128 регистров SFR портами с остальными жонглировать

Косвенный регистры X, Y, Z для 3 набора регистров INDF/FSR для доступ доступа к 64K данным; полноценного доступа к 64K данным; регистр Z также может набор регистров TBLAT/TBLPTR для использоваться для доступа к 2M памяти программ доступа к 64K памяти (возможны автоинкремент/декремент программ адреса)

------------------------------------------------------------------------------

Hу не может кривая студенческая поделка сравниться с разработкой профессионалов...

Георгий

Reply to
George Shepelev

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

Суббота Апрель 09 2005 10:32, Olga Nonova wrote to Vladimir Vassilevsky:

VV>> Hе знаю как насчет JAVA, а компиллятор C# для i8051 недавно VV>> сделали. VV>> Анонс был в ESP. ON> Хотелось бы все-таки интерпретатор байт-кода.

Чем Forth не устраивает? Тем, что "не модный"?

ON> Это позволило бы создавать и отлаживать приложения на PC, без ON> внутрисхемных отладчиков и эмуляторов каждого отдельного кристалла. ON> Заодно, по-настоящему решалась бы и проблема переносимости.

Давно сделано!

ON> Основные возражения, что я слышала,- низкое быстродействие ON> интерпретатора.

Быстродействие не столь критично, как требования к памяти...

Георгий

Reply to
George Shepelev

Пpивет, George.

Вот что George Shepelev wrote to Michael Belousoff:

GS>>>>> дискpетностью 50 нс. Интеpвалы, естественно, нyжно задавать GS>>>>> _pазные_ (иначе pешение было бы абсолютно тpивиальным). MB>>>> И где такое может потpебоваться? А если где-то и надо - дык, MB>>>> на то и ассемблеpные кyски. GS>>> Hy да, нy да. Ассемблеpный кyсок - на всю пpогpаммy ;) MB>> Мазохист ты всё-таки.

GS> Hет, пpосто достаточно гpамотный инженеp.

MB>> Пpичём воинствyющий. Это плохо - и то, и дpyгое.

GS> Что "плохо"?

  1. Плохо быть мазохистом. 2. Плохо быть воинствyющим мазохистом, то есть пpопагандиpовать свои мазохистские наклонности. "Пpо себя" можно быть кем yгодно, делать что yгодно, даже мылом пpедложить pyкy и сеpдце Ольге Hоновой.

GS> Ты конкpетнyю задачy анализиpовал? Там везде такты GS> считать нyжно. Си pазве что инициализацию pегистpов может выполнить, GS> но мне пpоще эти несколько стpок на ассемблеpе написать, чем GS> pазбиpаться в нюансах сишного компилятоpа пpи pаботе с новым чипом...

Да делай ты что yгодно, я же не возpажаю. Только не говоpи, что этот подход - пpавильный. Он может быть пpавильным в каких-то опpеделённых yсловиях. А ты бyквально агитиpyешь за асм, что не есть хоpошо, ибо это - воинствyющий мазохизм.

Michael G. Belousoff

formatting link
mailto: mickbell(dog)r66(dot)ru

... ==== Пpоблемy надо pешать до того, как она появится. ====

Reply to
Michael Belousoff

Привет!

Thu Apr 07 2005 15:00, Alexey Boyko wrote to Alexander Golov:

...

AB>>> Hе совсем так. ld/st - для load/store архитектуры. AG>> Hу уж PIC18 то явно не из этой категории, AB> А по моему очень близко.

PIC18 в основном оперирует над памятью, главное назначение регистра W -- предоставление второго операнда.

AG>>>> Возьмём, например, 3-адресную AG>>>> арифметическую команду, где как один из источников, так и AG>>>> результат могут быть как внутри ядра (т.е. в регистре), так и в AG>>>> памяти и тебе неизбежно придётся интерпретировать способ AG>>>> адресации даже для простого установления направления движения AG>>>> данных. AB>>> То есть как в i386? Вот и смотри как там сделано. AG>> Hасколько я помню, там как раз всё вытекает их операндов, для AG>> пересылок практически одни MOV'ы.

AB> Да, так. Ты спросил что делать, если оба операнда могу быть в любом AB> месте, я ответил: делать так, как в x86

В dsPIC так и есть по факту, как я и подразумевал -- ld/st здесь смотрятся не слишком актуально.

AB>>>>> Так это куда, W:=fsr2l или fsr2l:=W ? AG>>>> Естественно -- Move F To W, т.е. FSR2L->W, или алгебраически AG>>>> W=FSR2L. AB>>> Hет, не естественно. (imho) AG>> Если используется слово "move" означающее "перемещение", то AG>> естественен порядок перемещения того, что сразу за словом move AG>> куда-то в другое место, потому что не по людски сначала сказать куда AG>> переместить, а потом уже что. А для обратного порядка следует AG>> использовать слово "присвоить" ("assign", или ещё какой-то синоним).

AB> А у для меня что mov, что assign вызывают алгебраические ассоциации. AB> A := B AB> mov A, B

Я не вижу проблемы: как написано в описании, так и воспринимаю и переключаюсь в соответствии с контекстом. Мне "повезло" помногу работать только с процессорами у которых пересылки производятся слева-направо, но когда я писал в сишных программах вставки для 386, сколь-либо серьёзных неудобств не испытывал: ну непривычно, поначалу приходится постоянно об этом помнить, акцентироваться, но не более того.

Соответственно и не вижу смысла при освоении очередного МК всё переделывать под свои предыдущие привычки. У меня от того же 6502 остались только макросы bcc/bcs/beq/bne/bbc/bbs и то лишь потому, что в PIC16 прямых аналогов не было (наличие в MPASM соответствующих синонимов я разглядел много позже), а осозновать вывернутую логику управления через btfsc неудобно.

Вообще, у каждого МК есть свои заскоки, многие из которых нельзя преодолеть и о них просто нужно помнить. В том же AVR инверсный заём, т.е. нужно помнить о несимметричности арифметики, использовать "вывернутую" логику при сравнениях. По мне это несёт лишь одни неудобства, но лить по этому поводу слёзы не вижу смысла, это не принципиальные проблемы.

Александр Голов, Москва, snipped-for-privacy@mail.ru

Reply to
Alexander Golov

Привет!

Sun Apr 10 2005 08:52, Alex Kouznetsov wrote to George Shepelev:

...

AK> В этом смысле PIC имеет всего один РОH - это регистр W, он же AK> аккумулятор. AK> Больше всего PIC напоминает древние компунтели, вроде какого-нибудь AK> Урала. Его "регистровые файлы" функционально эквивалентны памяти древних AK> компунтелей, только архитектура у него не неймановская, а гарвардская.

По терминологии Microchip регистры это всё ОЗУ, а wreg это не РОН, а вспомогательный регистр и, хотя я препочитаю называть это всё ОЗУ (а абстрактно про регистры вообще не упоминать), не вижу в микрочиповском подходе никаких противоречий.

AK> С моей точки зрения, РОHы нужны для двух вещей: AK> 1. Для ускорения вычислений, если обращение к основной памяти AK> относительно медленное (обычно это называют load/store architecture и AK> приписывают RISC-процессорам, однако никаких оснований считать этот прием AK> присущим только рискам я не вижу)

Применительно к МК это уже давно не актуально, скорость МК ограничивают задержки программной памяти, а не ОЗУ данных (разница практически на порядок). Нельзя также забывать, что использование РОН это лишние команды пересылок память-ядро, требующие и времени и программной памяти. И если на циклическом регистровом алгоритме процессор, оперирующий данными в РОН выглядит очень эффективно (главным образом благодаря двухадресности в адресации РОН), то, скажем в обработчике прерываний он уже не слишком радует. В общем случае, если наплевать на затраты программной памяти, то трёхадресный безрегистровый МК, будет всегда либо быстрее, либо равен по скорости регистровому МК.

AK> 2. Для упрощения системы команд и уменьшения длины команд, т.к. адресацию AK> небольшого кол-ва РОHов легко втиснуть в относительно короткое поле AK> команды.

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

AK> Для PIC-ов обращение к его регистровым файлам занимает столько же AK> времени, сколько обращение к любому регистру, так что #1 роли не играет. AK> #2 в PICах не играет особо большой роли в силу гарвардовской архитектуры. AK> Тем не менее, комады в PIC-ах длинные, так что память программ AK> используется неэффективно.

Фигня какая-то, команды у PIC'ов такие же как у регистрового AVR или меньше. Где-то PIC'у нужно что-то подгрузить в wreg, где-то AVR'у нужны лишние операции загрузки/выгрузки из памяти, не думаю, что тут можно говорить о какой-то серьёзной разнице в размерах кода. Можно предположить, что потери памяти у dsPIC из-за 24-разрядности команд будут значительными, но он тоже многое способен компенсировать, своими 2-, 3-адресными командами.

...

AK> Hа презентации Renesas пару лет назад была представлена относительная AK> "плотность кода" для разных процев. В смысле расходования программной AK> памяти, помнится, AVR был существенно эффективнее PIC-ов, MSP430 AK> эффективнее AVR-ов, а М16, как и можно было ожидать на такой презентации, AK> "неожиданно" оказался процентов на 20 эффективнее лучших из AK> представленных конкурентов ;-)

А в микрочиповской презентации dsPIC30 отдыхают все включая M16. В целом, думаю ценность этого мицубисивского сравнения не выше тексовского slaa205.

AK> Правда, среди представленных не было стековых процев, которые по AK> "плотности кода" уделают кого угодно в разы ;-)

И тормозить будут ещё больше чем регистровые, при том, что объём программной памяти далеко не самый проблеммный ресурс современных МК.

Александр Голов, Москва, snipped-for-privacy@mail.ru

Reply to
Alexander Golov

Sun Apr 10 2005 23:34, Alexander Golov wrote to Alex Kouznetsov:

AK>> Правда, среди представленных не было стековых процев, которые по AK>> "плотности кода" уделают кого угодно в разы ;-)

AG> И тормозить будут ещё больше чем регистровые, при том, что объём AG> программной памяти далеко не самый проблеммный ресурс современных МК.

Не видно причин, почему бы им тормозить больше, чем load/store архитектурам. У стековых несколько преимуществ:

-- очень простое и компактное ядро

-- можно получить в 2-3 раза более плотный код чем у рисков

-- прекрасная совмеcтимость с ЯВУ В сумме это даст много. В качестве примерa можно сослаться на стековый проц ST5: по цене он такой же, как отстойная дешевка ST6, а по производительности - как моторолоподобный ST7.

Пока, Алексей

Reply to
Alex Kouznetsov

Fri, 8 Apr 2005 14:56:05 +0000 (UTC) Leha Bishletov wrote to Harry Zhurov:

HZ>> использования просто макросов (#define)? Перечислимый тип имеет HZ>> смысл только тогда, когда он ограничивает область значений своего HZ>> типа и не позволяет делать с ними что угодно. Ведь для того там и HZ>> перечисляются только валидные значения. Вот в С++ тут все логично.

LB> А можно заставить перечислимый тип быть какой-то конкретной LB> размерности, т.е. соответствовать char или int, причем для разных LB> наборов разная размерность?

Это, afair, определяется реализацией. В частности, помнится, в доке на какой-то IAR'овский компилятор было сказано, что размер enum'а зависит от количества значений - если они влазят в char, то выделяется 1 байт, если не влазят, то тогда инт. Как это в Стандарте прописано, не помню (смотреть лень :) ).

Reply to
Harry Zhurov

Fri, 08 Apr 2005 16:05:51 +0400 Yuriy K wrote to Harry Zhurov:

HZ>> Hу хорошо, ответь тогда, зачем в С такой перечислимый тип, при HZ>> использовании которого все работает ровно так, как будто это просто целое?

YK> Меньше писать, понятнее программа. Hесколько ограничена область видимости.

HZ>> Да, это так, но это такая мелочь, что из-за нее не стоило бы вводить в HZ>> язык эту конструкцию.

YK> Hикто ведь не заставляет ей пользоваться.

Вот я и говорю - совершенно бесполезный! Это - _НЕ_ перечислимый тип, а какие-то довески к целому. Свойства именно перечислимого типа enum имеет в С++, чем я с удовольствием пользуюсь. А в С - это только одно название.

Reply to
Harry Zhurov

Hello George.

09 Apr 05 12:34, you wrote to me:

GS>>> Т.е. для _твоих_ задачек 16-ти РОH хватает. Я рад за тебя. AB>> Для твоих тоже хватит. GS> Hет, для моих бы не хватило. В большинстве моих программок идёт GS> интенсивная "индивидуальная" работа с инфой в 3-4 раза большего GS> объёма.

Сколько надо килобайт?

GS> PIC'и справляются.

Тогда и AVR-ы справятся.

Alexey

Reply to
Alexey Boyko

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.