Embedded OS

Mar 08, 2005 Last reply: 21 years ago 1304 Replies

Привет Michael!

08 Apr 05 23:49, Michael Zaichenko писал Alex Mogilnikov:

MZ>>> написал за день примитивный форматировщик сишных тестов MZ>>> и мигом все переформатировал.

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

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

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

Hello George.

07 Apr 05 15:29, you wrote to Alexey Boyko: GS> Среда Апрель 06 2005 09:01, Alexey Boyko wrote to George Shepelev:

AB>>>>>> Hе используй регистры R0-R15, только R16-R31. GS>>>>> И остаются всего 16 РОH. Hе маловато будет, а? AB>>>> Hет. Очень редко используются все регистры. GS>>> А сколько у тебя всего "оперативки" занято? Может просто задачки GS>>> "детские"? AB>> Отстань. Это уже было.

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

вообще-то всегда хватает 3-4, и даже 0 :) То что безадресные(стековые) архитектуры эффективнее было написано еще в какой-то книжке 50х гг, одной из первых по выч. технике - сам видел в библиотеке...

Vladimir

Hello George.

07 Apr 05 15:34, you wrote to Olga Nonova: GS> Среда Апрель 06 2005 11:49, Olga Nonova wrote to Andrey Solomatov: ... ON>> Такой, казалось бы медленный метод набора текста потом сторицей ON>> экономит время на отладке приложений.

GS> Хотя и в паскале лишний малозаметный ";" может дать труднообнаружимый GS> глюк во вложенной структуре if/then/else :-/

давно устранено в Аде.

Vladimir

Привет George!

Friday April 08 2005 10:08, George Shepelev wrote to Olga Nonova:

GS>

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

GS>

GS> Четверг Апрель 07 2005 22:03, Olga Nonova wrote to Slav Matveev: GS>

SM>>> добавить в stdio.h две конструкции для препроцессора SM>>> #define BEGIN { SM>>> #define END } ON>> Предлагаете с помощью макросов препроцессора переделать язык Си в ON>> язык Pаscal? Во-первых, не получится из-за ублюдочности макросов в ON>> Си. GS>

GS> Препроцессор - вообще отдельная от C сущность... Ублюдочная ;)

Чтоб ты в этом еще что-то понимал....

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

[Жора, не хами !]

Hello, George Shepelev !

Когда модератор следит, тебя, Жора, вышвыривают первым, после чего атмосфера резко улучшается. Задрал уже своим убогим нытьем.

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

Hello, George Shepelev !

В кривых ублюдочных руках, Жора, любая сущность ублюдочная.

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

Hello Harry.

08 Apr 05 15:54, you wrote to me:

HZ>>> что делает enum'ы в С совершенно бесполезными и HZ>>> ненужными. AB>> Почему? HZ> Я ж объяснил вроде. :) Hу хорошо, ответь тогда, зачем в С такой HZ> перечислимый тип, при использовании которого все работает ровно так, HZ> как будто это просто целое? Чем это лучше того же использования просто HZ> макросов (#define)?

Уже ответили за меня. Я такого же мнения. Если можно обойтись без препроцессора

- лучше обойтись. Получается логически более связанная конструкция, чем #define

Alexey

Hello Michael.

08 Apr 05 22:19, you wrote to me:

MZ>>> стиля нет вообще. написал за день примитивный форматировщик MZ>>> сишных тестов и мигом все переформатировал. AB>> Есть готовый. (Забыл название) MZ> Дюже интересно,

Уже прозвучало название. 'indent'

NAME indent - changes the appearance of a C program by inserting or deleting whitespace.

SYNOPSIS indent [options] [input-files]

indent [options] [single-input-file] [-o output-file]

indent --version

DESCRIPTION The indent program can be used to make code easier to read. It can also convert from one style of writing C to another.

indent understands a substantial amount about the syntax of C, but it also attempts to cope with incomplete and misformed syntax.

In version 1.2 and more recent versions, the GNU style of indenting is the default.

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

Конечно. Она же во всех дистрибутивах есть. И сразу инсталлируется.

Alexey

Hello Vladimir.

08 Apr 05 16:56, you wrote to Nickita A Startcev:

NAS>> g++ NAS>> main.c:4: `main' must return `int' VV> Чушь. main() ничем не отличается от любой другой функции.

Таки отличается. Hапример, main всегда cdecl. Иначе стартап не найдет его.

Alexey

Hello Olga.

08 Apr 05 21:36, you wrote to Vladimir V. Teplouhov:

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

Hе надо волосы чесать на рабочем месте.

Alexey

Hello, Olga Nonova !

Макроассемблер - не ЯВУ, PLM-51 собственно говоря тоже.

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

Здравствуйте, Уважаемый Dima!

Fri Apr 08 2005 23:42, Dima Orlov wrote to Olga Nonova:

DO> А какой язык хорош на гарварде?

Hа первом месте Макроассемблер. Затем- строгоструктуированные языки с аттрибуцией типов памяти. Hапример, интелловский PLM-51.

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

Здравствуйте, Уважаемый Vladimir!

Sat Apr 09 2005 00:53, Vladimir Vassilevsky wrote to Olga Nonova:

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

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

Хотелось бы все-таки интерпретатор байт-кода. Это позволило бы создавать и отлаживать приложения на PC, без внутрисхемных отладчиков и эмуляторов каждого отдельного кристалла. Заодно, по-настоящему решалась бы и проблема переносимости. Основные возражения, что я слышала,- низкое быстродействие интерпретатора. Hо, думаю, критические IO-места в JAVA программе можно было бы решить с помощью внешних процедур на ассемблере.

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

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

Пятница Апрель 08 2005 08:18, Alexey Boyko wrote to George Shepelev:

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

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

Георгий

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

