Embedded OS

Mar 08, 2005 Last reply: 21 years ago 1304 Replies
17-Mar-05 05:09 Maxim Polyanskiy wrote to Dima Orlov:

DO>> Оно не просто так отсутствует. Оно просто на фиг не нужно. Хочешь DO>> готовой пищи - иди в ресторан или закажи ее на дом. А заниматься для DO>> этого нетривиальным программированием сложных роботов никто не будет. MP> Ключевое слово "иди". MP> Как известно двигателью прогресса является лень. MP> Еще иногда цена вопроса. MP> Так что это будет изобретено и запрограммированно ;)

Мне почему-то кажется, что раньше появятся автоматизированные микро-кухни на чердаке/в подвале каждого дома и "мусоропроводы наоборот". Так как хоть двигателем прогресса является лень, левая пятка - является дирижёром. И если мне вдруг на ужин захотелось не курицы, а тушеных с овощами кальмаров, детям - по кусочку жареного филе сёмги, а жене - фаршированного судака - то, во-первых, придётся холодильник иметь побольше, во-вторых - одной СВЧ-печки просто не хватит, в третьих - придётся ждать дольше, чем левая пятка согласна, в четвёртых - от переругивания на кухне между слишком разговорчивыми холодильником, парой СВЧ-печек, грилем и парой роботов - мне просто плохо станет.

wbr, p.s. какой, извините, web-интерфейс??? Голосовое управление нужно. Чтобы сквозь дверь ванной можно было с намыленной головой крикнуть "кофе и гренки, пожалуйста!".

Hello Anatoly!

16.03.2005 20:00:18, Anatoly Mashanov wrote to Olga Nonova: ÜËÚÅÍÐÌÑpÅ É ËÏÔÏpÙÅ ÄÏÌÖÎÙ pÁÂÏÔÁÔØ ËÁË ÞÁÓÙ (þÁÓÁÍÉ ÏÎÉ, ÓÏÂÓÔ×ÅÎÎÏ É Ñ×ÌÑÀÔÓÑ). ëÁË ÔÅÂÅ ÎpÁ×ÑÔÓÑ ÞÁÓÉËÉ ÎÁ ÐÉËÅ ÚÁ 50 ËÉÌÏÂÁËÓÏ× ÚÁ ÛÔÕÞËÕ? úÁÄÁÔÞÉË ÎÁ ÍÉËpÏÓÈÅÍÅ? á pÁÃÉÑ ÎÁ ÂpÏÎÅÐÏÅÚÄÅ... óÔÏÉÍÏÓÔØ ÍÉËpÏÓÈÅÍÙ ÉÓÞÅÚÁÀÝÅ ÍÁÌÁ ÐÏ ÓpÁ×ÎÅÎÉÀ ÓÏ ÓÔÏÉÍÏÓÔØÀ ÇÅÎÅpÁÔÏpÁ. äÁ?

Bye, Vitaly.

Thu Mar 17 2005 20:03, Andy Mozzhevilov wrote to Alex Kouznetsov:

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

AK>> Предварительный осмотр виртуала позволяет предположить, что основной AK>> механизм воздействия - плавное передергивание, планомерная генерация AK>> правдоподобного бреда на фоне 100% непробиваемости. Похоже, они взяли в AK>> команду программеров, так что можно ожидать появления сего виртуала в AK>> соответвующих эхах.

AM> Вот думаю, может отшибить ее нафиг на /400 ?

Как знаешь, но я бы оставил. Насколько я понимаю, их интересуют именно реакции, а отшибание - тоже реакция. Ну вроде как в дневниках Йона Тихого, где в послании "Спасем Космос" было описано растение, которое питалось руганью.

В ру.букс виртуал не появлялся с октября прошлого года. В последних комментариях народ ему сочувствовал, мол, некогда знаменитый, этот проект близок к полному загибанию. Так что, похоже, решили влить ему новой крови и напустить на технические эхи. Гы, в ру.букс есть как минимум один программист-завсегдатай высокой квалификации ;-)

Кстати, полное имя виртуала вроде бы "ольга николаевна нонова", что тоже достаточно прозрачно: ник 0=none

Пока, Алексей

Hello, Olga! You wrote to Vladimir Vassilevsky on Sun, 13 Mar 2005 23:29:38 +0300:

