Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 11:31:06

Tolmi писал(а):В паскале обычно компилятор строит "шитый код", сплошь состоящий из вызовов стандартных процедур, реализующих написанное человеком.
Это когда такое было? 30+ лет назад? Даже про FORTH так говорить уже много лет неправильно.
25+ лет назад (когда я делал тот «конкурс красоты», о котором шла речь выше) оба доступных мне паскаля для PDP11 генерировали «родной» код. Причём один из них генерировал код лучше самого плохого С-компилятора из трёх доступных (зато на одну дискетку влазящего и быстрого).
Код:
const
   notes = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'];

function test( c : char) : boolean;
begin
   test := c in notes;
end;

Вот что сделал fpc для x86_64:
Код:
   .type   P$PROGRAM_TEST$CHAR$$BOOLEAN,@function
P$PROGRAM_TEST$CHAR$$BOOLEAN:
.Lc1:
   movzbl   %dil,%edi
   subl   $65,%edi
   cmpl   $8,%edi
.Lj7:
   setcb   %al
   ret

Free Pascal Compiler version 2.4.0-2ubuntu1.10.04 [2011/06/17] for x86_64
Copyright (c) 1993-2009 by Florian Klaempfl
Я просто сделал sudo apt-get install fp-compiler, не вникая, как получить свежий с поддержкой thumb2.
Но не вижу причины, по которой для коретксов будет построен байт-код с интерпретатором.

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 11:39:45

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

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 11:49:00

hybroid писал(а):А кому надо программу переписывать? Я бы вообще какой интерпретатор преподавал (питон, перл). Алгоритмизации научить можно? Ещё как можно. А остальное мало кто вообще усваивает..
Вот именно!
Я про fpc вспомнил только как уход от привязки к ОС и старому продукту «малой кровью», не заставляя армию учителей переучиваться.
Можно их ругать, но им никто не выделит оплаченного времени на изучение нового языка. Часы расписаны, ставки выделены, так что всё, что сверх утверждённой программы — только или за счёт подготовки к текущим урокам и проверки домашних заданий или в своё сводбодное время.
Как сын заслуженного учителя Украины, я знаю, сколько этого своего неоплаченного времени уходит у хороших учителей на самоообразование. Что «при Союзе», что сейчас.

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 12:51:17

avreal писал(а):....но им никто не выделит оплаченного времени на изучение нового языка. Часы расписаны, ставки выделены, так что всё, что сверх утверждённой программы — только или за счёт подготовки к текущим урокам и проверки домашних заданий или в своё сводбодное время.
Как сын заслуженного учителя Украины, я знаю, сколько этого своего неоплаченного времени уходит у хороших учителей на самоообразование. Что «при Союзе», что сейчас.

:shock: А Вы полагаете, что у инженера другие условия???
Никто не оплачивает самообразование. Нужен только грамотный результат.
Бывает иногда какие нибудь курсы за счет работодателя, но и учителя так же могут изредка "повысить себя над собой"... за счет бюджета.
:)

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 13:06:25

Я удивлен, что в школах паскаль, а не бейскик, как в наше время :))

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 13:39:12

КРАМ писал(а): :shock: А Вы полагаете, что у инженера другие условия???
Конечно не полагаю! Я уже четверть века инженер.

Но оглянитесь на инженеров и собирающихся ими стать. Утрируя, но не сильно: «Ну форум же для взаимопомощи!!! Ану быстренько сбацали хором мне курсач!!!». «Нафига мне разбираться в тонкостях языка, я как-то понял, оно работает».

При этом я никогда не слышал, чтобы учителя так критиковали инженеров за незнание ими инжнерских «новинок» и отсутствие «самообразования», как все, кому не лень, критикуют учителей.
Сами-то при этом тоже не сильно уприающиеся.
Кому-то не хочется с новым процессором разбираться, кого-то (меня :)) — не, меня не устраивает, поэтому я ничего и не делаю кустарно :)) ) устраивает корпус-мыльница с кнопками из транзисторов МП42, а учителя длжны всем как земля колхозу. В жизни работает притяжение к среднему, «норме». Очень хороших учителей приблизительно столько же, сколько очень хороших инженеров. Средний учитель соответствует среднему инженеру.

Кроме того, работодатель всё же так или иначе закладывает в рабочее время (т.е. в оплату) инженера необходимость разобраться с новым. Иначе на разработку нового изделия выделялось бы ровно столько времени, сколько нужно для того, чтобы с готового эскиза набрать в CAD-е чистовик схемы и с распечатки набрать тескт программы. У учителей такого времени заложено гораздо меньше.

