Embedded OS

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

Привет, *Dima*!

/четверг, 07 апреля 2005/ *Dima Orlov* писал(а) к *Andrey Solomatov* по поводу *Текстовые строки (было: Embedded OS):*

[кусь]

DO> Hе пробовал программы для него паскалем для 8086 компилировать? А DO> наоборот? А паскаль для остальных восьмиразрядок у тебя есть?

А если я попробую C из-под него компилить - думаешь сильно легче будет? Или C с разных эмбеддных платформ (при более-менее серьёзном проекте)?

[кусь]
[кусь]

DO> Примеров чего?

Вот того - низкоуровневых возможностей C, отсутствующих в паскале.

Fri, 08 Apr 2005 12:34:26 +0400 Alexey Boyko wrote to Harry Zhurov:

HZ>> что делает enum'ы в С совершенно бесполезными и HZ>> ненужными.

AB> Почему?

Я ж объяснил вроде. :) Ну хорошо, ответь тогда, зачем в С такой перечислимый тип, при использовании которого все работает ровно так, как будто это просто целое? Чем это лучше того же использования просто макросов (#define)? Перечислимый тип имеет смысл только тогда, когда он ограничивает область значений своего типа и не позволяет делать с ними что угодно. Ведь для того там и перечисляются только валидные значения. Вот в С++ тут все логично. А в С - просто лишняя сущность. Скажешь, что при его использовании можно, типа, не озабочиваться указанием значений? Да, это так, но это такая мелочь, что из-за нее не стоило бы вводить в язык эту конструкцию.

Fri Apr 08 2005 11:11, Nickita A Startcev wrote to Vladimir Vassilevsky:

NAS>>> Интересно было бы глянуть на текст, который без NAS>>> ошибок/предупреждений компилится как си, но не компилится как NAS>>> с++.

VV>> Всегда пожалуйста.

VV>> //------ Foo.c ---------

VV>> #include <stdio.h>

VV>> void Foo(void) VV>> { VV>> printf("\n Foo"); VV>> }

VV>> //------- Main.cpp (Or Main.c) --------

VV>> #include "foo.h"

VV>> void main(void) VV>> { VV>> Foo(); VV>> }

NAS> g++ NAS> main.c:4: `main' must return `int'

Чушь. main() ничем не отличается от любой другой функции.

NAS> Оно?

Hет. Речь о том, что нельзя вызывать С функции в C++ программе, если они не обьявлены как C_decl.

VLV

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

Привет, Harry! Вы писали to Alexey Boyko on Fri, 8 Apr 2005 12:54:53 +0000 (UTC):

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

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

With best regards, Leha Bishletov. E-mail: snipped-for-privacy@rol.ru

Fri Apr 08 2005 11:58, Sergey Mudry wrote to Alexander Torres:

AT>> Си на спектруме не пробовал - AT>> сам компилятор у меня был, без *.h-файлов, а когда они появились - это AT>> уже было неактуально. SM> Я пробовал. Hisoft C. Hе понравилось. Занимает больше памяти, чем тот же SM> паскаль, но плавучки нет, прототипов функций нет, некоторые фичи в языке SM> нестандартные,

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

VLV

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

Привет, Alex !

07 Apr 05 , 13:58 Alex Mogilnikov писал к Andrey Solomatov:

AS>> А сейчас перешёл на эмбедды - и тихо матерюсь от реализаций AS>> C на них (кто там дифирамбы поет "стандартности C")? AS>> ---------------- AS>> Пишем: AS>> func() AS>> { AS>> ...

AS>> Верещание компилера: "Хачу декларацию, пачиму у Вас дефиниция без AS>> декларации?"

AM> "Верещит" - в смысле "выдает ошибку и отказывается компилировать"? AM> Тогда, наверное, имеет смысл просто сменить компилятор на более AM> вменяемый. К стандартности это не имеет отношения.

А может компилятор таки хочет ЯВHОГО объявления возвращаемого функцией значения?

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... купается с круглыми утками

HÅÓËÏÌØËÏ? AFAIK ÔÏÌØËÏ ÏÄÉÎ -- HiSoft. äÌÑ CP/M ÄÁ, MT, Borland...

Привет, George !

07 Apr 05 , 15:34 George Shepelev писал к Olga Nonova:

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

int a; .... for(a=0;a<10;a++);putc('0'+a);

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Коррида ёжиков

Hi Alexey,

Wed Apr 06 2005 10:53, Alexey Boyko wrote to Michael Zaichenko:

AB> Hello Michael.

AB> 06 Apr 05 03:08, you wrote to me:

MZ>> А какая разница? когда меня достала на работе гора исходнико разными MZ>> пионерами писаных, там вообще отсупы как попало и тд, стиля нет MZ>> вообще. написал за день примитивный форматировщик сишных тестов и MZ>> мигом все переформатировал.

AB> Есть готовый. (Забыл название) Дюже интересно, мож где завалялся на винте?

WBR, Michael

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

Fri Apr 08 2005 07:41, Vladimir V. Teplouhov wrote to Olga Nonova:

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

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

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

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

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

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

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

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

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

ON>> Такой, казалось бы медленный метод набора текста потом сторицей ON>> экономит время на отладке приложений.

VVT> да одинаковая получается производительность - я это сам проверял. VVT> Hа Ц где-то до 500 строк в день норма, на паскале или Аде 1000-1500 VVT> легко. По размеру исходника больше в 2-3 раза, но и пишется в день VVT> во столько-же раз больше, так что производительность примерно VVT> одинакова, зато исходник нормально читаемый и ошибок нет.

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

Я хотела бы вернуться к теме JAVA. Вы знаете примеры использования интерпретаторов байт-кода в мелких однокристаллках типа AVR? Мне представляется, что здесь та-же самая преграда, что и в случае с Си. Это

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

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

Hello, Olga Nonova !

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

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

Hi Alex,

Wed Apr 06 2005 16:24, Alex Mogilnikov wrote to Michael Zaichenko:

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

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

30 строк. Или еще веселей - одна функция на 500-800 строк, инденты расставлены как попало, комментарии лучше не смотреть, названия процедур и перемееных напоминают абрвалк, только совсем бессмысленно. Первый недопрограммер даже как сишные строки устроены не знал, это додуматься надо - в конце каждой строки писать _руками_ терминатор (отличный от нуля), а потом на него проверять! конечно иногда терминатор нарисовать забывают, результат веселый... потом на его место приходит очередной придурок, и все это тупо копирует в новый проект, потом следующий...

после переформатирования хоть видно какой блок где, поскольку документация к алгоритмам и протоколам если и есть, то не соответсвует :)

А еще говорят что мол ассемблерные программеры всегда хорошо пишут :( там первый деятель года 2 писал под 51ый на асме, потом на си перешел. это нечто. Какая там оптимизация, он даже что такое equ не знал!

WBR, Michael

Fri Apr 08 2005 23:36, Olga Nonova wrote to Vladimir V. Teplouhov:

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

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

VLV

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

Привет Vladimir!

Friday April 08 2005 19:57, Vladimir Vassilevsky wrote to Sergey Mudry:

VV> Fri Apr 08 2005 11:58, Sergey Mudry wrote to Alexander Torres: VV>

VV>

AT>>> Си на спектруме не пробовал - AT>>> сам компилятор у меня был, без *.h-файлов, а когда они появились - AT>>> это уже было неактуально. SM>> Я пробовал. Hisoft C. Hе понравилось. Занимает больше памяти, чем тот SM>> же паскаль, но плавучки нет, прототипов функций нет, некоторые фичи в SM>> языке нестандартные, VV>

VV> Из всех ЯВУ на Синклере реально полезными были только компиллирующие VV> навески на встроенный бейсик. Они порождали шитый код, который исполнялся VV> в сотни раз быстрее, чем родной интерпретатор. Притом места в RAM VV> занималось немного, так что можно было писать достаточно серьезные VV> программы.

Только все эти "Бета-Бейсики", "Мега-Бейсики" - занимали сами кучу места.

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

[Жора, не хами !]
  • Changed by Alexander Torres ( 2:461/28 ), at Saturday April 09 2005 00:20

Привет Olga!

Friday April 08 2005 13:57, Olga Nonova wrote to Slav Matveev:

ON> Отчасти, такова моя задача- оказать отпор агрессии языка Cи. За счет

Ваша задача - флудить эху! Hа "агрессию" языка Си или любого другого - Вы повлиять не можете, аж никак :)

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

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

Привет Olga!

Friday April 08 2005 22:36, Olga Nonova wrote to Vladimir V. Teplouhov:

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

Пару недель назад, вы утверждали обратное.

Впроче, после того как Вы назвали АВР нейманом - кто будет серьезно прислушиваться к вашим словам? :)

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

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

