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

Здравствуй, Jurgis Armanavichius! июня месяца тринадцатого дня ты писал(а):

[...]

JA> А я проникся удобством IDE на Turbo C v1.0. Во где вещь, после JA> компиляторов коммандной строки! :-) А то PL/M-ишь, PL/M-ишь, пока JA> результата дождешься... Правда, когда я PL/M-ил никаких персональников JA> у нас еще не было...

И я с него начинал - видимо в СССР Turbo C (Borland C) был "народным" инструментом.

С уважением, Игорь Хавторин (ака Gary). E-mail: fido_gary собака gfm точка ru

Reply to
Igor Havtorin
Loading thread data ...

Hi Jurgis !

Совсем недавно 13 Jun 06 17:29, Jurgis Armanavichius писал к Vladimir Vassilevsky:

VV>> все уже готово. Сперва нужно проинициализировать MMU, потом VV>> всякие фазы и времянки, потом память, потом кеш, потом стеки, VV>> потом ПДПшники, потом много чего еще, потом разложить код по VV>> разным сегментам памяти. А таблица конструкторов - она в самом VV>> конце.

JA> Мы о микроконтроллерах или о запуске Windows Vista на писюке? ;-) Hу, микроконтроллеры- они разный вид имеют. У одного это AVR или PIC, у другого- какой нибудь Blackfin или ARM.

JA> Я, слава Богу, с микроконтроллерами работаю. С микромикроконтроллерами. Тебе повезло. :-)

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

Tue Jun 13 2006 17:29, Jurgis Armanavichius wrote to Vladimir Vassilevsky:

VV>> Сперва нужно проинициализировать MMU, потом всякие фазы VV>> и времянки, потом память, потом кеш, потом стеки, потом ПДПшники, JA> Мы о микроконтроллерах или о запуске Windows Vista на писюке? ;-)

Заранее извиняюсь, но Вы случайно не родственник Резиновой Зины? А то, знаете, есть некоторая степень сходства в деталях. Тут есть Кирилл Фролов, видный специалист по разоблачению засланцев, виртуалов и роботов. Без справки от него, что вы бываете на самом деле, как-то неудобно...

VLV

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

Reply to
Vladimir Vassilevsky

Привет Jurgis!

13 Jun 06 17:29, Jurgis Armanavichius писал Kirill Frolov:

KF>> Если нужно что-то нетипичное.

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

А если это нетипичное должно быть сделано до вызова конструкторов?

Всего наилучшего, [Team PCAD 2000] Алексей М. ... В главной роли - Сильвестр с талоном.

Reply to
Alex Mogilnikov

Hello Igor!

13 Jun 34 16:51, Igor Havtorin wrote to Jurgis Armanavichius:

JA>> А я проникся удобством IDE на Turbo C v1.0. Во где вещь, после JA>> компиляторов коммандной строки! :-) А то PL/M-ишь, PL/M-ишь, пока JA>> результата дождешься... Правда, когда я PL/M-ил никаких JA>> персональников у нас еще не было...

IH> И я с него начинал - видимо в СССР Turbo C (Borland C) был "народным" IH> инструментом.

А я с Turbo C 2.0 проникся идеей, что в качестве универсального IDE лучше использовать любимый текстовый редактор, а не разномастные недоделанные оболочки каждого отдельного компилятора :-)

Сначала такой IDE был досовский Multi-Edit , теперь Visual Slickedit ...

Sergei

Reply to
Sergei Podstrigailo

Привет!

Tue Jun 13 2006 17:51, Igor Havtorin wrote to Jurgis Armanavichius:

JA>> А я проникся удобством IDE на Turbo C v1.0. Во где вещь, после JA>> компиляторов коммандной строки! :-) А то PL/M-ишь, PL/M-ишь, пока JA>> результата дождешься... Правда, когда я PL/M-ил никаких персональников JA>> у нас еще не было... IH> И я с него начинал - видимо в СССР Turbo C (Borland C) был "народным" IH> инструментом.

Истинно так! :-) Может быть кто-то попробовал другие инструменты, но Борланд как-то очень органично влился в широкие народные массы xUSSR :-)

Юргис

Reply to
Jurgis Armanavichius

Привет!

Tue Jun 13 2006 18:40, Vladimir Vassilevsky wrote to Jurgis Armanavichius:

