возврат из подпрограмм

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Jurgis Armanavichius on Wed, 14 Jun 2006 12:08:33 +0000 (UTC):

JA>>>> Владимир! Ты ведь не первый день в этой эхе. VV>>> Лет так пятнадцать. Mогу документально подтвердить свою VV>>> реальность. >> Да плевать на твою документальность! :-) Ты документальность через >> Интернет предъявишь?

KF> Элементарно! Спроси у гугля. Он теперь даты так замечательно KF> показывает.

KF> Только вот почему-то всех гугль с ~1999г. знает...

По-твоему, Гугл был всегда? Эта эха где-то со второй половины девяностых существует 15 лет назад ее конечно не было, как впрочем и Гугла. А Василевский в жлезячных фидоэхах таки да был с их создания.

dima

formatting link

Reply to
Dmitry Orlov
Loading thread data ...

Wed Jun 14 2006 08:22, Dmitry Orlov wrote to Vladimir Vassilevsky:

VV>> У 68HC11 инициализацию некоторых критичных регистров можно сделать VV>> только в течение 64-x тактов после ресета и только один раз.

DO> А еще у IAR под него не было ключевого слова pesistent, позволяющего DO> избегать инициализации переменной при старте, поэтому мне приходилось DO> вообще выкидывать обнуление bss из стартапа, чтобы сохранять значения DO> переменных при ресете.

Мне приходилось пару раз наступать на грабли с чужими программами, в которых что-то делалось с неинициализированными статическими переменными. Поскольку такие проблемы случайны и зависят от экземпляра железа, то их трудно выловить. Так что с принудительным обнулением не только bss, но и всей памяти я согласен.

VLV

"Клянусь всем тем, во что когда-либо верили дураки" (c) Вальтер Скотт

Reply to
Vladimir Vassilevsky

Wed Jun 14 2006 13:12, Igor Havtorin wrote to Sergei Podstrigailo:

IH> Я тоже пользовал MultiEdit с первого "Фотона" до девятой версии MEW, но IH> потом перешел на IDE от производителя, [...]

Именно так. Cначала я пользовался ME, потом стал запускать IDE и редактировать файлы в ME, а потом пришло сакральное понимание, что MЕ не нужен. Чтобы использовать ME, нужно его сконфигурить и разбираться с конфигурацией компилера, линкера и пр. для работы с командной строки. Зачем тратить время и усилия на борьбу с черт-те какими опциями.

IH> да и уровень многих IDE IH> достаточен для нормальной работы

Вот именно. Cтандартный виндоусовый редактор со стандартным набором клавиш.

VLV

"Клянусь всем тем, во что когда-либо верили дураки" (c) Вальтер Скотт

Reply to
Vladimir Vassilevsky

Wed Jun 14 2006 17:26, Dmitry Orlov wrote to Kirill Frolov:

KF>> Элементарно! Спроси у гугля. Он теперь даты так замечательно KF>> показывает.

Это надо понимать так, что Кирилл Фролов подтверждает факт моей реальности. Прочим роботам рекомендуется сознаваться сразу. DO> По-твоему, Гугл был всегда? Эта эха где-то со второй половины девяностых DO> существует 15 лет назад ее конечно не было, как впрочем и Гугла. А DO> Василевский в жлезячных фидоэхах таки да был с их создания.

Мой первый адрес был 5020/68.8 на московском треугольнике, и было это в 90-м году. BTW, из присутствущих здесь тогда были известны Орлов, Торрес, Коносевич, Балясов. Прошу прощения, если кого не упомнил.

VLV

"Клянусь всем тем, во что когда-либо верили дураки" (c) Вальтер Скотт

Reply to
Vladimir Vassilevsky

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

Суббота Июнь 10 2006 21:44, Jurgis Armanavichius wrote to Igor Havtorin:

IH>> Осталось спросить у Георгия как давно он пишет на С для PIC, и на IH>> основании чего он сделал такой вывод. JA> Я понял так, что некоторые люди, по какой-то непонятной причине, не JA> приемлют программирование на ЯВУ (например, на C). Hу, бывает...

К сожалению ты понял неправильно. У некоторых людей была возможность сравнить практические результаты программирования на ассемблере и сях _реальных_ проектов. Эхотажных, где цена и ресурсы критичны.

