Embedded OS

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

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

Среда Апрель 06 2005 09:15, Alexey Boyko wrote to George Shepelev:

GS>> Попробуй поглядеть ассемблерные мнемоники в _доке по GS>> ассемблеру_, а? Может сильно попустить ;) AB> Если соберусь писать для ПИКа на ассемблере - погляжу обязательно. А AB> пока ограничиваюсь даташитами.

Вот пока не глядел в доку по ассемблеру - нечего гнать волну на "неудобство" написания программ!

AB>>>> (и копирует ли :)? AB>>> Hазови хоть один процессор, где mov не копирует. GS>> Сколько угодно. GS>> 8080/Z80/x86 GS>> MOV/LD регистр,регистр AB> Копирует, конечно, же. Просто выход регистра замыкается на вход.

Т.е. результат полностью эквивалентен команде NOP. Что копирует команда NOP?

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

Тяжёлый случай. Ты умеешь отличать систему команд от записи мнемоник?

Георгий

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

Среда Апрель 06 2005 09:17, Alexey Boyko wrote to George Shepelev:

AB>>> И ты правда будешь его читать? До конца? GS>> А ты все примеры программ в эхе читашь до конца? AB> Если программа мне понятна, шансов прочитать до конца у меня больше.

Делать тебе нечего ;)

Hормальный человек разбирается в том, что ему _важно_, а не ориентируется исключительно на "понятность". Иначе рискуешь всю жизнь провести, листая комиксы в картинках...

Георгий

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

Среда Апрель 06 2005 11:49, Olga Nonova wrote to Andrey Solomatov:

AS>> вообще-то слово "begin" длиннее. И по этому - легче AS>> идентифицируется. А скобки на некоторых шрифтах бывают вообще AS>> плохо читаемы. ON> Тут дело даже не столько в "читаемости" скобочек, сколько в пагубной ON> торопливости, с какою можно шлепнуть лишнюю скобочку в текст одним ON> нажатием. Вообще, язык Си рассчитан на торопливых, которые в диком ON> угаре долбят по клавиатуре, забывая о здравом смысле. Зато, когда не ON> торопясь набираешь BEGIN, то успевашь уже твердо осознать, где будет ON> располжен END и что из этого последует по смыслу.

Hикто не мешает пользоваться редактором, который нехитрой комбинацией клавиш вставляет готовый пустой блок begin/end ;)

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

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

Георгий

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

Среда Апрель 06 2005 17:29, Alexander Golov wrote to Alexey Boyko:

AB>> Hет, не естественно. (imho) AG> Если используется слово "move" означающее "перемещение", то AG> естественен порядок перемещения того, что сразу за словом move куда-то AG> в другое место, потому что не по людски сначала сказать куда AG> переместить, а потом уже что. А для обратного порядка следует AG> использовать слово "присвоить" ("assign", или ещё какой-то синоним).

Сделай макрос, чтобы можно было набирать assign вместо mov ;-)

Георгий

Thu, 7 Apr 2005 06:08:01 +0000 (UTC) Andrey Solomatov wrote to Harry Zhurov:

AS>>> Угу. Вот только почему-то ANSI C проэволюционировал в сторону AS>>> приближения к паскалю по строгости типизации.

HZ>> С какого фига к паскалю-то? К С++!

AS> А C++ на пустом месте рождался?

Нет, С++ рождался не на пустом месте, как и почти любой ЯП. Конкретно, С++ рождался на основе С и Симулы.

AS> Да и мало он был распространён на момент стандартизации.

Стандартизации чего? С? Или С++?

AS>>> Может быть вернёмся к C&R C?

HZ>> А это что?

AS> Керниган и Ритчи. Авторы, вообще-то, "исходного" языка C.

Тогда надо было писать K&R.

AS> Скажем, обявление функции: AS> func() AS> int a; AS> char *c; AS> { AS> } /* это по ихнему */

Это смотря по какому изданию. По 2-му там такого уже нет, уже ANSI вовсю рулит. А до ансишного варианта там вообще было эн диалектов, каждый из которых отличался в мелочах от других, что рубило под корень переносимость. И только после принятия Стандарта через некоторое время навелся порядок. Тогда было модно в первой же строчке проспекта на компилятор сообщать, что, дескать, у нас fully ANSI C compatible - типа, это неоспоримое преимущество. :)