________________
Как жаль, что все, кто знает как учить детей, лечить людей и управлять государством, уже работают парикмахерами и таксистами.

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 13:51:59

Вы не туда оглядываетесь. Оглянитесь на электрониксе. Там все ОК с подготовкой участников.
Что касается времени, то у учителей его как раз больше, поскольку нет временного цейтнота с заказчиком.
Работодатель не может закладывать время на самообучение. Это время определяется соображениями бизнеса.

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 14:10:15

КРАМ писал(а):Вы не туда оглядываетесь. Оглянитесь на электрониксе. Там все ОК с подготовкой участников.
Да есть я на электрониксе. И на сахаре был среди модераторов (ещё есть, аккаунт врядли удалён, но заглядываю туда всё реже).
На электрониксе тысячи и тысячи участников. У скольких «всё ОК»? На какое количество инженерского населения?
А ещё есть «знакомые фирмы» и «знакомые, работающие на других фирмах», есть где статистику набрать.
Вон недавно один инженер, причём не нижнего уровня у себя на фирме, типа «старший группы» заявил по поводу диода возле реле и транзистора — «это у вас там в теории диод нужен, в промышленности так никто не делает».

КРАМ писал(а):Что касается времени, то у учителей его как раз больше, поскольку нет временного цейтнота с заказчиком.
«Свою работу видишь каждый день и всю, чужую — изредка и частями».
Я насмотрелся на обе с детства, у меня 1/5 родственников инженеры, 1/3 учителя.
Термин «поурочный план» слышали? В переводе на «инженерский» язык это означает, что перед тем, как сесть рисовать схему, инженер должен сначала детально описать будущий процесс.
«Включу компьютер и запущу пикад. Сначала расставлю по полю транзисторы, потом между ними резисторы. Проведу связи. Проверю ток каждого транзистора. Осмотрю весь лист, проверю, ровно ли подведены связи.» С вписанными формулами вплоть до последовательного соединения резисторов и своими действиями в случае, если один резистор на лист будет плохо влазить.
Для следующей схемы — отдельно и заново. Пока он сидит это пишет — к нему (именно к нему, а не к продавцу или к сервиснику) придут скандалить конечные покупатели изделия, причём часто с претензиями уровня «а почему это соседу этот прибор понравился, а мне нет?». С директор еще попросит с подпаленной микросхемой поразбираться, может у неё хоть часть выводов работат и можно хоть 40% мощности вытянуть.
Особо въедливый проверяющий попросит прошлогодние планы для проверки 1) не является ли план этого года планом одного из предыдущих с заменённым первым листом 2) не является ли он 1:1 переписанным (сейчас хоть напечатать можно) одним из прошлогодних. Слишком надолго наперёд написанные — тоже грех.
Не каждый инженер и «перспективные планы» пишет.

КРАМ писал(а):Работодатель не может закладывать время на самообучение. Это время определяется соображениями бизнеса.
Любое разбирательство с новым — самообучение.
Или Вы продолжаете утверждать, что вся работа инженера состоит из скачивания из интернета готовых проектов и их перечерчивания/перенабирания, ни на что большее времени нет?

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 14:30:28

avreal писал(а):Или Вы продолжаете утверждать, что вся рабюота инженера состоит из скачивания из интернета готовых проектов и их перечерчивания/перенабирания, ни на что большее времени нет?

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

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 15:05:27

[некий код поскипан]
avreal писал(а):Но не вижу причины, по которой для коретксов будет построен байт-код с интерпретатором.

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

И что там с реентерабельностью рантайма, уже все глюки в ваших паскалях выловили?

Alexeyslav писал(а):Сам язык что паскаль что С - совершенно не отличаются с точки зрения компиляции, только ключевые слова разные. А вот их расширения пошли в разные стороны...
Для микроконтроллеров нужны совершенно другие специфические расширения, и если бы паскаль развивали точно так же упорно как С - разница в программировании была бы на уровне написания ключевых слов.
Но мы имеем то, что мы имеем. Да и неправда это, паскаль - гораздо более строгий по правилам язык. У него идеология другая. На Сях можно изобразить что угодно, и отстрелить себе ногу. На паскале создатели языка позаботились о том, чтобы у меня было поменьше возможностей отстрелить себе ногу, но гибкость языка при этом пострадала. При программировании в условиях ограниченных ресурсов очень часто приходится сознательно стрелять в непосредственной близости от ноги.
Последний раз редактировалось Tolmi Сб май 19, 2012 15:13:50, всего редактировалось 1 раз.

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 15:06:17

