Embedded OS

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

Привет George!

Tuesday April 05 2005 10:35, George Shepelev wrote to Alexander Aleshenko:

GS>>> Специально для тебя придётся повторить, мне не нравится, когда в GS>>> мой адрес используется эта кликуха. AA>> Жора не является кликухой, а уменьшительное от Георгий, точно также AA>> как и Александр-> Саша->Шура. И если ты считаешь его кликухой извини AA>> не знал. GS>

GS> И ты будешь в восторге, если любая <beep> будет настойчиво обращаться к GS> тебе исключительно "Шура", "Шурик" и т.п., правда?

Я дума, что ему пофиг.

GS> Дело твоё. Лично я этим <beep> разрешение на уменьшительное обращение GS> не давал.

А у тебя его никто не спрашивал, Жора, и спращивать не собирается.

GS> Помедитируй немного на эту тему, думаю, дойдёт.

Вот - помедитируй над этим, не думаю, но межет и дойдет...

GS> Хорошо бы и до здешнего модератора дошло, что эха не место для тренировке GS> в "искусстве" оскорблений...

Именнно так. Скорей бы.....

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

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

Привет George!

Tuesday April 05 2005 10:45, George Shepelev wrote to Alexey Boyko:

AB>>>> В ПИКе и такого нету. GS>>> А на PIC'ах свет клином сошёлся? AB>> Переходи на ARM. GS>

GS> Я сейчас больше на dsPIC поглядываю ;)

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

пригодится может разве что тебе Жора, не могущему научится работать с другим контроллером, а тем более настоящим ДСП.

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

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

Привет George!

Tuesday April 05 2005 10:46, George Shepelev wrote to Olga Nonova:

GS> (это лечится), а о кривизне архитектуры (примеры уже приводились). GS>

ON>> Правополушарных образов, то бишь. GS>

GS> С каким-то из полушарий у разработчика AVR'ов точно были проблемы. С GS> каким именно, уже не столь важно...

Жора, у европейских разработчиков АВР-ов - никаких проблем с полушариями нет, проблемы есть у фирмы Атмел, у их производителя.

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

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 Michael.

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

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

Есть готовый. (Забыл название)

Alexey

Hello George.

05 Apr 05 10:44, you wrote to me:

AB>> Согласен, что это дело вкуса. AB>> Hо тогда посмотри асм x86. Уж там то точно все одним mov-ом. GS> Который из асмов x86?

Любой.

GS> Лично мне больше всего нравится TASM в режиме GS> Ideal. Hаиболее наглядные записи...

А мне nasm, но какая разница?

Alexey

Hello George.

05 Apr 05 10:45, you wrote to me:

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

Отстань. Это уже было.

Alexey

Hello George.

05 Apr 05 10:43, you wrote to me:

GS> Попробуй поглядеть ассемблерные мнемоники в _доке по ассемблеру_, а? GS> Может сильно попустить ;)

Если соберусь писать для ПИКа на ассемблере - погляжу обязательно. А пока ограничиваюсь даташитами.

AB>>> (и копирует ли :)? AB>> Hазови хоть один процессор, где mov не копирует. GS> Сколько угодно.

GS> 8080/Z80/x86 GS> MOV/LD регистр,регистр

Копирует, конечно, же. Просто выход регистра замыкается на вход.

GS> PIC GS> movf регистр,1 aka test регистр GS> (здесь команда даже на флаги влияет, а копирования нету)

То же самое.

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

Alexey

Hello George.

05 Apr 05 10:45, you wrote to me:

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

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

GS> Кому надо - тот и GS> прочтёт, и разберётся. А кому не надо - тому не надо...

А никому не надо здесь читать. Это делается, обычно, ради собственного удовольствия.

Alexey

Привет, *Harry*!

/вторник, 05 апреля 2005/ *Harry Zhurov* писал(а) к *Andrey Solomatov* по поводу *Текстовые строки (было: Embedded OS):*

[кусь]

HZ> Вообще-то, ты просто не понял: тут не синтаксис показан, а именно HZ> стиль:

И я о том-же. Что-бы добиться ясности текста - необходимо придерживаться чёткого стиля. Иначе... И в C придётся огрести его "радости" по полной.

[кусь]

HZ> Это так на Верилоге,

Извращенцы. ;) На паскале текст, по крайней мере, достаточно хорошо похож на текст на нормальном языке.

[кусь]