VV>>> Сперва нужно проинициализировать MMU, потом всякие фазы VV>>> и времянки, потом память, потом кеш, потом стеки, потом ПДПшники, JA>> Мы о микроконтроллерах или о запуске Windows Vista на писюке? ;-) VV> Заранее извиняюсь, но Вы случайно не родственник Резиновой Зины? VV> А то, знаете, есть некоторая степень сходства в деталях. VV> Тут есть Кирилл Фролов, видный специалист по разоблачению засланцев, VV> виртуалов и роботов. Без справки от него, что вы бываете на самом деле, VV> как-то неудобно...

Владимир! Ты ведь не первый день в этой эхе. Я - тоже. Почему ты меня обижаешь? Я дал хоть малейший повод к этому? Уверен, что нет. Получается, что ты на меня наехал совершенно незаслуженно и необоснованно! Стыдись!

Или тебе по делу ответить нечего? Ты считаешь типичным применение MMU и ПДП в микроконтроллерных применениях ;-)

P.S. Я не сержусь. Понимаю: ты приколоться захотел. Давай, прикалывайся :-)

Юргис

Reply to
Jurgis Armanavichius

Привет!

Tue Jun 13 2006 20:23, Alex Mogilnikov wrote to Jurgis Armanavichius:

JA>> Если нужно что-то нетипичное, то не нужно стартап ковырять, а делать JA>> вызов этого нетипичного в самом начале main. AM> А если это нетипичное должно быть сделано до вызова конструкторов?

Hу, чтобы не быть голословным, ты, конечно, можешь привести пример оной необходимости? Я, честно признаюсь, не могу привести такой пример из своей практики. Хотя и не отрицаю, что в каких-то (неведомых мне) случаях это может понадобиться.

Юргис

Reply to
Jurgis Armanavichius

Hi Jurgis !

Совсем недавно 13 Jun 06 22:16, Jurgis Armanavichius писал к Igor Havtorin:

IH>> И я с него начинал - видимо в СССР Turbo C (Borland C) был IH>> "народным" инструментом.

JA> Истинно так! :-) Может быть кто-то попробовал другие инструменты, но JA> Борланд как-то очень органично влился в широкие народные массы xUSSR JA> :-)

Hе, широкие массы- это Примус, 4-й Фортран или 1-й PL. Машинное время по расписанию, или в офф-лайне: бланки с программой в перфораторную, колоду в диспетчерскую, завтра распечатка. Лезвием по чистой перфокарте вжик, в дубликатор, из дубликатора в колоду, и по кругу. Бедный дубликатор почему-то от лезвийных дырок часто ломался, но к нему не было очереди как к резервному перфоратору.

А вы говорите.... :-)

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

Пpивет Alex! Alex Kouznetsov --> Pavel Grishin ( Tue Jun 13 2034, 06:26 )

PG>> Уже в 512 EPROM и 64 SRAM бyдет ФОРТ кpyтится запpосто.

Как появится за 0.5$ такое в SOT23-6 адаптиpyю (попpошy спецов, т.к. асмом PIC хоpошо не владею :) и займyсь выпyском своего пеpвого 1000000 девайсов!

AK> Примерчик не приведешь?

Есть готовое y почти всех pеализаций Фоpта для IBM, пpо что и говоpю.

AK> По моим представлениям Форту нужно несколько кило кода...

Hа 51 сделал коммеpческий пpоект в пpошлом веке. Пpога заняла полтоpа кило - это pешение задачи.

Hа AVR сам написал, но не запyстил, обнаpyжил yже готовенькое в AnsForth - только выбиpай тип пpоца и готов для него код! :)

Фоpт ОЧЕHЬ компактен. Дабы не pазводить напpаслины, коpотко. Для IBM ядpо SMAL32 занимает... 17 байт. Сам лично пеpелопатил паpy pаз под микpоскопом. И далее отpащивай в нyжнyю стоpонy. Вот из доки:

-------

2.13 Адpесный интеpпpетатоp, или как pаботает Фоpт-система

Адpесный интеpпpетатоp - небольшая пpогpамма, написанная на языке ассем- блеpа, котоpая yпpавляет pаботой всей Фоpт-системы. Компактность этой пpог- pаммы (в данной pеализации Фоpт-системы адpесный интеpпpетатоp занимает всего

17 (семнадцать!) байт), ее пpостота в значительной степени опpеделяют кpасотy и стиль Фоpта.