А я не пытаюсь доказать, что учителям кардинально тяжелее, чем инженерам. У них есть свои проблемы, непонятные большинству. Как и у инженеров — непонятные учителям. Но при этом это «большинство» считает, что «учителя должны ...» несколько больше, чем они сами.

КРАМ писал(а):Но если проект требует знаний в области, например, щелевых антенн, то, либо фирма не возьмет этот заказ, либо наймет инженеров с необходимой квалификацией, либо найдет субподрядчика с соответствующим портфолио.
А если проект потребует программистов на языке, которым на фирме никто не владеет? (это по поводу бейсика, паскаля и прочих языков на информатике в школе)
Какого субподрядчика может найти школа?
Куда она наймёт учителей, знающих питон (и кто из знающих питон согласится пойти? ;) ), если ставки и штатное расписание утверждены «высоко», деньги на зарплату вообще в бюджете страны заложены. Да, собственно, и права заменить бейсик на питон у них особого нет.

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

КРАМ писал(а):Что касается времени, то у учителей его как раз больше, поскольку нет временного цейтнота с заказчиком.
Да, конечно. Есть даты контрольных работ, разных «директорских», «министерских» («государственных») аттестаций, которые не сдвигаются на позже из-за карантинов/эпидемий. Но могут подвинуться на раньше, «Евро-2012» у нас сейчас крепко крови попило.
Говорю же «свою работу видишь каждый день и всю».
Я вот вместо работы (у меня выходные Вс и Пн) сейчас тут торчу. Ну не идёт работа, и всё. Но я уверен, что во вторник-среду нагоню. Учитель этой свободы не имеет. Сегодняшнее должно быть вычитано сегодня, тетради проверены, планы на следующую неделю написаны. Отложить что-то на пару дней даже с намерением потом посидеть дольше и догнать — невозможно. Организация работ как у рабочего на конвейере, а требования как к инженеру.

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 15:41:03

Tolmi писал(а):А теперь покажите
Да не работаю я на паскале! Просто я не вижу больших проблем в его применении. Если на «электронику-60» возле КАМАК-стоек в 1985-1988 годах мой знакомый из соседней лаборатории написал систему управления экспериментом на паскале (включая интерпретатор разработанного им специализированного языка управления установкой, чтобы физики реже его дёргали), то почему нельзя им пользоваться на ARM?
Напоминаю — у «Электроники-60» максимум памяти под программу и данные аж 56 килобайт, время выполнения одной команды — единицы микросекунд, в зависмости от команды.

Tolmi писал(а):Или вот ещё, у меня достаточно часто используется таблица адресов функций, и потом косвенный переход по адресу со смещением(как правило, равным значению некоторого аргумента. Замечательный метод для закладки потенциальных глюков, я знаю, но он позволяет существенно экономить код)
Отличный метод. Можно не только функции, можно целые структуры в массив пихать, в которых и функции, и текст меню к ним, и вааще. И собирать их из разных файлов в один массив автоматически.
Что-то такое должно быть.
Код:
procedure p1;
begin
    writeln( 'proc1' );
end;

procedure p2;
begin
    writeln( 'proc2' );
end;

procedure p3;
begin
    writeln( 'proc3' );
end;

var
  selector : integer;
  prc : array [1..3] of procedure = ( @p1, @p1, @p3 );

begin
   writeln( 'Enter number in range 1..3' );
   readln (selector);
   if (selector < 1) or (selector > 3) then
        writeln ('Invalid number!')
   else
        prc[ selector ];
end.

Код:
real@real-desktop:~$ ./foo
Enter number in range 1..3
0
Invalid number!
real@real-desktop:~$ ./foo
Enter number in range 1..3
1
proc1
real@real-desktop:~$ ./foo
Enter number in range 1..3
2
proc2
real@real-desktop:~$ ./foo
Enter number in range 1..3
3
proc3
real@real-desktop:~$ ./foo
Enter number in range 1..3
4
Invalid number!
real@real-desktop:~$
И фрагмент кода — ветка с выбором процедуры из массива.
Код:
.Lj81:
# [43] prc[ selector ];
        movswq  %r12w,%r12
        shlq    $3,%r12
        movq    U_P$PROGRAM_PRC-8(%r12),%rax
        call    *%rax
.Lj93:
# [45] end.

Tolmi писал(а):И что там с реентерабельностью рантайма, уже все глюки в ваших паскалях выловили?