AS>> Всё отлично подчёркивается отступами. AS>> И заодно - прекрасно ложится на стандартный размер табуляции.

HZ> И совершенно ничем это не лучше сишного варианта:

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

[кусь]

HZ> А писанины больше, отступов больше. Сплошные минусы.

Я же сказал - основной отступ - табуляция. Для begin/end отступ - 4 пробела. Всё нормально.

[кусь]

HZ> Все всегда определяется программистом, а не языком.

Давай я повторюсь: на паскале *невозможно* написать лихо закрученное выражение, определяющее, скажем, тип. C позволяет делать это.

[кусь]

HZ> Главная причина широкого распространения С - масштабируемость и HZ> сочетание низкоуровневых возможностей с абстрактными элементами ЯВУ.

Ой, да ладно тебе. В чём масштабируемость C, какие-такие у него "низкоуровневые возможности", которых нет у pas?

[кусь]

HZ> А это тут при чем?

Да так, к слову пришлось. ;)

HZ> С++, кстати, синтаксически точно такой же, как С. Там отличия в HZ> сути.

Нэт. (ц) Когда мне пришлось "откатиться", я был удивлён *насколько* C менее удобен, чем C++. Все эти дурацкие

struct my_struct abc, def; вместо

my_struct abc, def;

и куча всяких мелочей, которые обнаруживаются _потом_. В общем, C++ чаще всего нормально компилит текст C, но не наоборот. Даже если C++ пользуется как "улучшенный C".

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

Вторник Апрель 05 2005 18:11, Anatoly Mashanov wrote to George Shepelev:

GS>> Кстати, а как команду обмена (XCHG) "на птичьем" изобразить? Для GS>> "паскальподобных" языков придумана остроумная запись :=: AM> С учетом того, что слева в операторе присваивания стоит АДРЕС, а AM> справа ЗHАЧЕHИЕ (А если стоит адрес, но он все равно низвергается до AM> значения),

Это оператор обмена, а не присваивания ;)

Георгий

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

Среда Апрель 06 2005 03:03, Michael Zaichenko wrote to George Shepelev:

MZ>>> Так, тады в чем разница между разбором (парсингом) и линейным MZ>>> поиском? GS>> Второе есть частный случай первого. MZ> Где об этом пожно почитать?

А на уровне логики не получается? Скажи, возможен линейный поиск без разбора?

Георгий

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

Wed Apr 06 2005 10:32, Andrey Solomatov wrote to Harry Zhurov:

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

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

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

Wed, 6 Apr 2005 05:32:00 +0000 (UTC) Andrey Solomatov wrote to Harry Zhurov:

[...]

HZ>> Все всегда определяется программистом, а не языком.

AS> Давай я повторюсь: на паскале *невозможно* написать лихо закрученное AS> выражение, определяющее, скажем, тип. C позволяет делать это.

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

HZ>> Главная причина широкого распространения С - масштабируемость и HZ>> сочетание низкоуровневых возможностей с абстрактными элементами ЯВУ.

AS> Ой, да ладно тебе. В чём масштабируемость C, какие-такие у него AS> "низкоуровневые возможности", которых нет у pas?

Работа с памятью напрямую. Адресная арифметика. Отсутствие всякого левого "сервиса" на рантайме.

HZ>> С++, кстати, синтаксически точно такой же, как С. Там отличия в HZ>> сути.

AS> Нэт. (ц)

ДА!!! И на С++ можно наворотить такое, что самый извращенный код на С покажется детским лепетом. Все всегда определятся программистом, а не языком.

AS> Когда мне пришлось "откатиться", я был удивлён *насколько* C менее удобен, AS> чем C++. AS> Все эти дурацкие

AS> struct my_struct abc, def; AS> вместо

AS> my_struct abc, def;

Мелочи. Не пользуйся тегами и все.

AS> и куча всяких мелочей, которые обнаруживаются _потом_. AS> В общем, C++ чаще всего нормально компилит текст C, но не наоборот.

Не каждый С текст компилится в С++. Есть несколько нюансов.

AS> Даже если C++ пользуется как "улучшенный C".

Да, это так. Но это далеко не главное достоинство С++ и только из-за мелких вкусностей не стОило бы на него переходить.

Hi Olga!

06 Apr 05 12:49, Olga Nonova wrote to Andrey Solomatov:

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