-------

-= Брест. Павел Гришин =-

Reply to
Pavel Grishin

Tue Jun 13 2006 22:16, Jurgis Armanavichius wrote to Alex Mogilnikov:

JA>>> Если нужно что-то нетипичное, то не нужно стартап ковырять, а делать JA>>> вызов этого нетипичного в самом начале main. AM>> А если это нетипичное должно быть сделано до вызова конструкторов?

Или вообще до вызова чего бы то ни было.

JA> Hу, чтобы не быть голословным, ты, конечно, можешь привести пример оной JA> необходимости? Я, честно признаюсь, не могу привести такой пример из JA> своей практики. Хотя и не отрицаю, что в каких-то (неведомых мне) случаях JA> это может понадобиться.

MC9S12, например. Положение RAM, FLAS & SFR в адресном пространстве задается одним из регистров. Устанавливать RAM надо до инициализации стека, иначе работать не будет.

movb #0x10,INITRM ; RAM at 0x1000-0x1FFF

самая первая команда в cstartup.s33

;---------------------------------------------------------------------- LDS #.SFE.(CSTACK) ; Stack grows from high to low addresses

Для АВР это неактуально, хотя если хочется использовать внешнее ОЗУ для стека то придется колдовать.

Да и MMU начинает использоваться все чаще и чаще.

Reply to
Yuriy K


Hello, Jurgis Armanavichius! You wrote in conference fido7.ru.embedded to Alex Mogilnikov on Tue, 13 Jun

2006 21:16:16 +0400:

JA>>> Если нужно что-то нетипичное, то не нужно стартап ковырять, а JA>>> делать вызов этого нетипичного в самом начале main. AM>> А если это нетипичное должно быть сделано до вызова AM>> конструкторов?

JA> Hу, чтобы не быть голословным, ты, конечно, можешь привести пример JA> оной необходимости? Я, честно признаюсь, не могу привести такой JA> пример из своей практики. Хотя и не отрицаю, что в каких-то JA> (неведомых мне) случаях это может понадобиться.

Например в контроллерах с внешним ОЗУ может потребоваться разместить стек или инициализированные данные в нем, а это можно только в стартапе сделать, до вызова main даже если пользоваться чистым C без конструкторов. Скажем для PIC'ов я в стартап только посмотреть лазил, а для многих других его приходилось рихтовать вдумчиво.

dima

formatting link

Reply to
Dmitry Orlov

Tue Jun 13 2006 22:31, Dmitry Orlov wrote to Jurgis Armanavichius:

DO> Hапример в контроллерах с внешним ОЗУ может потребоваться разместить стек DO> или инициализированные данные в нем,

Например, до инициализации железа может вообще не быть никакого ОЗУ. Потому что DRAM.

DO> Скажем для PIC'ов я в стартап только посмотреть лазил, а DO> для многих других его приходилось рихтовать вдумчиво. Микроконтроллеры - это не только пик-контроллеры фирмы AVR.

VLV

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

Reply to
Vladimir Vassilevsky

Tue Jun 13 2006 22:16, Jurgis Armanavichius wrote to Vladimir Vassilevsky:

VV>> Заранее извиняюсь, но Вы случайно не родственник Резиновой Зины? VV>> А то, знаете, есть некоторая степень сходства в деталях. VV>> Тут есть Кирилл Фролов, видный специалист по разоблачению засланцев, VV>> виртуалов и роботов. Без справки от него, что вы бываете на самом деле, VV>> как-то неудобно...

JA> Владимир! Ты ведь не первый день в этой эхе.

Лет так пятнадцать. Mогу документально подтвердить свою реальность.

JA> Я - тоже. Почему ты меня JA> обижаешь? Я дал хоть малейший повод к этому? Уверен, что нет. Получается, JA> что ты на меня наехал совершенно незаслуженно и необоснованно! Стыдись!

Характерные приметы виртуального обьекта нового типа: 1. Внешние отличия, служащие для привлечения внимания к своей псевдоперсоне. 2. Тривиальность и поверхностность взглядов и знаний. 3. Задавание глупых или провокационных вопросов. 4. Большой траффик обычно порождают психи и идиоты. Виртуальные обьекты cоздают много траффика, но они не похожи на психов и идиотов. JA> Или тебе по делу ответить нечего? Ты считаешь типичным применение MMU JA> и ПДП в микроконтроллерных применениях ;-) Мне непонятно, в чем суть инкубов и сукубов, и каковы их цели и задачи. Кстати, как мне кажется, я не сказал ничего обидного для них :-) VLV

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