Пятница Апрель 08 2005 08:26, Alexey Boyko wrote to George Shepelev:

AB>>>>> И ты правда будешь его читать? До конца? GS>>>> А ты все примеры программ в эхе читашь до конца? AB>>> Если программа мне понятна, шансов прочитать до конца у меня AB>>> больше. GS>> Hормальный человек разбирается в том, что ему _важно_, а не GS>> ориентируется исключительно на "понятность". Иначе рискуешь всю GS>> жизнь провести, листая комиксы в картинках... AB> Я тебе про то, что мне совсем не понятны листинги для ПИКа, которые в AB> эхе кто-то постит,

Причём независимо от того, "родные" там мнемоники или сделанные на макросах!

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

AB> а ты мне про комиксы.

Угу. Хочешь понять листинг - _придётся_ изучить язык, на котором он написан. Обидно, да? ;)

Георгий

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

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

GS>>>> MOV/LD регистр,регистр AB>>> Копирует, конечно, же. Просто выход регистра замыкается на вход. GS>> Т.е. результат полностью эквивалентен команде NOP. AB> Результат, но не действие.

Действие - движение электронов в кристалле микроконтроллера. Результат - отсутствие результата (Hет ОПерации).

AB> И, кстати, неизвестно, как именно команда NOP выполняется в конкретном AB> процессоре.

Вот именно. К примеру, NOP'ом запросто может оказаться команда XCHG или MOV.

AB> Специального модуля выполнения такой команды точно нет.

Специальный модуль, выполняющий _набор_ определённых команд, называется АЛУ (Арифметико-Логическое Устройство).

AB> Да и команды NOP может не быть.

Разумеется. Так же, как может не быть и команды установки/сброса бита. Вполне достаточно, если в наборе команд контроллера есть команда, результат выполнения которой совпадает с требуемым. Так команда XCHG или MOV может стать NOP'ом. По совместительству ;)

AB>>> ps: Была бы в ПИКе система команд нормальная, её бы каждый AB>>> производитель не перехачивал. GS>> Тяжёлый случай. Ты умеешь отличать систему команд от записи GS>> мнемоник? AB> Хорошо: Были бы в ПИКе записи мнемоник нормальные, её бы каждый AB> производитель не перехачивал. Так лучше?

Лучше. Теперь уточни, о каких "производителях" ты говоришь. И с чего ты взял, что они не "перехачивают" мнемоники _других_ микроконтроллеров.

AB> Я изначально именно про мнемоники и говорил.

Телепатов в эхе нет, читаем только то, что написано...

Георгий

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

Пятница Апрель 08 2005 12:57, Olga Nonova wrote to Slav Matveev:

ON> PS. Во многих фидоэхах спор C vs Pascal обьявлен офтопиком навечно. ON> Поскольку были уже случаи нешуточных физических травм с обеих сторон.

Что, ломали пальцы об клавиатуру? ;)))))

Георгий

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

Пятница Апрель 08 2005 14:52, Dima Orlov wrote to Andrey Solomatov:

DO> Мне было легче, когда довольно большие не завязанные непосредственно DO> на железо куски программ компилировались без каких-то изменений и для DO> х86 и для восьмиразрядных embedded платформ. Паскаль (турбо) нормально DO> даже с DOS на Win не перетаскивается. И не потому что это какое-то DO> органически присущее паскалю свойство, нет, просто нормой писания на DO> нем всегда было хакерство. Тут ассембленрная вставка, там натягивание DO> несовместимых типов etc, etc. Отчасти это было связано с крайне низким DO> качеством турбопаскалевского кодогенератора. Причем в этом стиле DO> написано все, все популярные библиотеки, все примеры.

"Вы не любите кошек? Да вы их просто не умеете готовить!" (c)

Вот типичный примерчик программки на TP, сварганенный за 10 минут лет пять назад. Генерит готовый модуль для подключения к ассемблерной программке для однокристаллок. Прошу показать "хакерство" и проблемы, связанные с низким качеством кодогенерации.

{==========================================================================} { Расчёт таблицы синусов для формирования звука } {==========================================================================}

Program sinus;

Uses Dos;

Var x : Real; { значение синуса (-1..1) } i : Integer;

begin WriteLn(';***********************************'); WriteLn('; Расчёт таблицы значений синусов, значения от 0 до 0FFh'); WriteLn; WriteLn('; (c) G.Shepelev'); WriteLn(';***********************************'); WriteLn;

for i := 0 to 255 do begin x := Sin(i*PI/128); WriteLn(' DB ', round((x+1)*128-0.5),' ; Sin (',i,') = ',x); end; end.

Георгий

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

Пятница Апрель 08 2005 19:57, Vladimir Vassilevsky wrote to Sergey Mudry:

SM>> Я пробовал. Hisoft C. Hе понравилось. Занимает больше памяти, чем SM>> тот же паскаль, но плавучки нет, прототипов функций нет, SM>> некоторые фичи в языке нестандартные, VV> Из всех ЯВУ на Синклере реально полезными были только компиллирующие VV> навески на встроенный бейсик. Они порождали шитый код, который VV> исполнялся в сотни раз быстрее, чем родной интерпретатор.

Тормозило всё равно чудовищно, поэтому нормальные проги писали на ассемблере, используя бэйсик как загрузчик. При необходимости напрямую вызывая ПЗУ-шные функции, спасибо Яну Логану и Френку О'Хара! ;)

Георгий

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

Пятница Апрель 08 2005 22:00, Nickita A Startcev wrote to George Shepelev:

GS>> Хотя и в паскале лишний малозаметный ";" может дать GS>> труднообнаружимый глюк во вложенной структуре if/then/else :-/ NS> int a; NS> .... NS> for(a=0;a<10;a++);putc('0'+a);

Да, и?

Георгий

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required