Барышня, специально для тормозов, даю бесплатный совет: добавить в stdio.h две конструкции для препроцессора #define BEGIN { #define END }

и не высасывать не знаю даже из чего "недостатки" Си, прикрывая этим собственные.

Slav.

Привет Michael!

06 Apr 05 04:08, Michael Zaichenko писал Alexey Boyko:

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

А зачем??? Чем не устроили суещствующие indent?

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

Привет, *Harry*!

/среда, 06 апреля 2005/ *Harry Zhurov* писал(а) к *Andrey Solomatov* по поводу *Текстовые строки (было: Embedded OS):*

[кусь]

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

Угу. Вот только почему-то ANSI C проэволюционировал в сторону приближения к паскалю по строгости типизации. Может быть вернёмся к C&R C?

[кусь]

AS>> Ой, да ладно тебе. В чём масштабируемость C, какие-такие у него AS>> "низкоуровневые возможности", которых нет у pas?

HZ> Работа с памятью напрямую.

Что такое "работа с памятью напрямую"? Угрёбищная затычка malloc/free?

HZ> Адресная арифметика.

Гм. Это где-то - 50/50. В принципе это "те-же яйца, но вид сбоку".

HZ> Отсутствие всякого левого "сервиса" на рантайме.

А в "pas'е" то он откуда?

[кусь]

HZ> ДА!!! И на С++ можно наворотить такое, что самый извращенный код на HZ> С покажется детским лепетом. Все всегда определятся программистом, а не HZ> языком.

Разумеется, на C++ можно наворотить гораздо больше - ибо он (как язык) гораздо богаче C. Впрочем, контроль типов там жёстче, и "наворачивать" придётся "по правилам". А самое главное - гораздо большие выразительные возможности языка позволяют чётче и лаконичнее выделить "основное" в программе, убрав детали реализации куда-нибудь с глаз долой.

[кусь]

HZ> Мелочи. Не пользуйся тегами и все.

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

[кусь]

HZ> Не каждый С текст компилится в С++. Есть несколько нюансов.

Я в курсах. ;)

AS>> Даже если C++ пользуется как "улучшенный C".

HZ> Да, это так. Но это далеко не главное достоинство С++ и только HZ> из-за мелких вкусностей не стОило бы на него переходить.

Ну, я на него перешёл потому, что после бормондовского object pascal обычный "C" ощущаелся как концлагерь. ;) ОПП - вкусная вещь. ;))

[кусь]

Wed, 6 Apr 2005 10:39:51 +0000 (UTC) Andrey Solomatov wrote to Harry Zhurov:

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

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

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

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

А это что?

AS>>> Ой, да ладно тебе. В чём масштабируемость C, какие-такие у него AS>>> "низкоуровневые возможности", которых нет у pas?

HZ>> Работа с памятью напрямую.

AS> Что такое "работа с памятью напрямую"? AS> Угрёбищная затычка malloc/free?

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

HZ>> Адресная арифметика.

AS> Гм. Это где-то - 50/50. AS> В принципе это "те-же яйца, но вид сбоку".

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

HZ>> Отсутствие всякого левого "сервиса" на рантайме.

AS> А в "pas'е" то он откуда?

Эта... Я не знаток паскаля, но про рантаймовые проверки, например, при работе с массивом все же знаю. А ты нет?

AS> [кусь]

HZ>> ДА!!! И на С++ можно наворотить такое, что самый извращенный код на HZ>> С покажется детским лепетом. Все всегда определятся программистом, а не HZ>> языком.

AS> Разумеется, на C++ можно наворотить гораздо больше - ибо он (как язык) AS> гораздо богаче C. Впрочем, контроль типов там жёстче, и "наворачивать" AS> придётся "по правилам".

Сколько программ на С++ ты написал? Сколько строк кода (хотя бы очень приблизительно) на С++ ты написал? Спрашиваю потому, что вышеотквоченное заявление выглядит в высшей степени наивным. Ты с ним в su.c-cpp приходи, там скажи! А я понаблюдаю за реакцией тамошней публики (которая С++ знает несравненно лучше меня, да и тебя, думается, тоже). Особенно любопытно, что скажут про "наворачивать придется по правилам".

HZ>> Мелочи. Не пользуйся тегами и все.

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

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

AS> [кусь]

HZ>> Не каждый С текст компилится в С++. Есть несколько нюансов.

AS> Я в курсах. ;)

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