Reply to
Vladimir Vassilevsky

Hi Jurgis,

Tue Jun 13 2006 17:29, Jurgis Armanavichius wrote to Michael Zaichenko:

JA> From: "Jurgis Armanavichius" snipped-for-privacy@medelkom.com

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

JA> Hу и что? У меня в Hitachi аж семь CS-ов и ничего страшного ;-)

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

JA> Это даже вредно, пихать свою нестандартную инициализацию в стартап. JA> Это можно и нужно делать отдельной процедурой, чтобы было понятно, JA> наглядно и сопроводибельно. Можешь слить любой пример от кейла под любую плату и посмотреть - сырец стартапа прицеплен к проекту. Глянул первый попавшийся стартап - 1818 строк. Как думаешь, не много ли для четырех CSов ;)

WBR, Michael.

Reply to
Michael Zaichenko

,-' Hello, Vladimir Vassilevsky! How is your connection today?

JA>> Владимир! Ты ведь не первый день в этой эхе. VV> Лет так пятнадцать.

Это как так? :-)

`-._ --- Alexander Kocharin ---

Reply to
Alex Kocharin

Wed Jun 14 2006 02:16, Michael Zaichenko wrote to Jurgis Armanavichius:

MZ> Ты не понял. У камня есть комнда, после выполнения которой ты уже MZ> не все можешь.

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

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

Reply to
Vladimir Vassilevsky

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

Hello, Vladimir Vassilevsky! You wrote in conference fido7.ru.embedded to Michael Zaichenko on Tue, 13 Jun 2006 23:35:39 +0000 (UTC):

MZ>> Ты не понял. У камня есть комнда, после выполнения которой ты уже MZ>> не все можешь.

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

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

*---------------------------------------------------------------*
  • If the 68HC11 OPTION register MUST be modified, here is the *
  • place to do it in order to meet the 64-cycle requirement. *
*---------------------------------------------------------------*

dima

formatting link

Reply to
Dmitry Orlov

Привет!

Tue Jun 13 2006 22:47, Yuriy K wrote to Jurgis Armanavichius:

JA>> Hу, чтобы не быть голословным, ты, конечно, можешь привести пример JA>> оной необходимости? Я, честно признаюсь, не могу привести такой JA>> пример из своей практики. Хотя и не отрицаю, что в каких-то JA>> (неведомых мне) случаях это может понадобиться. YK> MC9S12, например. Положение RAM, FLAS & SFR в адресном пространстве YK> задается одним из регистров. Устанавливать RAM надо до инициализации YK> стека, иначе работать не будет. YK> movb #0x10,INITRM ; RAM at 0x1000-0x1FFF YK> самая первая команда в cstartup.s33 YK> ;---------------------------------------------------------------------- YK> LDS #.SFE.(CSTACK) ; Stack grows from high to low addresses YK> Для АВР это неактуально, хотя если хочется использовать внешнее ОЗУ YK> для стека то придется колдовать.

Да, логично. Теперь понятно.

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

YK> Да и MMU начинает использоваться все чаще и чаще.

Бог миловал :-) Применяю просто PC-совместимую плату. Там все эти тонкости решены на уровне системы. Остается только со своей задачей воевать.

Юргис

Reply to
Jurgis Armanavichius

Привет!

Tue Jun 13 2006 22:31, Dmitry Orlov wrote to Jurgis Armanavichius:

JA>> Hу, чтобы не быть голословным, ты, конечно, можешь привести пример JA>> оной необходимости? Я, честно признаюсь, не могу привести такой JA>> пример из своей практики. Хотя и не отрицаю, что в каких-то JA>> (неведомых мне) случаях это может понадобиться. DO> Hапример в контроллерах с внешним ОЗУ может потребоваться разместить DO> стек или инициализированные данные в нем, а это можно только в стартапе DO> сделать, до вызова main даже если пользоваться чистым C без DO> конструкторов. Скажем для PIC'ов я в стартап только посмотреть лазил, DO> а для многих других его приходилось рихтовать вдумчиво.

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

Юргис

Reply to
Jurgis Armanavichius

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.