ON> "ìÕÞÛÅÅ- ×ÒÁÇ ÈÏÒÏÛÅÇÏ".

"Á ÎÏ×ÏÅ - ÜÔÏ ÈÏÒÏÛÏ ÚÁÂÙÔÏÅ ÓÔÁÒÏÅ" ;-) mC/OS, ÅÓÌÉ ÎÅ ÏÛÉÂÁÀÓØ, Ó 1992 Ç.Ò.

Peter Kostenko

Привет!

Thu Mar 17 2005 08:08, Maxim Polyanskiy wrote to Alexander Golov:

...

AG>> PS: Я всегда удивлялся, почему нельзя было сразу сделать, чтобы это AG>> выполнялось аппаратно: при адресации по FSRx выше 0x1000, обращение AG>> шло к программной памяти (пусть и ценой дополнительного цикла), без AG>> всяких tblptrx и tblrd.

MP> Потому, что тогда бы это был C-ориентированный Гарвард. А подобного бреда MP> природа еще не видела. Специально заточенные под реализацию компилятора MP> команды - это удел отдельных реализаций архитектуры ФонHеймана.

Мда, это уже какие-то навязчивые идеи...

Речь шла прежде всего об удобствах доступа к программной памяти (LFSR, PLUSW, банальном ускорении доступа, наконец) и передачи ссылок (если ты не в курсе, ссылки и на асме удобно передавать единым образом, а не раздельно для данных и кода). Ну и, естественно, о возможности размещения Software Stack во внешнем ОЗУ.

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

Привет!

Thu Mar 17 2005 18:37, Maxim Polyanskiy wrote to Alexey Stekolshikow:

...

AS>> Угу. Атмел анонсировал 1-cycle x51 MCU. Пока только заменители 2051 AS>> и 4051, но обещают всю линейку.

MP> В реале конечно это просто увеличение присутствия x51 на рынке.

Если люди инвестируют средства в модернизацию старинных МК при наличии собственного одноклассного семейства, это может говорить разве что о рыночных проблемах с этим собственным семейством, а уж никак о рыночной динамике 51-го.

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

Hello, Oleksandr! You wrote to Maxim Polyanskiy snipped-for-privacy@p12.f.n5020.z2.fidonet.org> on Thu, 17 Mar 2005

20:26:19 +0000 (UTC):

OR> íÎÅ ÐÏÞÅÍÕ-ÔÏ ËÁÖÅÔÓÑ, ÞÔÏ ÒÁÎØÛÅ ÐÏÑ×ÑÔÓÑ Á×ÔÏÍÁÔÉÚÉÒÏ×ÁÎÎÙÅ OR> ÍÉËÒÏ-ËÕÈÎÉ ÎÁ ÞÅÒÄÁËÅ/× ÐÏÄ×ÁÌÅ ËÁÖÄÏÇÏ ÄÏÍÁ É "ÍÕÓÏÒÏÐÒÏ×ÏÄÙ OR> ÎÁÏÂÏÒÏÔ".

"óËÁÖÉÔÅ, Á ×Ù ÎÅ ÐÒÏÂÏ×ÁÌÉ ÚÁËÌÁÄÙ×ÁÔØ × Îţ {× Û×ÅÊÎÕÀ ÍÁÛÉÎËÕ} ÍÑÓÏ?" :-)))

OR> wbr, OR> p.s. ËÁËÏÊ, ÉÚ×ÉÎÉÔÅ, web-ÉÎÔÅÒÆÅÊÓ??? çÏÌÏÓÏ×ÏÅ ÕÐÒÁ×ÌÅÎÉÅ ÎÕÖÎÏ. OR> þÔÏÂÙ ÓË×ÏÚØ Ä×ÅÒØ ×ÁÎÎÏÊ ÍÏÖÎÏ ÂÙÌÏ Ó ÎÁÍÙÌÅÎÎÏÊ ÇÏÌÏ×ÏÊ ËÒÉËÎÕÔØ OR> "ËÏÆÅ É ÇÒÅÎËÉ, ÐÏÖÁÌÕÊÓÔÁ!".