AS>>> Даже если C++ пользуется как "улучшенный C".

HZ>> Да, это так. Но это далеко не главное достоинство С++ и только HZ>> из-за мелких вкусностей не стОило бы на него переходить.

AS> Ну, я на него перешёл потому, что после бормондовского object pascal AS> обычный "C" ощущаелся как концлагерь. ;) AS> ОПП - вкусная вещь. ;))

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

Привет!

Mon Apr 04 2005 13:44, Olga Nonova wrote to George Shepelev:

...

ON> Я думаю, тут все дело в способе мышления, каким полушарием мозга человек ON> творит. Если правым, то мышление зрительными образами и ему лучше ON> подходят мнемоники AVR-в, да и сами AVR-ы куда как приятнее. Логически ON> собранные из символов команды PIC-в, наоборот, лучше воспринимаются ON> левополушарными людьми. ON> Им логику подавай, а с образами- туговато.

Однако, забавный способ в очередной раз попытаться легализовать себя в качестве женщины, фактически объявив AVR бабским процессором, а PIC мужицким.

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

Привет!

Mon Apr 04 2005 10:19, Alexey Boyko wrote to Alexander Golov:

...

AG>> Т.е. выделить, скажем, из 49 вариантов адресации команды MOV пару AG>> частных случаев, когда с одной стороны адресуется регистр, а с другой AG>> память и назвать это ld/st? Как я понимаю, для тебя это в явном виде AG>> символизирует направление трафика ядро-память ещё на уровне мнемоники, AG>> но это же очень частный случай.

AB> Hе совсем так. ld/st - для load/store архитектуры.

Ну уж PIC18 то явно не из этой категории, dsPIC немного поближе.

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

AB> То есть как в i386? Вот и смотри как там сделано.

Насколько я помню, там как раз всё вытекает их операндов, для пересылок практически одни MOV'ы.

AB>>> Так это куда, W:=fsr2l или fsr2l:=W ? AG>> Естественно -- Move F To W, т.е. FSR2L->W, или алгебраически W=FSR2L.

AB> Hет, не естественно. (imho)

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

AG>> Флажок "f", означает, что результат положить в память (т.е. туда же AG>> откуда взял операнд), "w" -- в wreg. По умолчанию подразумевается "f", AG>> в явном виде нужно указывать только "w". Флажок "c" это HI-TECH'евская AG>> кличка для "a", флажка доступа к Access RAM, при программировании на AG>> ассме указывать не требуется, т.к. автоматически подставляется в AG>> зависимости от объявленного адреса переменной или типа доступа (при AG>> создании перемещаемых модулей).

AB> В даташите ничего нет про поведение конкретных трансляторов асма.

Ну да, нужно читать описания на них.

AG>> как при написании, поэтому я обычно не испытываю каких-либо неудобств.

AB> Я верю, что можно привыкнуть.

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

...

AG>> В чём суть вопросов? Что система команд не очевидна, для того, кто её AG>> впервые видит?

AB> Да.

AG>> Так это про любую можно сказать, AVR в том числе.

AB> Hу, не знаю. Мне после x86 AVR был понятнее. Даже без чтения док можно AB> было примерно представить что делает та или иная команда. С пиком нет. AB> Вроде и понятно, что делает, а откуда берет данные и куда ложит - фиг его AB> знает.

Это лишь вопрос привычки, в данном случае ты имел дело с процами с аналогичными подходами к решениям. Вот и я после многих лет работы с 6502, достаточно легко воспринимал решения от Motorola, и наоборот, попытки программировать 386-й по началу были довольно мучительны, а ещё позже PIC16 в первый момент поставил в ступор своей инопланетностью. Но уже через пару месяцев я вовсю лепил для них программы без каких-либо проблем, а вот неудачная попытка воспользоваться, несколько лет назад, мотороловским HC08 оставила столь удручающее впечатление, что я до сих пор с трудом представляю, что сможет подвигнуть меня ещё раз к ним подойти.

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

Hello Olga!

06 Apr 05 12:49, you wrote to Andrey Solomatov:

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

Я, набирая {, нажимаю стрелку-вниз и набираю }. После чего вставляю между ними все, что надо. О горе-программистах, которые рисуют квадратики в VISIO, потом переводят их на бумаге и наконец отдают девочкам ("Девочка" это не пол и не возраст, это диагноз, как и "Блондинка") набивать, распространяться не буду.

Anatoly

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required