В каких таких «наших»? Я на паскале писал только «конкурс красоты компиляторов» для предполагаемых мной алгоритмов в 1988 году, немного на Turbo Pascal 1.0 под CP/M на микропроцессоре Z80 (ага, хорошая мега помощнее будет) и пару лет назад на TP6 в dosbox в линуксе, когда у дочки в школе он пошёл. В сумме — до тысячи строк за все эти годы. Ну вот ещё пару десятков добавил.
В C тоже не всё с реентрабельностю выловлено было не сразу. Вопрос не пригодности языка как такового.

p.s. Есть там инициализация, всё нормально. Исправил.
Последний раз редактировалось avreal Сб май 19, 2012 15:53:34, всего редактировалось 1 раз.

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 15:52:12

avreal писал(а):И фрагмент кода — ветка с выбором процедуры из массива.
Код:
.Lj81:
# [43] prc[ selector ];
        movswq  %r12w,%r12
        shlq    $3,%r12
        movq    U_P$PROGRAM_PRC-8(%r12),%rax
        call    *%rax
.Lj93:
# [45] end.


Что-то код совсем не паскальный, аж нисколько. Не по правилам языка. Я имею в виду, что нет проверки на границы массива, к примеру. И ещё много чего другого Это уже не паскаль, а какой-то Си недоделанный. Такой паскаль вполне можно использовать и для разработок под МК. Но только из такого паскаля выхолостили саму суть языка - строгость конструкций и контроль за действиями программиста. Тогда в чём смысл его применения по сравнению с Сями ?

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 15:59:01

В debug версии можно (причём по-unit-но)
-Ci Generate Input/Output checking code.
-Co Generate Integer overflow checking code.
-CR Verify object call validity (method calls mustbe valid).
-Cr Generate Range checking code.
-Ct generate stack checking code.
и ещё там что-то есть.

Но на Вас не напасёшся — я уже хотел написать, что разговор может быть бесконечным.

Даже без run-time проверок паскаль более строг.
А тут, кстати, при хорошо допиленном оптимизаторе он и не должен свою проверку вставлять — по ходу кода не может попасть неправильное, статическим анализом кода это определяется.
Но он при -Cr код проверки вставил :-)

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 16:47:50

Ей, крутые пенсионеры, вы чего развели ? :))) :)))
Тема как радиогубителям (считай = новичкам и чайникам, в местных реалиях) на АРМы подсесть, а не шокировать их тонкостями оптимизации компиляторов и прочим, что они будут обходить за километр :))) :)))

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 16:48:49

IAR Kickstart Edition абсолютно бесплатен. С ограничением в 32 кБ.

На сайте IAR я такого не нашел для STM32, только STM8. Он повидимому он идет ТОЛЬКО в комплекте с начальным набором за 150 евров минимум. Нельзя сказать что это "бесплатный" вариант.

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 17:02:32

Alexeyslav писал(а):
IAR Kickstart Edition абсолютно бесплатен. С ограничением в 32 кБ.

На сайте IAR я такого не нашел для STM32, только STM8

Потому что нет никакого IARа для STM32 :)))
Есть IAR EW for ARM. для ВСЕХ сразу и один.

Лей http://supp.iar.com/Download/SW/?item=EWARM-KS32

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 17:04:08

Alexeyslav писал(а):
IAR Kickstart Edition абсолютно бесплатен. С ограничением в 32 кБ.

На сайте IAR я такого не нашел для STM32

Странно, я нашел с первой попытки:
Изображение
Список поддерживаемых контроллеров от ST на несколько страниц.

В этой теме половина постов и споров из-за нежелания или скорее неумения искать информацию. Особенно если она лежит на виду :)
Вложения
Без имени.jpg
(22.46 KiB) Скачиваний: 603

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 17:05:19

md5sum писал(а):В этой теме половина постов и споров из-за нежелания или скорее неумения искать информацию. Особенно если она лежит на виду :)

Половина ??? :)))
Я думаю, чтото между 98 и 99.5 процентами

Re: Почему не популярен ARM среди радиолюбителей?

Сб май 19, 2012 18:18:44

Вообще-то 100%. Все ответы рано или поздно можно найти и самостоятельно, вопрос в том сколько это времени займет.

Вот никогда бы не подумал, если везде STM32 идет отдельной строчкой а тут надо догадаться что он принадлежит подмножеству ARM и выбирать надо его. Да и вообще, кто догадается его искать в загрузках? Только тот кто уже прошел этот путь. И там нигде нет упоминания об ассемблере. Вот как простой человек, который ничего не знает об этих контроллерах может выбрать то что ему нужно? Поэтому и не приживается он никак в радиолюбительской практике если столько препятствий нужно обойти только лишь чтобы заполучить инструмент разработки.
Тема закрыта