á ÐÏÔÏÍ ÐÒÉÂÅÖÉÔ ÒÏÂÏÔ É, ÎÅ ÒÁÚÏÂÒÁ×ÛÉÓØ ÐÏÄ ÓÌÏÅÍ ÍÙÌÁ (ÐÒÏÇÒÁÍÍÁ ÒÁÓÐÏÚÎÁ×ÁÎÉÑ ËÏÄÁ Á×ÔÏÒÉÚÁÃÉÉ ÒÅÇÉÏÎÁ ÍÏÀÝÉÈ ÓÒÅÄÓÔ× ÄÁÌÁ ÓÂÏÊ) ÇÄÅ ÇÏÌÏ×Á Á ÇÄÅ ÞÔÏ, ÎÁÞΣÔ ÔÅÂÑ ËÏÒÍÉÔØ. "îÅÔ, ÎÁÍ ÔÁËÏÊ ÈÏËÅÊ ÎÅ ÎÕÖÅÎ" :-))).

With best regards, Alexander Derazhne

Thu, 17 Mar 2005 21:00:20 +0300 Alexey V Bugrov wrote to Harry Zhurov:

[...]

HZ>> Как быть в случае использования ОС для другой платформы?

AV> Hикак. Ядро (таскманагер) писать с нуля. Все остальное может быть и на С AV> написано, легко перенесется.

Похоже, у нас несколько разное восприятие понятия "ядро". Вот ISR, где возможно перепланирование - это ядро?

HZ>> Все эти HZ>> завязки на конкретный компилятор конкретной платформы, конечно, дают HZ>> некую свободу в конкретном случае, но решение получается частным со HZ>> всеми вытекающими.

AV> Даже для uC/OS Лябрус вполне прозрачно написал, что если интересует AV> результат, а не процесс, то самая главная часть ОС, AV> в том числе планировщик, должна быть написана на асме. Обвеска на C - AV> сколько угодно.

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

[...]

AV>>> 4. Вызов "внеосевого прерывания" с его собственным AV>>> сохранением восстановлением "контекста", тех самых двух регистров.

HZ>> Как это "вызов"? Оно уже вызвано. Аппаратно. Мы в нем уже HZ>> находимся.

AV> Да. Обработчик прерывания - это функция. Какая разница кто ее вызовет: AV> внешнее событие или другой код? Единственная AV> проблема - это reti вместо ret на выходе. Hо это можно обойти.

А вектора прерываний ты сам руками вставляешь? Поясню, что имеется в виду: в IAR'е, например, есть волшебное слово __interrupt, которое придает функции особый статус - в частности, компилятор сохраняет все используемые регистры, а не только local. И еще там же предназначена к использованию волшебная прагма: #pragma vector=..., где указываешь адрес ISR. Таким образом, компилятор делает всю остальную работу - помещение адреса ISR в таблицу векторов прерываний, реализует поведение внутри ISR как это полагается делать (все же обработчик прерываний - непростая функция).

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

HZ>> Если ты подразумеваешь именно вызов функции, то тут, как только ты HZ>> поставишь внутри обработчика прерывания вызов функции, компилятор HZ>> вставит сохранение всех local регистров - ведь он не знает, какие HZ>> регистры юзаются внутри этой функции, поэтому сохраняет все.

AV> Ой. Эти десять строчек надо на асме писать.

Понятно. Т.е. в сухом остатке: надо, чтобы ISR был обычной функцией, где часть кода написана на асме. Больше вопросов не имею.

[...]

AV>>> Hу что, запредельные накладные расходы? HZ>> Hет. Только я пока не вижу, как это можно реализовать, не HZ>> привязываясь к нюансам МК и используемого компилятора.

AV> Интересует процесс или результат? :) AV> Hикто же тебе не предлагает всю ось каждый раз писать с нуля. Только AV> небольшую часть на асме для каждой платформы и/или AV> компилятора. Или это противоречит идее? :)

Никакой особой идеи тут нет. Есть реальные требования. Мне приходится работать не с одним семейством МК, тут надо учитывать это обстоятельство. В итоге мой путь - как в uCOS: все на ЯВУ за исключением малой части низкоуровневого кода, который пишется на асме для каждой платформы и который по-другому просто не реализовать. ISR - на ЯВУ со всеми возможными для пользователя удобствами при максимальной безопасности. Т.е. достаточно написать:

#pragma vector=... OS_INTERRUPT void Slon_ISR() { TISR_Wrapper ISR_Wrapper;

... // прикладной код }

И все. Остальное делает компилятор, включая сохранение/восстановление контекста, переключение на стек прерываний, перепланирование.

Единственный минус тут (с чего, собсно, и началось обсуждение) - это неэффективное использование ресурсов в случае, когда прерывание не является источником событий для ОС. Для этих случаев можно применить и альтернативные варианты реализации. Хоть складывание в буфер байтов с периодическим относительно редким опросом, хоть путем эмуляции софтового прерывания, задействовав для этого любое свободное аппаратное, хоть путем подмены векторов прерываний, как в случае двух ISR.

Решение, конечно, частное. Но и ситуация тоже вполне частная. И альтернативный метод, предлагаемый тобой, тоже, кстати, является частным решением. Вполне естественно, что частное специализированное решение оказывается эффективнее универсального. Но за него и цена заплачена в виде дополнительных усилий по реализации и поддержке.

Если будет требоваться скорость (либо какие-то другие причины вынудят), то так и делаем. Что выбрать - второй вопрос. Но пока по скорости устраивает, можно и не дергаться, а решить все в лоб.

[...]

HZ>> Более надежным решением, имхо, является просто отобрать у HZ>> компилятора возможность рулить процессом сохранения/восстановления HZ>> регистров в прерывании (осевом). Т.е. чтобы он вообще к этому не HZ>> касался. Тогда пишем на входе свой код сохранения, на выходе свой код HZ>> восстановления.

AV> Hа асме?

Естественно. Пишется макрос, который состоит из ассемблерных вставок. Один на входе (сохранение), другой на выходе (восстановление).

HZ>> сидят, одно ПЛИС, другое МК. С ПЛИС проблем нет, она все успевает со HZ>> свистом, что понятно, а вот для МК приходится паузы между передачами HZ>> байтов вводить, чтобы он гарантированно успевал обменивать байты на HZ>> своем конце.

AV> Я никак не против, но если этого не делают, значит без этого можно AV> обойтись. Или взять то, где это есть. :)

Подозреваю, что просто на момент появления мода еще не пришла. Но тенденция, имхо уже есть. Думаю, через несколько лет в старших членах семейств мелких МК будет появляться коммуникационная периферия с буферами.

Thu, 17 Mar 2005 19:42:46 +0300 Andy Mozzhevilov wrote to Harry Zhurov:

HZ>> Если ты подразумеваешь именно вызов функции, то тут, как только ты HZ>> поставишь внутри обработчика прерывания вызов функции, компилятор вставит HZ>> сохранение всех local регистров - ведь он не знает, какие регистры HZ>> юзаются внутри этой функции, поэтому сохраняет все.

AM> Как я думаю, более оптимально с точки зрения компилятора перекладывать AM> сохранение регистров на вызываемую функцию. AM> В таком случае можно было бы определить соглашение AM> по регисрам, которые вызываемая функция может портить и не обязана AM> восстанавливать по выходу, а которые нет. То есть определить некоторые AM> регистры как temp. В этом случае вызывающая функция ничего не долна AM> сохранять. А вызываемая функция, которая уже знает, что она пользует - это AM> и сохранит, за исключением temp регистров. Это позволит "мелким" функциям AM> вообще ничего не сохранять, пользуясть только временными регистрами.

К сожалению, тут нас не спрашивают. Когда ты написал:

__interrupt void Slon_ISR() { ... }

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

Можно, конечно, слово __interrupt не писать, а оформить в виде обычной функции и асмовом файле руками вставить вектор. Делал и так. Но не могу сказать, что этот вариант вызывает симпатию и удовлетворение. :)

ðÒÉ×ÅÔ George!

Thursday March 17 2005 12:30, George Shepelev wrote to Olga Nonova:

ON>>>>>> ÒÅÞØ ÉÄÅÔ Ï ÏÓÏÂÙÈ ÓÔÒÏËÁÈ ÔÉÐÁ char, Ó ÎÕÌÅÍ × ËÏÎÃÅ. AK>>>>> þÔÏ × ÎÅÊ ÏÓÏÂÏÇÏ? üÔÏ ÓÔÁÎÄÁÒÔÎÁÑ ÓÉÛÎÁÑ ÓÔÒÏËÁ. ON>>>> úÁËÉÄÁÅÍ ÛÁÐËÁÍÉ? ê-ÅÈ, ÍÏÌÏÄÅÖØ! AK>>> ôÙ ÎÅ oÔ×ÅÔÉÌÁ ÎÁ ×ÏÐÒÏÓ: ÞÔÏ × ÎÅÊ ÏÓÏÂÏÇÏ? ëÁËÉÅ ÓÔÒÏËÉ, AK>>> ÐÏ-Ô×ÏÅÍÕ, ÎÅ Ñ×ÌÑÀÔÓÑ ÏÓÏÂÙÍÉ? ON>> ïÂÙÞÎÙÅ ÓÔÒÏËÉ Pascal. ó ÎÉÍÉ ÏÂÙÞÎÏ ÎÉËÁËÉÈ ÈÌÏÐÏÔ ÎÅ ×ÏÚÎÉËÁÅÔ. GS>

GS> ëÁË ÎÁÓޣÔ ÏÂßÅÄÉÎÅÎÉÑ Ä×ÕÈ "ÏÂÙÞÎÙÈ ÓÔÒÏË Pascal" × ÏÄÎÕ, ËÁÖÄÁÑ GS> ÉÚ ÉÓÈÏÄÎÙÈ - ÐÏ 150 ÓÉÍ×ÏÌÏ×?

öÏÒÁ, Á ËÁËÏÉ ÉÍÅÎÎÎÏ "ðÁÓËÁÌØ" ÉÍÅÅÔÓÑ ×ÉÄÕ? áÂÓÔÒÁËÔÎÙÊ "ÏÂÙÞÎÙÊ ÐÁÓËÁÌØ", ÉÌÉ âÏÒÌÁÎÄ ðÁÓËÁÌØ? éÌÉ ïÂÄÖÅËÔ ðÁÓËÁÌØ? (äÅÌØÆÉ)

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

15 Mar 05 10:23, you wrote to Dima Orlov:

DO>> ëÁË ÍÏÖÎÏ ÓÄÅÌÁÔØ ËÏÎËÁÔ ÓÔÒÏË, ÎÅ ËÏÐÉÒÕÑ ÉÈ ÉÚ ðúõ × ïúõ? ON> ôÕ ËÏÎÓÔÁÎÔÕ, ÞÔÏ ÐÒÉËÌÁÄÙ×ÁÅÔÓÑ, ÍÏÖÎÏ ÎÅ ËÏÐÉÒÏ×ÁÔØ, Á ÐÒÑÍÏ ON> ×ÙÇÒÅÂÁÔØ ÉÚ flash. ÷ CÉ- ÔÁËÏÅ ÎÅ ÐÒÏÈÏÄÉÔ.

÷ avr-gcc - ÅÓÔØ ÆÕÎËÃÉÑ strcat_P, ËÏÔÏÒÁÑ ×ÔÏÒÙÍ ÁÒÇÕÍÅÎÔÏÍ ÂÅÒÅÔ ÕËÁÚÁÔÅÌØ ÎÁ flash, É ÏÔÔÕÄÁ ËÏÐÉÒÕÅÔ. ÷Ù×ÏÄ: ÔÙ ÔÁËÉ ÎÅ ÒÁÚÏÂÒÁÌÁÓØ.

ps: åÝÅ ÂÙ×ÁÀÔ generic pointer.

Alexey

Hello Olga.

16 Mar 05 00:50, you wrote to Leha Bishletov:

LB>> ÂÙÌÁ ×ÏÚÍÏÖÎÏÓÔØ ÏÒÇÁÎÉÚÏ×ÁÔØ Ô.Î. "ËÏÍÐÉÌÉÒÏ×ÁÎÙÊ ÓÔÅË". ON> åÓÌÉ ÞÅÓÔÎÏ, ÔÏ ÚÁÄÁÞÁ ËÏÎÔÒÏÌÑ ÔÉÐÏ×, ÓÌÁ×Á âÏÇÕ!, ÎÉËÁË ÎÅ ÒÅÛÁÅÔÓÑ. ON> é ÇÏÒÖÕÓØ ÜÔÉÍ. "ëÏÍÐÉÌÉÒÏ×ÁÎÎÙÊ ÓÔÅË" ÔÏÖÅ ÎÅ ÒÅÁÌÉÚÕÅÔÓÑ.