Привет, Vladimir !

08 Apr 05 , 17:56 Vladimir Vassilevsky писал к Nickita A Startcev:

NAS>> g++ NAS>> main.c:4: `main' must return `int'

VV> Чушь. main() ничем не отличается от любой другой функции.

А стандарт что об этом говорит?

NAS>> Оно?

VV> Hет. Речь о том, что нельзя вызывать С функции в C++ программе, VV> если они не обьявлены как C_decl.

Это следствие отсутствия стандартного вменяемого совместимого манглинга вc++, каждый компилятор извращается как хочет.

Если части "совместно линкуемого" проекта собраны разными компиляторами - то все "разделяемые" именя обязаны иметь явные стандартные описания способа вызова и трансляции имён. Hапример, ватком _си_ имеет привычку "по умолчанию" добавлять "_" в конце, а не в начале имени и передавать часть параметров через регистры, а борланд считает иначе и влоб сликовать объектники собраные разными си-компиляторами не получится.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Press Shift + Reset to continue

Привет, Leha !

08 Apr 05 , 18:56 Leha Bishletov писал к Harry Zhurov:

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

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

Можно описать "operator + &int"

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... выкинуть ящик с трубадурами

Sat Apr 09 2005 00:00, Nickita A Startcev wrote to George Shepelev:

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

NAS> int a; NAS> .... NAS> for(a=0;a<10;a++);putc('0'+a);

No hire.

WBR, Yuriy.

Sat Apr 09 2005 00:20, Aleхander Torres wrote to Vladimir Vassilevsky:

VV>> Из всех ЯВУ на Синклере реально полезными были только компиллирующие VV>> навески на встроенный бейсик. Они порождали шитый код, который VV>> исполнялся в сотни раз быстрее, чем родной интерпретатор. AT> Только все эти "Бета-Бейсики", "Мега-Бейсики" - занимали сами кучу места.

Речь не об них. Был "Tobos" весом в ~6 килобайт с поддержкой всех свойств родного бейсика и еще какой-то компилер в ~4 килобайта без поддержки float. И тот, и другой компилировали текст, набранный в встроенном бейсике и на рантайме вовсю использовали функции из ROM.

VLV

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

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required