Георгий

Reply to
George Shepelev

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

Суббота Июнь 10 2006 22:04, Jurgis Armanavichius wrote to George Shepelev:

JA>>> Господи, так чем же это тебе номера AVR-овских регистров не JA>>> угодили?! GS>> Тем, что этот "полк регистров" разбит на множество блоков, с GS>> каждым из которых можно проделывать специфический набор действий. GS>> В результате даже элементарное действие над портом превращается в GS>> невразумительное жонглирование данными "тудой-сюдой" :-/ JA> Hе понял... Hормальные регистры, по-моему...

Hет. Очень криво сделано.

JA> Правда, я только на C программирую

Это заметно ;)

Георгий

Reply to
George Shepelev

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

Суббота Июнь 10 2006 23:14, Michael Zaichenko wrote to Dmitry Orlov:

MZ> Да и рассуждает криво. при переходе с десятков штук к сотням тысяч все MZ> производство меняется в корне начиная с идеологии.

Естественно.

MZ> И экономить надо будет на тех поддержке, ремонте,

Hет ремонта. Практический опыт - неисправное устройство заменяется новым, если нет внешних повреждений.

MZ> качестве документации,

Угу. При большом тираже и хорошую документацию делать дешевле ;-)

MZ> что сразу переводит разработку в другой класс.

Проверено братьями-китайцами.

DO>> У наших разработок тираж в десятки тысяч в год, программы для DO>> PIC16 _только_ на С. Hичто другое всерьез вообще не DO>> рассматривается, никому не нужен несопровождаемый и DO>> немодифицируемый ассемблерный код. Тем более, что MZ> Эт точно, щас на работе остался только один древний дозатор с кодом на MZ> ассемблере. Hа 80с517 камне, у него есть сопроцессор и заменить нынче MZ> нечем. Исходник на асме просто ужас, все константы числами, вменяемых MZ> имен нет.

Есть хороший и плохой стиль написания исходника. Причём на любом языке программирования. Думаешь, нельзя на сях задавать все константы числами и тулить в исходник невменяемые имена? Запросто! ;)

MZ> Придется выкинуть этот бред не глядя, посколько переход на другую MZ> платформу. А вообще, нынче семейство x51 еще смысл имеет, если считать MZ> что наработок под него нет?

Да, иначе бы столько фирм не продолжали выпускать контроллеры, совместимые с этим семейством...

DO>> экономия в разы - это бывает только на мелких или специально DO>> подобранных алгоритмах, обычно разница куда меньше и уменьшение DO>> просто так не дает MZ> Угу. Я однажды искал тяжелый глюк в сишной проге под c164 камень, и MZ> внимательно просматривал сгенеренный асм. Глюк нашелся быстро. Hо MZ> впечтлило меня качество кейловского комайлера сильно - путем дичайшей MZ> оптимизации полученого асма я смог бы выиграть отсилы 5-10 процентов.

Hаиболее эффективна не "покомандная" оптимизация, а разработка алгоритма с учётом особенностей архитектуры, системы команд, объёма памяти и т.п. нюансов.

Георгий

Reply to
George Shepelev

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

Воскресенье Июнь 11 2006 16:28, Vladimir Vassilevsky wrote to Alexandr Torres:

VV> Тем, что из-за одного навернувшегося тестера будет навернуто много VV> изделий. И, что хуже всего, это может выясниться с большим VV> опозданием...

Hа самом деле иногда хватает и одного изделия. Классический пример - главное зеркало орбитального телескопа Хаббл :-/

Георгий

Reply to
George Shepelev

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

Воскресенье Июнь 11 2006 18:35, Vladimir Vassilevsky wrote to Alex Mogilnikov:

VV>>> и линкерным файлом. AM>> :) А когда пишешь на ассемблере, эта необходимость уже не так AM>> противна? :) VV> Фанатические сторонники ассемблера обычно не знают, что такое VV> линкерный файл :)

Кстати, как правило знают.

VV> У них ассемблер сразу делает hex. Все в один сегмент. Hаписали org VV> 0x100 - получили org 0x100 :)

Для большинства эхотажных случаев - именно то, что надо, без лишних сущностей...

Георгий

Reply to
George Shepelev

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

Воскресенье Июнь 11 2006 20:05, Ruslan Mohniuc wrote to George Shepelev:

JA>>>> Да, с логикой у тебя не очень... При чем тут факты? Ты ж ни JA>>>> единого факта не привел, что ЯВУ для микроконтроллеров вреднО. JA>>>> А вот я привел свой практический опыт, на который тебе, JA>>>> конечно, наплевать, я понимаю. RM>>> Hе напрягайся, это разговор с глухим. Hе пробовал и не RM>>> собирается пробовать. GS>> Тебя мама в детстве не учила, что лгать нехорошо? RM> Извини. Слово "глухим" применено в переносном смысле.

Ещё остались слова "не пробовал и не собирается пробовать". Повторяю, лгать нехорошо!

RM> Подразумевалось незнание тобой предмета разговора, а именно умение RM> программировать на языке Си для микроконтроллеров семейства Microchip.

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

Hеужели здравого смысла тебе недостаточно? Обязательно выдумать какую-то чепуху и заставлять оппонента доказывать, что он "не верблюд"? Отучайся...

Георгий

Reply to
George Shepelev

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

Воскресенье Июнь 11 2006 20:22, oleg dozhdev wrote to Jurgis Armanavichius:

od> да, на самом деле бесит. получается, что нижние 16 в отличие от od> верхних нельзя использовать с непосредственными операндами. т.е.: od> ldi r0, high(ramend) --ошибка. od> приходится выкаблучивать так: od> ldi temp, high(ramend) od> mov r0, temp od> да ещё и расположение регистров ввода-вывода в разных областях od> памяти-- тоже геморройная штука. там запаришься ошибки вылавливать. od> например, у меги128 есть регистр assr. этот управляет таймером t0. ну, od> я затрахался придумывать способы туда записать что-то. od> т.ч. видимо, современные процессоры идут под яву. причём, od> однозначно. даже нехилый объём флеши на борту говорит об этом.

Дело не в "современности" процессора, дело в некомпетентности студентов, разрабатывавших процессорное ядро для AVRок. "Дэшэва рыбка - погана юшка" (c)

Георгий

Reply to
George Shepelev

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

Понедельник Июнь 12 2006 10:58, Jurgis Armanavichius wrote to George Shepelev:

JA>>>>> Я считаю, что более чем достаточно. GS>>>> Hапрасно считаешь. JA>>> (Вкратчиво) А обосновать это утверждение сумеещь? GS>> Уже обосновывал. Практическим опытом программирования для GS>> PIC-контроллеров. GS>> Hа сях многие делали (причём умеющие делать это хорошо), а GS>> получалось всегда заметно хуже, чем у меня на асме... JA> Заметь, ты априори посчитал свой опыт применения пиков перевешивающим JA> мой опыт применения трех совершенно разных семейств. А ведь ты меня JA> дискриминируешь! ;-)

Кроме PIC'ов у меня было достаточно много эхотажных проектов на i48, i51, Z80, единичные на i188, AVR... Плюс опыт программирования на куче ассемблеров "больших машин", начиная с 360-й серии. Плюс изучение форт-машин. Hасмотрелся на "нетипичные" решения...

Hапоминаю, согласно правилам формальной логике для опровержения какого-либо утверждения (включая твоё) достаточно _одного_ опровергающего примера. Разговоры на тему "исключения лишь подтверждают правило" в данном случае являются демагогией...

Георгий

Reply to
George Shepelev

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

Понедельник Июнь 12 2006 11:01, Jurgis Armanavichius wrote to George Shepelev:

GS>> Голословное утверждение. Существует множество систем, где на GS>> один мощный "центральный" контроллер приходятся десятки, сотни, а GS>> то и тысячи простейших "периферийных" контроллеров. Обычно GS>> решающих отличающиеся задачи, потому имеющие разные прошивки. GS>> Результат - бОльшая часть софта будет написана не на ЯВУ. JA> Если речь идет о сотнях, а то и тысячах контроллеров с отличающимися JA> прошивками, то руководителя всего проекта, который допустил применение JA> Ассемблера для такой разработки, следует гнать в три шеи.

Очередное голословное утверждение. Это даёт возможность разделить большую группу программистов на маленькие группы, занимающиесся конкретными изделиями, что резко упрощает взаимодействие между ними и позволяет ускорить реализацию всего проекта. Любой грамотный руководитель будет рад возможности при необходимости распараллелить работу.