ëÏÍÐÉÌÉÒÏ×ÁÎÙÊ ÓÔÅË - ÍÅÔÏÄ ÏÐÔÉÍÉÚÁÃÉÉ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÐÁÍÑÔÉ. HÁ ÁÓÓÅÍÂÌÅÒÅ, ÅÓÔÅÓÔ×ÅÎÎÏ, ÒÅÁÌÉÚÕÅÔÓÑ. HÏ ×ÒÕÞÎÕÀ.

ON> ÍÁËÒÏÓÏ×. ðÒÉÍÅÒÙ ÓÁÍÉÈ ÍÁËÒÏÓÏ×

ON> MoveByte MACRO Byt1,Byt2 ON> lds R16,Byt1 ON> sts Byt2,R16 ON> ENDM

ðÒÏÝÁÊ ÒÅÇÉÓÔÒÏ×ÁÑ ÏÐÔÉÍÉÚÁÃÉÑ...

Alexey

Hello Alexander!

18 Mar 05 02:24, Alexander Golov wrote to Maxim Polyanskiy:

AS>>> õÇÕ. áÔÍÅÌ ÁÎÏÎÓÉÒÏ×ÁÌ 1-cycle x51 MCU. ðÏËÁ ÔÏÌØËÏ ÚÁÍÅÎÉÔÅÌÉ AS>>> 2051 É 4051, ÎÏ ÏÂÅÝÁÀÔ ×ÓÀ ÌÉÎÅÊËÕ. MP>> ÷ ÒÅÁÌÅ ËÏÎÅÞÎÏ ÜÔÏ ÐÒÏÓÔÏ Õ×ÅÌÉÞÅÎÉÅ ÐÒÉÓÕÔÓÔ×ÉÑ x51 ÎÁ ÒÙÎËÅ. AG> åÓÌÉ ÌÀÄÉ ÉÎ×ÅÓÔÉÒÕÀÔ ÓÒÅÄÓÔ×Á × ÍÏÄÅÒÎÉÚÁÃÉÀ ÓÔÁÒÉÎÎÙÈ íë ÐÒÉ ÎÁÌÉÞÉÉ AG> ÓÏÂÓÔ×ÅÎÎÏÇÏ ÏÄÎÏËÌÁÓÓÎÏÇÏ ÓÅÍÅÊÓÔ×Á, ÜÔÏ ÍÏÖÅÔ ÇÏ×ÏÒÉÔØ ÒÁÚ×Å ÞÔÏ Ï AG> ÒÙÎÏÞÎÙÈ ÐÒÏÂÌÅÍÁÈ Ó ÜÔÉÍ ÓÏÂÓÔ×ÅÎÎÙÍ ÓÅÍÅÊÓÔ×ÏÍ, Á ÕÖ ÎÉËÁË Ï AG> ÒÙÎÏÞÎÏÊ ÄÉÎÁÍÉËÅ 51-ÇÏ.

õÇÕ. á ÅÓÌÉ ×ÓÐÏÍÎÉÔØ, ÞÔÏ ÏÎÉ ÅÝÅ É ôÅÍÉË ÄÁ×ÎÏ ËÕÐÉÌÉ, ÔÁË ÓÏ×ÓÅÍ ÔÏÓËÌÉ×Ï ÓÔÁÎÏ×ÉÔÓÑ... ;)

With Best Regards Alexey [ TEAM ôÅÝa MUST DIE!!! , âÕÔÌÅÒÉaÎÓËÉÊ äÖÉÈaÄ ]

Hello Olga.

15 Mar 05 23:21, you wrote to Michael Belousoff:

ON> ðÏÐÒÏÂÕÊÔÅ ÓÌÅÄÕÀÝÉÊ ×ÁÒÉÁÎÔ. úÁÄÁÊÔÅ ×Ï flash ÓÔÒÕËÔÕÒÕ ÉÚ ON> ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÓÔÒÏË, ËÏÎÓÔÁÎÔÙ "123","ABS","any else",... ON> úÁÐÏÌÎÉÔÅ ÐÅÒÅÍÅÎÎÕÀ Óhar VarStr ËÁËÉÍ-ÎÉÂÕÄØ ASCII ÓÏÄÅÒÖÉÍÙÍ Ó ÎÕÌÅÍ ON> × ËÏÎÃÅ. á ÐÏÔÏÍ ÐÏÐÒÏÂÕÊÔÅ ×ÙÚ×ÁÔØ ÉÚ ÍÏÄÕÌÑ string ÐÏÄÐÒÏÇÒÁÍÍÕ ON> ÐÏÉÓËÁ ÓÔÒÏËÉ VarStr × ÎÁÂÏÒÅ ÛÁÂÌÏÎÏ×, ÞÔÏ ×Ï flash. åÓÌÉ ÷Ù ON> ÄÏÂØÅÔÅÓØ, ÞÔÏ ó-ËÏÍÐÉÌÑÔÏÒ ÐÅÒÅÄ ÐÏÉÓËÏÍ ÎÅ ÓËÏÐÉÒÕÅÔ ×ÅÓØ ÎÁÂÏÒ ON> ÛÁÂÌÏÎÏ× × ïúõ, É ÔÏÌØËÏ ÐÏÔÏÍ ×ÙÚÏ×ÅÔ ÂÉÂÌÉÏÔÅÞÎÕÀ ÆÕÎËÃÉÀ,

ñ ÔÏÞÎÏ ÎÅ ÐÏÎÑÌ, ÎÏ ÅÓÌÉ ÎÕÖÎÏ ÓÒÁ×ÎÅÎÉÅ ÓÔÒÏË, ÔÏ × avr-gcc ÅÓÔØ É ÜÔÏ: strcmp_P, strcasecmp_P, strncmp_P á ÅÓÌÉ ÞÅÇÏ-ÔÏ ÎÅ È×ÁÔÁÅÔ, ÔÏ ÍÏÖÎÏ ÄÏÐÉÓÁÔØ.

Alexey

Hello Maxim.

16 Mar 05 07:22, you wrote to Andy Mozzhevilov:

AM>> ÷ÓÅ, ÞÔÏ ÂÏÌÅÅ ÜÔÏÇÏ - ÆyÎËÃÉÉ ËÏÎËpÅÔÎÏÇÏ ËÏÎÔpÏÌÌÅpÁ ÐpÅpÙ×ÁÎÉÊ AM>> × ËÏÎËpÔÅÎÏÍ uC, ËÏÔÏpÙÊ ÎÅ ÏÂÑÚÁÎ ÂÙÔØ × ÌÀÂÏÍ ARM. MP> ôÁË ÔÙ ÎÅ ÎÁ ÕÒÅÚÁÎÎÙÅ ÐÏÄÅÌËÉ ÓÍÏÔÒÉ Á ÎÁ ÞÅÓÔÎÙÊ ARM, ÞÔÏ-ÎÉÂÕÄØ MP> ÕÒÏ×ÎÑ AT91xxxxx.

õ ÍÅÎÑ ÅÓÔØ ÏÄÉÎ ÐÒÏÅËÔ ÎÁ AT91M40400, ÔÁË × ÎÅÍ ×ÏÏÂÝÅ ÐÒÅÒÙ×ÁÎÉÑ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ.

Alexey

Hello Olga.

16 Mar 05 23:37, you wrote to Andy Mozzhevilov:

ON> äÁ, ËÁË ÞÕÄÏ-ËÏÍÐÉÌÑÔÏÒ ÓÒÅÁÇÉÒÕÅÔ ÎÁ ÐÒÉÈÏÄ ÂÌÏËÁ ÄÁÎÎÙÈ ÂÏÌØÛÅ, ÞÅÍ ON> ÂÙÌÏ ÏÔ×ÅÄÅÎÏ × ÐÁÍÑÔÉ ÍÅÓÔÁ ÐÏÄ ÎÉÈ?

ðÏËÁÖÉ ÐÒÉÍÅÒ ÎÁ ÐÁÓËÁÌÅ. ëÁË ÏÎ ÓÒÅÁÇÉÒÕÅÔ.