HZ>> Причем тут это? маллоки и прочее - это работа со свободной памятью, HZ>> которая имеет отношение к менеджерам памяти и подобному. А прямое HZ>> обращение к памяти - это прямое обращение к памяти. Или ты не знаешь HZ>> как это делается?

AS> Нет, не знаю. Расскажи.

Стебаешься? Или правда не знаешь?

HZ>> Никакие не "50/50", а именно низкоуровневое (и поэтому опасное, но HZ>> эффективное) средство для манипуляции объектами через их HZ>> непосредственные адреса.

AS> Вот только мне, почему-то, за ~15 лет понадобилось пару-тройку раз. AS> Причём - исключительно в силу "грязности" алгоритма, потом я AS> "это" безжалостно выкинул.

Это потому, что ты на паскале писал. И на РС. А когда на МК подсядешь, так сразу поймешь, в чем "сермяжная правда жизни". :)

HZ>> Сколько программ на С++ ты написал? Сколько строк кода (хотя бы HZ>> очень приблизительно) на С++ ты написал?

AS> Мало, мало, успокойся.

А я спокоен. Хотелось просто узнать, на каком реально опыте основаны те смелые высказывания. :)

AS> Штуки 3 - 4 -5 (если "до конца"). AS> Ты всерьёз хочешь меня уверить, что в C++ легко "выйти за границы"?

"Как два байта переслать" (с)! С++ никого насильно не держит - хочешь нарушить контроль типов - нарушай (через явное преобразование), прога скомпилится без проблем. А вот будет ли работать - это вопрос. При таких действиях программиста ответственность за последствия перекладывается на последнего, но язык не _заставляет_ что-то делать и не вводит непреодолимых ограничений. Другими словами, в нем есть защита от "дурака", но не защита от злонамеренного взлома. Хочешь ломать - ломай, в С++ это так же просто, как и в С.

AS>>> А чем ты предлагаешь пользоваться? AS>>> Переписывать каждый раз все определение типа?

HZ>> ??? А про typedef ты ничего не слышал?

AS> Не люблю typedef.

? А он не девушка, чтоб его любить. Он есть средство для достижения определенной цели. Вполне удобное. И не пользоваться им к месту просто, мягко говоря, неразумно.

AS> Лишняя прибамбасина,

Очень полезная "прибамбасина", позволяет вводить удобные синонимы для типов.

AS> с достаточно невнятным синтаксисом.

Синтаксис у него - проще не придумаешь!

AS> И вообще, если я в C++ пишу:

AS> struct TAbc AS> { AS> // AS> // Здесь дли-иинное определение структуры AS> // AS> }; /* TAbc */

AS> то здесь достаточно ясно и понятно. И typedef не нужен AS> (бо никакой функциональности не несёт).

Здесь не нужен (в С++), но есть места, где нужен.

AS> В C же надо писать:

AS> struct AS> { AS> // AS> // Здесь дли-иинное определение структуры AS> // AS> }TAbc;

Это ты не тип определил, а объект объявил. Нету тут типа. А если написать:

typedef struct TAbc { // // Здесь дли-иинное определение структуры // } TAbc;

то это и будет определение типа. Всего на одно слово длиннее, чем в С++.

AS> Что, во первых, хуже читается - разделено имя типа и его описание; AS> во вторых - тот самый struct; и в третьих - если не охота юзать struct - AS> надо засовывать ещё невнятный typedef.

Ерунда. После определенного с помощью typedef'а просто пишешь:

TAbs Abs;

и все. Почти, как в С++.

AS> Ну его, C++ лучшее. ;))

Да, в С++ лучше, но это _мелочи_.

HZ>> Кстати, какие вещи из С не компилируются в С++?

AS> Ну и плюс - перегрузка.

Причем тут перегрузка? Вопрос был про С программы. Откуда там перегрузка?

AS> Фактически при этом явного выхода за пределы С не происходит - просто AS> делаешь набор get, отличающийся перечнем аргументов.

Ниче не понял! Что такое "набор get"?

AS> [кусь]

HZ>> И на какую платформу ты перешел в ++?

AS> А я и тогда - и до, и после - сидел на писюке. AS> А сейчас перешёл на эмбедды - и тихо матерюсь от реализаций

Вот я и спросил, на какую платформу в ембеддах ты перешел?

AS> C на них (кто там дифирамбы поет "стандартности C")? AS> ---------------- AS> Пишем: AS> func() AS> { AS> ...

AS> Верещание компилера: "Хачу декларацию, пачиму у Вас дефиниция без AS> декларации?" AS> --------------- AS> Добавляю: AS> func(); AS> func() AS> { AS> ...

AS> Визги: "Какая-то непонятная декларация. Как Вы посмели переопределить тип AS> функции func?"

AS> -------------- AS> Оказывается надо: AS> func(void); AS> func() AS> { AS> ...

AS> Тьфу... Кто бы мог подумать...

Ерунда какая-то. Под какую платформу? Какой компилятор?

Привет Harry!

07 Apr 05 15:40, Harry Zhurov писал Andrey Solomatov:

HZ>>> А прямое обращение к памяти - это прямое обращение к памяти. Или HZ>>> ты не знаешь как это делается?

AS>> Hет, не знаю. Расскажи.

HZ> Стебаешься? Или правда не знаешь?

Я вот тоже не знаю, что ты имеешь в виду. Есть разные способы адресации - непосредственная, прямая, косвенная, индексированная, индексированно-косвенная, косвенно-индексированная (сразу 6502 вспоминается :) ) и т.п. Все они в конечном итоге адресуют данные в памяти. И использование переменной - это всегда доступ к памяти. Так что такое особенное есть в языке C и прямом методе адресации при обращении к памяти?

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

Всего наилучшего, [Team PCAD 2000] Алексей М. ... Пирожок тушеный с тушенкой.

Привет Andrey!

Hа Спектруме? Да, там было даже несколько Паскалей, самый лучший - Хай-софт, я на нем кое-что даже писал. Си на спектруме не пробовал - сам компилятор у меня был, без *.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

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

Привет Alexey!

Thursday April 07 2005 13:46, Alexey Boyko wrote to Andrey Solomatov:

AS>> Винда, скажем, изначально писалась на паскале.

Windows 1.0 действительно написан на Паскале.

AB> Это ты по паскалевскому соглашению о вызовах определил?

Потому они и сохранились :)

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

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

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

Wed Apr 06 2005 15:39, Slav Matveev wrote to Olga Nonova:

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

SM> добавить в stdio.h две конструкции для препроцессора SM> #define BEGIN { SM> #define END }

Предлагаете с помощью макросов препроцессора переделать язык Си в язык Pаscal? Во-первых, не получится из-за ублюдочности макросов в Си. Во-вторых, не проще ли сразу написать нормальные макросы для макроассемблера, минуя Си вообще? В-третьих, дело совсем не в том, как можно макросами исправить плохой синтаксис, а в другом- разработчики языка Си создавали язык для торопливых и неаккуратных людей. Одно это уже ставит крест на данном "произведении".

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

Hello, Alex Gavrikov !

Этоего личные проблемы...

Я вообще-то мнгого чего видел...

И много за что поубивал бы...

Тогда чего же ты влазишь в эту дискуссию?

А у меня есть опыт (Жоре и не снилось) написания вполне взрослых программ на этом ззыке. И опыт упирания в полнейшую несовместимость даже в рамках РС.

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

Hello, Olga Nonova !

Тяжело наверное жить со столь острым чувством профессиональной несовместимости...

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

Hello, Olga Nonova !

Крест кладбищенский на вас, дорогой коллектив авторов, стоит...

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

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

Wed Apr 06 2005 20:40, Anatoly Mashanov wrote to Olga Nonova:

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

AM> Я, набирая {, нажимаю стрелку-вниз и набираю }. После чего вставляю между AM> ними все, что надо. О горе-программистах, которые рисуют квадратики в AM> VISIO, потом переводят их на бумаге и...

И, тем не менее, Вы наверняка втайне считаете свою работу программистом неким искусством. Где-то на подходе к настоящему творчеству. А раз так, то...надо считаться с фундаментальными особенностями творческого процесса живого организма. Процесс этот может идти только в определенном ритме, обусловленном конструкцией головного мозга. Если человек попытается творить в другом ритме, то результатом будет скорей всего фигня, и придется все равно переделывать. Возвращаясь к эхотагу, сразу отмечу- скоропалительность долбежки в { и } сбивает нормального человека с творческого бетта-ритма. В то же самое время, неторопливые BEGIN ...END образуют устойчивое аллегро в мыслях и сводят на нет семантические ошибки.

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

Здравствуй, Dima!

Wednesday April 06 2005 22:21, you (2:461/ snipped-for-privacy@fidonet.org) wrote to me:

Сименс его так позициониpует.

Точно. Ща отмотал назад. Ха... ты не видел язык пpогpаммиpования Микpодат'ов. Втоpой "еpшолом". Поубивал бы...

DO> Ты невнимательно читаешь конференцию, и рекламу и примеры кода я уже DO> приводил прямо с оригинального сайта, что же в них паскалеподобно?

Dima, чесслово мне пабаpабану, че в них паскалеподобное есть, а чиво нет. Замоpачиваться синтаксическими и семантическими нюансами мне не интеpесно. Есть инстpумент - SCL, котоpый удобнее чем LAD (РКС), меня это устpаивает. Используется в pабочих пpоектах. В сеpьезных пpоектах. Они pаботают. Сознаюсь - pure Паскаль я не знаю. Hет! Есть опыт написания на безpыбье четт типа Hello, world лет 10 назад на TP.

Сименс уважаемая фиpма - мне этого достаточно. Их выкpутасы опpавдывают pекламные цели... или наобоpот. А pазбиpаться в тонкостях языков... это от лукаваго - забава для гуманитаpиевъ. Тебе надо споpить не со мной, а с "Сименсом". Так мол и так, на каком основании, вы, дяденьки нехоpошие, назвали свой SCL паскалеподобным? А?!! И доколе сие безобpазие буде бысть?!!

p.s. Этот тpед уже сваливает в hole war. Hу его нах. p.p.s. Для твоего успокоения говоpю фpазу: "увы мне, увы!" и делаю вид, что посыпаю голову пеплом сожженого дистpибутива и мана SCL.

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

Alex

Привет Olga!

Thursday April 07 2005 23:20, Olga Nonova wrote to Anatoly Mashanov:

ON> придется все равно переделывать. Возвращаясь к эхотагу, сразу отмечу- ON> скоропалительность долбежки в { и } сбивает нормального человека с ON> творческого бетта-ритма. В то же самое время, неторопливые BEGIN ...END 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

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

Thu Apr 07 2005 02:32, Nickita A Startcev wrote to Harry Zhurov:

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

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

//------ Foo.c ---------

#include <stdio.h>

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

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

#include "foo.h"

void main(void) { Foo(); }

VLV

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

Fri Apr 08 2005 00:20, Olga Nonova wrote to Anatoly Mashanov:

ON> И, тем не менее, Вы наверняка втайне считаете свою работу программистом ON> неким искусством. Где-то на подходе к настоящему творчеству. А раз так, ON> то...надо считаться с фундаментальными особенностями творческого процесса ON> живого организма.

- Пойдешь ко мне в штат криэйтором? - Это как, творцом что ли? - Творцы нам на хуй не нужны. Hам нужны криэйторы.

(c) В. Пелевин. "Поколение П".

VLV

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

Hello Olga.

06 Apr 05 12:49, you wrote to Andrey Solomatov: ON> Wed Apr 06 2005 10:32, Andrey Solomatov wrote to Harry Zhurov:

AS>> вообще-то слово "begin" длиннее. И по этому - легче идентифицируется. AS>> А скобки на некоторых шрифтах бывают вообще плохо читаемы.

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

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

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

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

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

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

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

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

Vladimir

Hello George.

07 Apr 05 14:29, you wrote to me:

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

Для твоих тоже хватит.

Alexey

Hello George.

07 Apr 05 14:31, you wrote to me:

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

Я тебе про то, что мне совсем не понятны листинги для ПИКа, которые в эхе кто-то постит, а ты мне про комиксы.

Alexey

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required