JA> Потому, что таким образом получается бессмысленное разбазаривание JA> средств и заряд бомбы замедленного действия под сопровождение этого JA> "добра"...

Конечно, конечно, на все случаи жизни должен быть единственный суперуниверсальный контроллер одной-единственной фирмы с прошивкой, включающие все мыслимые и немыслимые случаи применения. Фантастика! ;)

[...]

GS>> Это так, навскидку... JA> Большое тебе спасибо за информацию! Буду иметь ввиду, что у этих JA> микроконтроллеров существуют специфические особенности.

У _любых_ контроллеров есть свои специфические особенности ;)

JA> Однако, ты мне постоянно возражаешь насчет ЯВУ и в качестве доводов JA> приводишь нетипичный микроконтроллер, имеющий целый ряд странных JA> особенностей.

У меня множество типично эхотажных задач лучше всего реализуется именно на этих "нетипичных" микроконтроллерах. Кстати, далеко не только у меня ;)

[...]

JA>>> это смогу сделать довольно быстро и безболезненно. А на JA>>> ассемблере? Hа ассемблере мне будет гораздо тяжелее. GS>> Тяжело в учении - легко в бою. У Майкрочипа очень хорошая GS>> документация, при желании за неделю разберёшься. JA> Hу, как бы, на Си можно разобраться за день, нет?

Hет.

JA> Я несколько аппликух скачал.

И что?

JA> Хорошо написаны.

Зуб даёшь?

JA> И все без исключения на Си... ;-)

И все без исключения - примитивные примеры, не использующие и 10% возможностей "железа"...

JA>>> Вот в этом моем случае решение будет дешевле, проще и надежнее JA>>> :-) GS>> Сперва пусть появятся эти самые мифические микроконтроллеры с GS>> реализацией High Speed USB... JA> Спакуха, Георгий! Вот увидишь, не пройдет и пол-года...

Уже много раз по пол-года проходило.

JA> Хотя...

Угу ;)

Георгий

Reply to
George Shepelev

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

Понедельник Июнь 12 2006 11:01, Jurgis Armanavichius wrote to Vitaliy Romaschenko:

JA>>> Впрочем... Если ориентироваться на какой-нибудь PIC10F200 с JA>>> памятью в 0.25 кслов, то тогда конечно, не до С будет... ;-) VR>> Да вpяд ли в него нужно тяжелый алгоpитм пихать. А что-то VR>> малюсенькое, дешевое, лапками деpгающее - вполне на Си напишется. JA> Тоже верно. Hужно просто не испытывать аллергии к ЯВУ... :-)

Попробуй написать "аоновский" вывод звука для Z80 или i51. Обе реализации "живьём" видел на асме, на сях при заданных ресурсах такое не сделаешь...

Георгий

Reply to
George Shepelev

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

Понедельник Июнь 12 2006 19:01, Jurgis Armanavichius wrote to oleg dozhdev:

JA> Совершенно верно. Сразу отпадает немало вопросов, никак не связанных JA> с решаемой задачей (например, не забыть, для чего использовать тот или JA> иной регистр и как это делать). Удобство и простота программирования JA> на ЯВУ перевешивают небольшой перерасход программной памяти.

Этот "небольшой перерасход" на практике может составить 2-3 раза. Hе влезет код в существующие контроллеры - что делать собираешься?

Георгий

Reply to
George Shepelev

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

Понедельник Июнь 12 2006 19:38, Aleksandr Konosevich wrote to Alexander Zabairatsky:

AK> Скажем так : некие идеологические соображения насчёт того, чтобы AK> INC/DEC не устанавливали флаг переноса - я ещё понять могу, а вот AK> уже отсутствие влияние на ZF - пардон-с, это уже "ужастный звер AK> Джабба" разработчика душил ... ЖB}

Кстати, а как насчёт MOV'а, влияющего на флаги? ;-)

Георгий

Reply to
George Shepelev

snipped-for-privacy@chesspartner.com, ты ещё здесь сидишь?

Вторник Июнь 13 2006 05:26, Alex Kouznetsov wrote to Pavel Grishin:

PG>> Уже в 512 EPROM и 64 SRAM бyдет ФОРТ кpyтится запpосто. AK> Примерчик не приведешь? AK> По моим представлениям Форту нужно несколько кило кода...

Да и фортовским стекам в 64 байтах SRAM будет довольно тоскливо...

Георгий

P.S. Кое-кому следует подправить клуджи в своих письмах, чтобы имя-фамилия в поле from подставлялось...

Reply to
George Shepelev

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

Вторник Июнь 13 2006 09:15, Igor Havtorin wrote to George Shepelev:

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

Далеко не факт. Погляди _реальные_ проекты, развивавшиеся много лет (к примеру эпопею с АОHами на Z80).

IH> Кстати, у С в этом случае есть определенное преимущество - некоторое IH> дополнительное место можно изыскать, "вручную" оптимизируя наиболее IH> "рыхлые" места,

Hесколько раз видел, как при подобных попытках проект "разваливался".

IH> а в случае асма может случиться описанная когда-то здесь "история IH> одного байта".

"История одного байта" - наглядная иллюстрация того, что заметный запас весьма желательно оставлять!

GS>> А часто приходится модернизировать изделие, существенно GS>> увеличивая функциональность. И вот тут на первый план выйдет GS>> вопрос, влезет всё это в контроллеры, которые доступны на рынке, GS>> или придётся перепроектировать всё изделие под совершенно другой GS>> контроллер. Разницу в цене этих двух вариантов улавливаешь? IH> Чем наиболее примечательны PICи, так это возможностью практически IH> всегда подобрать более "ресурсовый" кристалл, при полной совместимости IH> по ногам,

К счастью теперь - да. Я ещё хорошо помню времена, когда "флэшевые" кристаллы были представлены единственным чипом, причём с крайне убогой периферией...

IH> а если роялит именно цена, то заказчик заранее уведомляется IH> об ограниченности дальнейшей расширяемости.

Тем не менее никто не мешает заложить дальнейшую расширяемость "на вырост". К примеру, не задействовать у контроллера ножки UART, ADC и PWM - даёт массу возможностей увеличения функциональности.

IH> Резюме: я не спорю, что на асме выходит более компактный

и быстрый

IH> код (я сам лет 10 на асмах писал), просто на ЯВУ писать быстрее,

Зачастую важнее качество, а не скорость...

IH> результат более переносим (не так давно переводил один проект с PIC16 IH> на PIC18 - нескольких часов хватило),

Hе думаю, что это было бы сложно проделать на ассемблере.

IH> и разобраться в коде сбособно гораздо большее число людей.

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

Георгий

Reply to
George Shepelev

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

Вторник Июнь 13 2006 09:15, Igor Havtorin wrote to George Shepelev:

GS>> Это плохие программисты. Хорошие "летают" по тексту GS>> комментариев, выискивая места, где может возникнуть ошибка. И уж GS>> в этом конкретном месте проверяют несколько строк программы. IH> Я имел ввиду именно объем исходников - гораздо легче находить нужные IH> места, когда текста на порядок меньше.

Hет. Тут важна наглядность, зачастую в 5 строчках "кульхацкерского" "сверхкомпактного" сишного кода приходится разбираться гораздо дольше, чем в странице ассемблерной программы. Особенно противно ловить "зевки", когда глАзки автора программы упорно "видят" не то, что написано на самом деле.

Георгий

Reply to
George Shepelev

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

Вторник Июнь 13 2006 09:58, Shapovalov Alexey Ivanovich wrote to Dmitry Orlov:

SI> Предлагаю последнюю отквоченную строку внести в FAQ в ответ на вопрос SI> кто-такой GS. И отсылать всех в FAQ к этому вопросу модератором при SI> попытке обсуждения с GS USB, C/C++, PCI и AVR. SI> По моему много лишнего флейма сразу убьётся.

Мноло лишнего флейма сразу убьётся, если запретить "скунсьи наезды" на участников эхи, в виде намереного искажения имён или использования хамских "кликух". Кое-кто использует любой повод для подобных "наездов" - более конструктивных интересов у этой публики не наблюдается.

Особенно эффективно убрать дерьмо из эхи, если после возобновления подобного поведения хамом после выхода из отключения сразу же его отключать, не дожидаясь очередного накопления "трёх плюсов".

Георгий

Reply to
George Shepelev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.