÷ÏÔ ÍÏÊ ÐÒÉÍÅÒ:

var s :^string; a,b :string; begin getmem(s, 8); a := 'Hello World'; b := 'Good bye World'; s^ := a + b; end.

é ÐÏÎÅÓÌÁÓØ ÄÕÛÁ × ÒÁÊ.

Alexey

Hello Dima.

17 Mar 05 22:59, you wrote to me:

ðÏ ÛÁÇÁÍ ÂÕÄÅÔ ÈÏÄÉÔØ ÐÏ ÓÁÍÏÍÕ ÐÅÒ×ÏÍÕ ÉÓÈÏÄÎÉËÕ (× ÍÁËÒÏÓÁÈ). á ÅÓÌÉ ÔÙ ÉÍÅÅÛØ × ×ÉÄÕ ÐÒÏÓÍÏÔÒ ÄÁÎÎÙÈ, ÔÏ ÔÕÔ ÔÁË ÖÅ ËÁË É × óÉ. åÓÌÉ ÄÁÎÎÙÅ ÌÅÖÁÔ × ÐÁÍÑÔÉ, ÔÏ × ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÂÕÄÕÔ ÚÁÐÉÓÁÎÙ ÁÄÒÅÓÁ É ÒÁÚÍÅÒÙ ÐÅÒÅÍÅÎÎÙÈ. á ÅÓÌÉ ÐÏÓÌÅ ÏÐÔÉÍÉÚÁÃÉÉ ÐÅÒÅÍÅÎÎÁÑ ÌÅÇÌÁ × ÒÅÇÉÓÔÒ - ÔÏ ÎÕÖÎÏ × ÒÅÇÉÓÔÒÅ É ÓÍÏÔÒÅÔØ.

Alexey

Hello, George Shepelev !

ïÄÎÏ É ÔÏÖÅ, öÏÒÁ. ó ÄÁÖÅ ÐÏ-ÖÅÓÔÞÅ ÂÕÄÅÔ, ÎÅ ÇÏ×ÏÒÑ ÕÖ Ï ó++. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Thu Mar 17 2005 22:39, Kirill Frolov wrote to Alex Kouznetsov:

KF> Hемедленно нажми на RESET, Alex Kouznetsov!

KF> AK>> Pукопашное преобразование: AK>> #include <string.h>

AK>> char zstr[] = "примерчик"; AK>> char cstr[strlen(zstr)]; /* строка со счетчиком AK>> cstr[0] = strlen(zstr); AK>> for (int i=0; i<strlen(zstr); i++) AK>> cstr[i+1] = zstr[i];

KF> Я фигею, дорогая редакция...

"Калаид, который уже давно бился, шипел и содрогался, произнес наконец: 'По-п-погодка нынче хорошая, старички! К-как спалось?' Всегда он из-за своего дефекта речи отстает от событий." (с) АБС, "Второе нашествие марсиан"

Пока, Алексей

Michael, ÔÙ Åݣ ÚÄÅÓØ ÓÉÄÉÛØ?

óÒÅÄÁ íÁÒÔ 16 2005 19:28, Michael Belousoff wrote to Olga Nonova:

MB> ïÄÉÎ pÁÚ Ñ ÐÏÐpÏÂÏ×ÁÌ ÎÁÐÉÓÁÔØ ÎÁ á÷òÏ×ÓËÏÍ ÁÓÍÅ, ÂÏÌØÛÅ ÎÅ ÈÏÞy. MB> ôÏÔ ÂpÅÄ ÓyÍÁÓÛÅÄÛÅÇÏ, ËÏÔÏpÙÊ ÎÁÚÙ×ÁÅÔÓÑ ÍÎÅÍÏÎÉËÁÍÉ á÷òÁ - MB> "ñ ÎÅ ÈÏÞy, ÞÔÏ ÜÔÁ ÇÁÄÏÓÔØ ÂÙÌÁ pÑÄÏÍ ÓÏ ÍÎÏÊ!.." (Ó) þÁÊÆ

åÓÌÉ ÂÙ ÐÒÏÂÌÅÍÁ ÂÙÌÁ _ÔÏÌØËÏ_ × ÍÎÅÍÏÎÉËÁÈ... :-/

çÅÏÒÇÉÊ

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required