WINAVR

Sep 05, 2005 Last reply: 20 years ago 816 Replies

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Ruslan Mohniuc on Mon, 24 Oct 2005 13:52:59

+0400:

AS>>> Если-бы использовать C++ - то можно использовать ссылки и инлайны. AS>>> Таскинг (*вроде-бы*) в этом случае способен понять, что в AS>>> этом случае подставляются прямые обращения к портам.

RM>> Hу я в обычном си сижу. Hету с++ (у меня) под PIC18.

DT> Да, кстати, inline тут было бы идеальным вариантом.

inline - не гарантирует того, что код будет именно inline. Макрос - гарантирует.

dima

formatting link

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

Mon Oct 24 2005 21:00, Michael Belousoff wrote to Olga Nonova:

ON>> Это y Вас "не было". А в пpиличных местах пpиличные люди вполне ON>> yспешно pаботали на системах Intelec под ISIS-II, где все yже было: и ON>> макpоассемблеpы, и компилятоp PLM80, и линкеpы с библиотекаpями. Это ON>> yже в начале 80-х в СССР. А в конце 80-х yже вовсю опеpационкy ISIS и ON>> весь софт от Intel эмyлиpовали на IBM-пеpсоналках для 51-го семейства ON>> yже пpактически повсеместно, чyть ли не в Домах пионеpов. Я не знаю, ON>> где Вы были в то вpемя, но вести легкомысленные pазговоpы пpо ON>> yщеpбность PLM Вам явно не следyет.

MB> Оленька, Вы почемy такая злая?

Да, меня злят огульные заявления людей, ничего в жизни не знающих и не видевших кроме Си. Даю таким окорот.

MB> В конце 80-х годов в СССР в pазных местах было по-pазномy. MB> Hо никакого "пpактически повсеместно ISIS и i51" не было.

Да, я немного погорячилась на счет "повсеместно". Однако, про себя знаю точно- работала в 1985г на IBM-XT и запускала на нем именно эмулятор ISIS потому, что было привычным инструментом- до этого с 1980г работала на нормальном Intelec. И все это в Советские времена при кровавой диктатуре с жуткими нарушениями хельсинских соглашений. История с Intelec, помню, выглядела так. У нас тогда печатался в переводе американский журнал "Электроника". Оттуда я узнала про победное шествие микропроцессоров Intel. И захотелось тоже. По крупицам из статей журнала удалось создать общую картину инфраструктуры, необходимой для начала разработки. Потом пошла к начальству и стала соблазнять невиданными успехами в жизни и докторской диссертацией, если достанут из-за бугра необходимое оборудование. Hачальство клюнуло и свело меня со спецслужбами. Те выдали настоящие каталоги и руководства Intel, помню, белоснежные A4 с вырезом на обложке под заголовок. Я составила список необходимого, и через полгода уже распаковывала ящики под присмотром трех спецагентов, которые следили, чтобы не было бомбы или идеологически вредных материалов. Hичего из этого там не было, а был настоящий Intelec со всем софтом, который так пыжится обкакать Орлов, были две EvalBoard на базе 8085, программатор УФ-ПЗУ, и много кристаллов про запас. Hадо признаться, что докторскую начальству по неразрушающему контролю изделий я таки сделала именно на этом оборудовании. В 1985г перешла работать в другое место и там уже стояли несколько IBM-XT и народ вовсю крепал на них одноплатные контроллеры на базе 8051.

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

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Andrey Solomatov on Mon, 24 Oct 2005 13:59:52

+0400:

AS>> С учётом того, что в Си эллипсис - это тоже полухак... (про AS>> C++ную, скорее Адовскую возможность давать значения AS>> параметрам функции по умолчани - здесь не стоит).

DT> (грустно) А в Аде ещё к параметрам по имени обращаться DT> можно...

Да забудь ты про аду, сколько можно ныть? Да и про паскаль тоже.

AS>> Вывод в произвольный файл на паскале обеспечивал, насколько AS>> мне помнится, почти такой-же Write (только первый параметр - AS>> файл).

DT> Ага. Hо не совсем в произвольный: в типизированный или DT> текстовый. Для untyped files применялись процедуры BlockRead DT> и BlockWrite.

Очередная ТРшная дурь. Из-за практической невозможности и неудобности использования виртовского file of type пришлось сделать еще один механизм для работы с файлами. А файл типа text очень мило с символом #26 обращается. Хорошо хоть сорцы этого безобразия были, можно было отшибить на фиг.

AS>> Если требовался выод чего-то специфического - городим свою AS>> функцию с выводом результата в виде строки.

DT> Конечно. Тем более, что строки вполне удобные.

Только процедура (особенно ее вызов) выглядит дико.

AS>> поскольку паскаль - язык со строгой типизацией, то подсунуть AS>> ему "неизвестный тип данных" действительно слегка AS>> затруднительно - именно в силу построения языка.

DT> В BP это тоже есть: нетипизированные параметры процедуры. :)

Есть :). См. мой предыдущий ответ на эту тему.

DT> А в Дельфи так вообще жуткое извращение придумали: тип данных DT> variant.

Дельфи - вообще одно сплошное извращение.

dima

formatting link

ðÒÉ×ÅÔ, Alex !

23 Oct 05 , 21:36 Alex Mogilnikov ÐÉÓÁÌ Ë Dimmy Timchenko:

DT>> äÁ-ÄÁ. üÔÏ Õ ÔÅÂÑ ÔÑ֣ÌÏÅ ÎÁÓÌÅÄÉÅ C, ÇÄÅ ÔÙ ×ӣ ÜÔÏ ×ÒÕÞÎÕÀ DT>> ÄÅÌÁÅÛØ, É ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÍÏÖÅÛØ ÞÔÏ-ÔÏ ÚÁÂÙÔØ. :)

AM> á! ôÁË ÜÔÏ ÔÙ Õ ÍÅÎÑ ÚÁ ÓÐÉÎÏÊ ÓÔÏÑÌ, ËÏÇÄÁ Ñ ÒÕËÁÍÉ ËÏÍÐÉÌÉÒÏ×ÁÌ AM> ÚÁÂÙÔÙÅ ÍÏÄÕÌÉ? :)

AM> úÁ ÍÅÎÑ ×ÓÅ ÚÁ×ÉÓÉÍÏÓÔÉ ËÏÍÐØÀÔÅÒ ÏÔÓÌÅÖÉ×ÁÅÔ. é ×ÓÅ ÞÔÏ ÎÁÄÏ AM> ÐÅÒÅÓÏÂÉÒÁÅÔ ÂÅÚ ÍÏÉÈ ÕËÁÚÁÎÉÊ.

ëÓÔÁÔÉ, ÉÎËÌÀÄÎÉËÉ × ÚÁ×ÉÓÉÍÏÓÔÉ ÒÕËÁÍÉ ÐÒÏÐÉÓÙ×ÁÅÛØ ÉÌÉ Õ ÔÅÂÑ ÅÓÔØ ÈÉÔÒÙÊ ÎÁ×ÏÒÏÔ ×ÏËÒÕÇ make? ÉÌÉ ÔÙ (gnu) make HÅ ÉÓÐÏÌØÚÕÅÛØ?

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ÐÏÌÅÔ ÎÁÄ ÇÎÅÚÄÏÍ ËÏÎÄÒÁÛËÉ

Hello, Olga Nonova! You wrote in conference fido7.ru.embedded to Michael Belousoff on Mon, 24 Oct 2005 17:11:08

+0000 (UTC):

ON>>> пpактически повсеместно, чyть ли не в Домах пионеpов. Я не ON>>> знаю, где Вы были в то вpемя, но вести легкомысленные ON>>> pазговоpы пpо yщеpбность PLM Вам явно не следyет.

MB>> Оленька, Вы почемy такая злая?

ON> Да, меня злят огульные заявления людей, ничего в жизни не ON> знающих и не видевших кроме Си. Даю таким окорот.

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

196 Интел предлагал С.

dima

formatting link

ðÒÉ×ÅÔ Dimmy! ðÏÎÅÄÅÌØÎÉË ïËÔÑÂÒØ 24 2005 05:53, Dimmy Timchenko -> Ivan Melnikov:

IM>> ðÏÎÑÔÎÏ. á ÞÔÏ ÚÁ ÆÉÒÍÁ ÉÈ ×ÙÐÕÓËÁÅÔ ? DT> Texas Instruments. DT>

á, ÐÒÅÄÓÔÁ×ÉÌ, ÞÔÏ ÜÔÏ ÚÁ ÐÒÏÃÅÓÓÏÒ. ñ Ó ÎÉÍ ÎÅ ÒÁÂÏÔÁÌ É ÒÁÂÏÔÁÔØ ÎÅ ÖÁÖÄÕ.

IM>> á ×ÏÔ È×ÁÌÑÔ ÐÒÏÃÅÓÓÏÒÙ ÆÉÒÍÙ ÓÉÌÁÂÓ. IM>> ôÙ Ó ÔÁËÉÍÉ ÍÉËÒÏËÏÎÔÒÏÌÌÅÒÁÍÉ ÎÅ ÒÁÂÏÔÁÌ ? DT> åÓÌÉ Ñ ÎÅ ÐÕÔÁÀ, ÜÔÏ "ÓÕÐÅÒËÌÏÎÙ" x51. úÁÐÏÒÏÖÅÃ, ÎÁ ËÏÔÏÒÙÊ DT> ÐÏÓÔÁ×ÉÌÉ ÒÅÁËÔÉ×ÎÙÊ Ä×ÉÇÁÔÅÌØ. ;) éÌÉ ÜÔÏ Cygnal? DT>

ðÒÁ×ÉÌØÎÏ Cygnal. óÅÊÞÁÓ ÍÎÏÇÉÅ ÎÁ ÎÅÇÏ ÐÅÒÅÈÏÄÑÔ. HÏ Õ ÎÁÓ ÕÖÅ ÚÁÂÉÔÙ ÁÔÍÅÌÏ×ÓËÉÅ x51 ÐÏÜÔÏÍÕ, Ñ ÎÅ ÄÅÒÇÁÀÓØ. ÷ ÔÅÞÅÎÉÉ ÇÏÄÁ ÔÏÞÎÏ ÐÒÉÄÅÔÓÑ ÎÁ ÁÔÍÅÌÏ×ÓËÉÈ ÐÒÏÃÅÓÓÏÒÁÈ ÒÁÂÏÔÁÔØ. äÁ, ÅÝÅ ÐÒÉÄÅÔÓÑ ÐÏÚÎÁ×ÁÔØ ÐÏÔÉÈÏÎØËÕ C167, ÈÏÔÑ ÓÉÍÅÎÓ ÎÏ×ÕÀ ÍÏÄÉÆÉËÁÃÉÀ ÜÔÉÈ ÐÒÏÃÅÓÓÏÒÏ× ×ÙÐÕÓÔÉÌ ÐÏÈÏÖÅ. ðÒÏÃÅÓÓÏÒ ËÏÎÅÞÎÏ ÍÏÝÎÙÊ É ÄÌÑ ÎÁÛÉÈ ÃÅÌÉÊ ÐÒÅÄÏÓÔÁÔÏÞÎÙÊ. äÁ, ×ÏÔ ÞÔÏ ÍÅÎÑ × óÉ ÏÔÔÁÌËÉ×ÁÅÔ: ðÁÒÎÉÛËÁ ÎÁÐÉÓÁÌ ÎÁ óÉ ÐÒÏÇÒÁÍÍÕ É × ÎÅÊ ÂÙÌÁ ×ÏÔ ÔÁËÁÑ ÓÔÒÏÞËÁ bit i; i=0; while(i!=1); ÔÁË ×ÏÔ ÄÁÎÎÁÑ ÓÔÒÏÞËÁ ÎÅ ÐÏÚ×ÏÌÑÌÏ ÐÒÏÇÒÁÍÍÅ ÒÁÂÏÔÁÔØ, Á ËÏÇÄÁ ÚÁÐÉÓÁÌÉ ×ÏÔ ÔÁË while(i==0); ×ÓÅ ÚÁÒÁÂÏÔÁÌÏ. ÷ ÔÏÍ É × ÄÒÕÇÏÍ ÓÌÕÞÁÅ ÇÅÎÅÒÉÒÏ×ÁÌÓÑ ÏÄÉÎ É ÔÏÔ ÖÅ ËÏÄ. ÷ÏÔ ÔÁË. ðÏÞÅÍÕ ÔÁË, Ñ É ÎÅ ÐÏÎÑÌ. ó Õ×ÁÖÅÎÉÅÍ, Ivan Melnikov ðÏÎÅÄÅÌØÎÉË ïËÔÑÂÒØ 24 2005 22:36.

... "óÞÁÓÔÌÉ×ÙÅ ÔÒÕÓÏ× ÎÅ ÎÁÄÅ×ÁÀÔ."

ðÒÉ×ÅÔ, Kirill !

24 Oct 05 , 01:11 Kirill Frolov ÐÉÓÁÌ Ë Dimmy Timchenko:

KF> HÁÐÒÉÍÅÒ, ÐÉÓÀËÕ ÌÕÞÛÅ 32 ÂÉÔ ÉÎÔ, Á ÅÓÌÉ ÔÙ ÅÍÕ 16 ÂÉÔ ÂÕÄÅÛØ KF> ÄÁ×ÁÔØ, ÏÎ ÎÁÞÎÅÔ ÔÏÒÍÏÚÉÔØ.

ëÓÔÁÔÉ, Á ÎÁÓËÏÌØËÏ ÔÏÒÍÏÚÉÔØ ÂÕÄÅÔ?

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ðÒÉÓÔÁÀÔ Ë [úÁ/ðÏÄ]ÓÔÁ×Å ÇÏÓÔÉ

Hi Vladimir, hope you are having a nice day!

24 ïËÔ 05, Vladimir Vassilevsky wrote to Dmitry Orlov:

DO>> inline - ÎÅ ÇÁÒÁÎÔÉÒÕÅÔ ÔÏÇÏ, ÞÔÏ ËÏÄ ÂÕÄÅÔ ÉÍÅÎÎÏ inline. DO>> íÁËÒÏÓ - ÇÁÒÁÎÔÉÒÕÅÔ.

VV> ÷×ÉÄÕ ÔÏÇÏ, ÞÔÏ ÏÐÅÒÁÃÉÑ copy-paste Ñ×ÌÑÅÔÓÑ ÏÓÎÏ×ÎÙÍ ÓÏ×ÒÅÍÅÎÎÙÍ VV> ÍÅÔÏÄÏÍ ÄÌÑ code reuse, ÐÒÏÄ×ÉÎÕÔÙÅ ËÏÍÐÉÌÅÒÙ ÕÍÅÀÔ ÓÁÍÉ ÓËÌÁÄÙ×ÁÔØ VV> ÏÄÉÎÁËÏ×ÙÊ ËÏÄ × ÆÕÎËÃÉÉ. ôÁË ÄÅÌÁÅÔ, ÎÁÐÒÉÍÅÒ, IAR. óÏÏÔ×ÅÔÓÔ×ÅÎÎÏ VV> ÍÁËÒÏÓÙ ÎÅ ÇÁÒÁÎÔÉÒÕÀÔ ÉÎÌÁÊÎÏ×ÏÓÔÉ.

HÅ ÚÎÁÀ ËÁË × IAR, ÎÏ × ÍÉËÒÏÞÉÐÏ×ÓËÏÍ ËÏÍÐÉÌÑÔÏÒÅ procedural abstraction ÏÔËÌÀÞÁÅÔÓÑ ËÌÀÞÉËÏÍ × ËÏÍÍÁÎÄÎÏÊ ÓÔÒÏËÅ. ôÁË ÞÔÏ ÇÁÒÁÎÔÉÑ, ËÁË ÐÒÁ×ÉÌÏ, ÅÓÔØ.

WBR, AVB

Mon Oct 24 2005 23:28, Alexey V Bugrov wrote to Vladimir Vassilevsky:

DO>>> inline - ÎÅ ÇÁÒÁÎÔÉÒÕÅÔ ÔÏÇÏ, ÞÔÏ ËÏÄ ÂÕÄÅÔ ÉÍÅÎÎÏ inline. DO>>> íÁËÒÏÓ - ÇÁÒÁÎÔÉÒÕÅÔ.

VV>> ÷×ÉÄÕ ÔÏÇÏ, ÞÔÏ ÏÐÅÒÁÃÉÑ copy-paste Ñ×ÌÑÅÔÓÑ ÏÓÎÏ×ÎÙÍ ÓÏ×ÒÅÍÅÎÎÙÍ VV>> ÍÅÔÏÄÏÍ ÄÌÑ code reuse, ÐÒÏÄ×ÉÎÕÔÙÅ ËÏÍÐÉÌÅÒÙ ÕÍÅÀÔ ÓÁÍÉ ÓËÌÁÄÙ×ÁÔØ VV>> ÏÄÉÎÁËÏ×ÙÊ ËÏÄ × ÆÕÎËÃÉÉ. ôÁË ÄÅÌÁÅÔ, ÎÁÐÒÉÍÅÒ, IAR. óÏÏÔ×ÅÔÓÔ×ÅÎÎÏ VV>> ÍÁËÒÏÓÙ ÎÅ ÇÁÒÁÎÔÉÒÕÀÔ ÉÎÌÁÊÎÏ×ÏÓÔÉ.

AVB> HÅ ÚÎÁÀ ËÁË × IAR, ÎÏ × ÍÉËÒÏÞÉÐÏ×ÓËÏÍ ËÏÍÐÉÌÑÔÏÒÅ procedural AVB> abstraction ÏÔËÌÀÞÁÅÔÓÑ ËÌÀÞÉËÏÍ × ËÏÍÍÁÎÄÎÏÊ ÓÔÒÏËÅ.

÷ IAR AVR 3.xx ÅÓÔØ #pragma inline = forced, Ô.Å. ËÁË ÒÁÚ ÄÌÑ ÆÕÎËÃÉÊ ÉÎÌÁÊÎÏ×ÏÓÔØ ÏÂÅÓÐÅÞÉ×ÁÅÔÓÑ.

VLV

"çÒÉÇÏÒÉÊ ëÏÔÏ×ÓËÉÊ ÏÇÒÁÂÉÌ ÇÏÒÏÄÓËÕÀ ÔÀÒØÍÕ..." (c) CÏÌÖÅÎÉÃÙÎ

Mon Oct 24 2005 23:54, Vladimir Vassilevsky wrote to Alexey V Bugrov:

DO>>>> inline - ÎÅ ÇÁÒÁÎÔÉÒÕÅÔ ÔÏÇÏ, ÞÔÏ ËÏÄ ÂÕÄÅÔ ÉÍÅÎÎÏ inline. DO>>>> íÁËÒÏÓ - ÇÁÒÁÎÔÉÒÕÅÔ.

VV>>> ÷×ÉÄÕ ÔÏÇÏ, ÞÔÏ ÏÐÅÒÁÃÉÑ copy-paste Ñ×ÌÑÅÔÓÑ ÏÓÎÏ×ÎÙÍ ÓÏ×ÒÅÍÅÎÎÙÍ VV>>> ÍÅÔÏÄÏÍ ÄÌÑ code reuse, ÐÒÏÄ×ÉÎÕÔÙÅ ËÏÍÐÉÌÅÒÙ ÕÍÅÀÔ ÓÁÍÉ ÓËÌÁÄÙ×ÁÔØ VV>>> ÏÄÉÎÁËÏ×ÙÊ ËÏÄ × ÆÕÎËÃÉÉ. ôÁË ÄÅÌÁÅÔ, ÎÁÐÒÉÍÅÒ, IAR. óÏÏÔ×ÅÔÓÔ×ÅÎÎÏ VV>>> ÍÁËÒÏÓÙ ÎÅ ÇÁÒÁÎÔÉÒÕÀÔ ÉÎÌÁÊÎÏ×ÏÓÔÉ.

AVB>> HÅ ÚÎÁÀ ËÁË × IAR, ÎÏ × ÍÉËÒÏÞÉÐÏ×ÓËÏÍ ËÏÍÐÉÌÑÔÏÒÅ procedural AVB>> abstraction ÏÔËÌÀÞÁÅÔÓÑ ËÌÀÞÉËÏÍ × ËÏÍÍÁÎÄÎÏÊ ÓÔÒÏËÅ.

VV> ÷ IAR AVR 3.xx ÅÓÔØ #pragma inline = forced, Ô.Å. ËÁË ÒÁÚ ÄÌÑ ÆÕÎËÃÉÊ VV> ÉÎÌÁÊÎÏ×ÏÓÔØ ÏÂÅÓÐÅÞÉ×ÁÅÔÓÑ.

þÔÏ ÇÏÒÁÚÄÏ ÂÏÌÅÅ ÐÒÁ×ÉÌØÎÏ Ó ÁÂÓÔÒÁËÔÎÏ-ÆÉÌÏÓÏÆÓËÏÊ ÔÏÞËÉ ÚÒÅÎÉÑ.

WBR, Yuriy.

Hello, Vladimir Vassilevsky! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Mon, 24 Oct 2005 20:45:31

+0400:

DO>> inline - не гарантирует того, что код будет именно inline. DO>> Макрос - гарантирует.

VV> Ввиду того, что операция copy-paste является основным VV> современным методом для code reuse, продвинутые компилеры VV> умеют сами складывать одинаковый код в функции. Так делает, VV> например, IAR. Соответственно макросы не гарантируют VV> инлайновости.

Собственно инлайновости всего кода и не требуется. Требуется прямое обращение к порту, а не косвенное, которое получится если адрес порта передавать как параметр функции. А на это в случае макросов возможное объединение компилятором кусков функций в одну не повлияет. Так что если объединит - только спасибо ему.

dima

formatting link

Mon Oct 24 2005 23:30, Dmitry Orlov wrote to Vladimir Vassilevsky:

DO> óÏÂÓÔ×ÅÎÎÏ ÉÎÌÁÊÎÏ×ÏÓÔÉ ×ÓÅÇÏ ËÏÄÁ É ÎÅ ÔÒÅÂÕÅÔÓÑ. ôÒÅÂÕÅÔÓÑ ÐÒÑÍÏÅ DO> ÏÂÒÁÝÅÎÉÅ Ë ÐÏÒÔÕ, Á ÎÅ ËÏÓ×ÅÎÎÏÅ, ËÏÔÏÒÏÅ ÐÏÌÕÞÉÔÓÑ ÅÓÌÉ ÁÄÒÅÓ ÐÏÒÔÁ DO> ÐÅÒÅÄÁ×ÁÔØ ËÁË ÐÁÒÁÍÅÔÒ ÆÕÎËÃÉÉ. åÓÌÉ × ÓÉÓÔÅÍÅ ËÏÍÁÎÄ ÎÅÔ ËÏÓ×ÅÎÎÏÊ ÁÄÒÅÓÁÃÉÉ ÐÏÒÔÏ×, ÔÏ ÍÏÖÎÏ ×ÎÕÔÒÉ ÆÕÎËÃÉÉ ÓÄÅÌÁÔØ switch() ÎÁ ×ÓÅ ÓÌÕÞÁÉ. åÓÌÉ ËÒÉÔÉÞÎÁ ÓËÏÒÏÓÔØ, ÎÁÄÏ Õ×ÅÌÉÞÉ×ÁÔØ ÔÁËÔÏ×ÕÀ ÞÁÓÔÏÔÕ :-)

DO> á ÎÁ ÜÔÏ × ÓÌÕÞÁÅ ÍÁËÒÏÓÏ× ×ÏÚÍÏÖÎÏÅ DO> ÏÂßÅÄÉÎÅÎÉÅ ËÏÍÐÉÌÑÔÏÒÏÍ ËÕÓËÏ× ÆÕÎËÃÉÊ × ÏÄÎÕ ÎÅ ÐÏ×ÌÉÑÅÔ. ôÁË ÞÔÏ ÅÓÌÉ DO> ÏÂßÅÄÉÎÉÔ - ÔÏÌØËÏ ÓÐÁÓÉÂÏ ÅÍÕ.

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

VLV

"çÒÉÇÏÒÉÊ ëÏÔÏ×ÓËÉÊ ÏÇÒÁÂÉÌ ÇÏÒÏÄÓËÕÀ ÔÀÒØÍÕ..." (c) CÏÌÖÅÎÉÃÙÎ

Tue Oct 25 2005 01:03, Alex Mogilnikov wrote to Yuriy K:

AM>>> üÔÏ ÆÉÇÎÑ, ÐÒÉ ÐÏÑ×ÌÅÎÉÉ ÎÏ×ÏÊ ÍÏÄÉÆÉËÁÃÉÉ ÐÒÏÃÅÓÓÏÒÁ × ÔÏÍ AM>>> ÖÅ ÓÅÍÅÊÓÔ×Å ÐÒÉÄÅÔÓÑ ÍÏÄÉÆÉÃÉÒÏ×ÁÔØ ËÏÍÐÉÌÑÔÏÒ ÞÔÏÂÙ ÎÁÐÒÉÍÅÒ AM>>> ÄÏÂÁ×ÉÔØ ÐÏÄÄÅÒÖËÕ ÎÏ×ÏÇÏ ×ÅËÔÏÒÁ ÉÌÉ ÉÓËÌÀÞÅÎÉÑ.

YK>> úÁÞÅÍ? 8-0. åÓÌÉ ÍÅÈÁÎÉÚÍ ÏÂÒÁÂÏÔËÉ ÎÅ ÐÏÍÅÎÑÌÓÑ, ÔÏ ÄÏÂÁ×ÌÑÅÔÓÑ YK>> ÏÐÒÅÄÅÌÅÎÉÅ ÎÏ×ÏÇÏ ×ÅËÔÏÒÁ × ÈÉÄÅÒÅ É ×ÓÅ.

AM> HÁÐÒÉÍÅÒ Õ ARM äÌÑ ÒÁÚÎÙÈ ÉÓËÌÀÞÅÎÉÊ ÎÕÖÎÙ ÒÁÚÎÙÅ ËÏÍÁÎÄÙ ×ÏÚ×ÒÁÔÁ. AM> ÷ÏÚ×ÒÁÔ ÉÚ ÏÂÙÞÎÏÊ ÆÕÎËÃÉÉ - mov pc,lr, ×ÏÚ×ÒÁÔ ÉÚ swi - movs pc,lr, AM> ×ÏÚ×ÒÁÔ ÉÚ irq - subs pc,lr,#4, ×ÏÚ×ÒÁÔ ÉÚ data abort - subs pc,lr,#8. AM> óÅÊÞÁÓ ÐÏÓÍÏÔÒÅÌ - gcc ÄÌÑ ÆÕÎËÃÉÊ Ó ÁÔÒÉÂÕÔÏÍ interrupt ÄÅÌÁÅÔ ×ÏÚ×ÒÁÔ AM> ÞÅÒÅÚ subs pc,lr,#4. úÎÁÞÉÔ ÏÂÒÁÂÏÔÞÉË swi Ñ ÔÁËÉÍ ÏÂÒÁÚÏÍ ÓÄÅÌÁÔØ ÕÖÅ ÎÅ AM> ÓÍÏÇÕ, É ÓÐÅÃÉÁÌØÎÏÇÏ ÁÔÒÉÂÕÔÁ ÎÁ ÜÔÏÔ ÓÌÕÞÁÊ Ñ × ÄÏËÅ ÎÅ ×ÉÄÅÌ.

óÔÒÁÎÎÏ ÜÔÏ ... (ÔÒÅÈÍÉÎÕÔÎÏÅ ÛÕÒÛÁÎÉÅ ÇÕÇÌÅÍ) ... ×ÓÅ ÔÁÍ ÅÓÔØ.

formatting link
interrupt Use this attribute on the ARM, ... indicate that the specified function is an interrupt handler. The compiler will generate function entry and exit sequences suitable for use in an interrupt handler when this attribute is present.

Note, for the ARM, you can specify the kind of interrupt to be handled by adding an optional parameter to the interrupt attribute like this:

void f () __attribute__ ((interrupt ("IRQ"))); Permissible values for this parameter are: IRQ, FIQ, SWI, ABORT and UNDEF.

YK>> interrupt [INTVEC_START + 0x62] void TC6_interrupt(void);

AM> äÁ, ÔÏÞÎÏ. ÷ÉÄÅÌ Ñ ÔÁËÕÀ ËÏÎÓÔÕÒËÃÉÀ. ëÏÍÐÉÌÑÔÏÒ ÓÁÍ ÇÅÎÅÒÉÔ ËÏÍÁÎÄÕ AM> jmp ÐÏ ÕËÁÚÁÎÎÏÍÕ ÁÄÒÅÓÕ.

:-)))) HÅÔ ÔÁÍ ÉÎÓÔÒÕËÃÉÉ jmp, ÔÁÍ ÐÒÏÓÔÏ Ä×Á ÂÁÊÔÁ ÁÄÒÅÓÁ.

WBR, Yuriy.

ðÒÉ×ÅÔ Yuriy!

24 Oct 05 19:56, Yuriy K ÐÉÓÁÌ Alex Mogilnikov:

AM>> üÔÏ ÆÉÇÎÑ, ÐÒÉ ÐÏÑ×ÌÅÎÉÉ ÎÏ×ÏÊ ÍÏÄÉÆÉËÁÃÉÉ ÐÒÏÃÅÓÓÏÒÁ × ÔÏÍ AM>> ÖÅ ÓÅÍÅÊÓÔ×Å ÐÒÉÄÅÔÓÑ ÍÏÄÉÆÉÃÉÒÏ×ÁÔØ ËÏÍÐÉÌÑÔÏÒ ÞÔÏÂÙ ÎÁÐÒÉÍÅÒ AM>> ÄÏÂÁ×ÉÔØ ÐÏÄÄÅÒÖËÕ ÎÏ×ÏÇÏ ×ÅËÔÏÒÁ ÉÌÉ ÉÓËÌÀÞÅÎÉÑ.

YK> úÁÞÅÍ? 8-0. åÓÌÉ ÍÅÈÁÎÉÚÍ ÏÂÒÁÂÏÔËÉ ÎÅ ÐÏÍÅÎÑÌÓÑ, ÔÏ ÄÏÂÁ×ÌÑÅÔÓÑ YK> ÏÐÒÅÄÅÌÅÎÉÅ ÎÏ×ÏÇÏ ×ÅËÔÏÒÁ × ÈÉÄÅÒÅ É ×ÓÅ.

HÁÐÒÉÍÅÒ Õ ARM äÌÑ ÒÁÚÎÙÈ ÉÓËÌÀÞÅÎÉÊ ÎÕÖÎÙ ÒÁÚÎÙÅ ËÏÍÁÎÄÙ ×ÏÚ×ÒÁÔÁ. ÷ÏÚ×ÒÁÔ ÉÚ ÏÂÙÞÎÏÊ ÆÕÎËÃÉÉ - mov pc,lr, ×ÏÚ×ÒÁÔ ÉÚ swi - movs pc,lr, ×ÏÚ×ÒÁÔ ÉÚ irq - subs pc,lr,#4, ×ÏÚ×ÒÁÔ ÉÚ data abort - subs pc,lr,#8. óÅÊÞÁÓ ÐÏÓÍÏÔÒÅÌ - gcc ÄÌÑ ÆÕÎËÃÉÊ Ó ÁÔÒÉÂÕÔÏÍ interrupt ÄÅÌÁÅÔ ×ÏÚ×ÒÁÔ ÞÅÒÅÚ subs pc,lr,#4. úÎÁÞÉÔ ÏÂÒÁÂÏÔÞÉË swi Ñ ÔÁËÉÍ ÏÂÒÁÚÏÍ ÓÄÅÌÁÔØ ÕÖÅ ÎÅ ÓÍÏÇÕ, É ÓÐÅÃÉÁÌØÎÏÇÏ ÁÔÒÉÂÕÔÁ ÎÁ ÜÔÏÔ ÓÌÕÞÁÊ Ñ × ÄÏËÅ ÎÅ ×ÉÄÅÌ. ñ ÐÏÎÉÍÁÀ, ÞÔÏ ÜÔÏ ÍÏÖÎÏ ÏÂÏÊÔÉ, ÎÁÐÒÉÍÅÒ ÓÄÅÌÁ× ×ÏÚ×ÒÁÔ × ×ÉÄÅ ÁÓÓÅÍÂÌÅÒÎÏÊ ×ÓÔÁ×ËÉ × ËÏÎÃÅ ÏÂÒÁÂÏÔÞÉËÁ, ÎÏ ËÁË-ÔÏ éíèï ÌÏÇÉÞÎÅÅ ÕÖ ÔÏÇÄÁ ÃÅÌÉËÏÍ ×ÈÏÄ É ×ÙÈÏÄ ÎÁ ÁÓÓÅÍÂÌÅÒÅ ÓÄÅÌÁÔØ. þÔÏ Ñ É ÄÅÌÁÀ.

YK> interrupt [INTVEC_START + 0x62] void TC6_interrupt(void);

äÁ, ÔÏÞÎÏ. ÷ÉÄÅÌ Ñ ÔÁËÕÀ ËÏÎÓÔÕÒËÃÉÀ. ëÏÍÐÉÌÑÔÏÒ ÓÁÍ ÇÅÎÅÒÉÔ ËÏÍÁÎÄÕ jmp ÐÏ ÕËÁÚÁÎÎÏÍÕ ÁÄÒÅÓÕ. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... úÁËÒÏÊ Ó×ÏÊ ÷ÏÒÄ!

Hello, Vladimir Vassilevsky! You wrote in conference fido7.ru.embedded to Alexey V Bugrov on Mon, 24 Oct 2005 22:54:05

+0400:

DO>>>> inline - не гарантирует того, что код будет именно inline. DO>>>> Макрос - гарантирует.

VV>>> Ввиду того, что операция copy-paste является основным VV>>> современным методом для code reuse, продвинутые компилеры VV>>> умеют сами складывать одинаковый код в функции. Так делает, VV>>> например, IAR. Соответственно макросы не гарантируют VV>>> инлайновости.

AVB>> Hе знаю как в IAR, но в микрочиповском компиляторе AVB>> procedural abstraction отключается ключиком в коммандной AVB>> строке.

VV> В IAR AVR 3.xx есть #pragma inline = forced, т.е. как раз для VV> функций инлайновость обеспечивается.

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

dima

formatting link

KF>> ïÓÔÁÌÏÓØ ÐÏÎÑÔØ, ÞÅÍ ×ÏÓÍÅÒÉÞÎÙÊ ÎÏÌØ ÏÔÌÉÞÁÅÔÓÙÁ ÏÔ KF>> ÄÅÓÑÔÉÞÎÏÇÏ. AM> decimal-constant: AM> nonzero-digit AM> decimal-constant digit AM> octal-constant: AM> 0 AM> octal-constant octal-digit AM> nonzero-digit: one of AM> 1 2 3 4 5 6 7 8 9 AM> octal-digit: one of AM> 0 1 2 3 4 5 6 7

ôÏ ÅÓÔØ ÄÅÓÑÔÉÞÎÏÇÏ ÎÕÌÑ ÎÅ ÓÕÓÛÅÓÔ×ÕÅÔ.

KF>> üÔÏ ÏÔÄÅÌØÎÙÊ ÔÉÐ ÄÁÎÎÙÈ Ó ÏÐÒÅÄẠ̊ÎÎÙÍÉ ÎÁÄ ÎÉÍ ÏÐÅÒÁÃÉÑÍÉ. KF>> é ÎÅÕÄÏÂÎÏ, É ÇÒÏÍÏÚÄËÏ. HÅÕÄÏÂÎÏ ÐÏÔÏÍÕ, ÞÔÏ ÐÒÁËÔÉÞÅÓËÉ ÔÁËÕÀ KF>> ÓÔÒÏËÕ ÉÓÐÏÌØÚÏ×ÁÔØ ÎÅÌØÚÑ -- ÏÇÒÁÎÉÞÅÎÉÅ × 255 ÂÁÊÔ. á ÇÒÏÍÏÚÄËÏ KF>> ÐÏÔÏÍÕ ËÁË ÖÉÒÎÙÊ ÒÕÎÔÉÍÅ ÚÁ ÓÏÂÏÊ ÔÁÓËÁÅÔ. AS> ëÌÁÓÓÉÞÅÓËÏÅ "Hello, vasja!" ÎÁ ôÕÕÒÂÏÐÁÓËÁÌÅ ÚÁÎÉÍÁÌÏ Õ ÍÅÎÑ (ÂÅÚ ÏÓÏÂÙÈ AS> ÕÓÉÌÉÊ Ó ÍÏÅÊ ÓÔÏÒÏÎÙ) ÜÔÁË ËÉÌÏÂÁÊÔÁ 3. AS> áÎÁÌÏÇÉÞÎÏÅ, ÎÏ ÓÄÅÌÁÎÎÏÅ ÎÁ óÉ - ÐÒÉ ×ÓÅÈ ÕÓÉÌÉÑÈ ÎÅ ÐÏÍÅÝÁÌÏÓØ × 9Ë.

áÎÁÌÏÇÉÞÎÏÅ ÓÔÁÔÉÞÅÓËÉ ÓËÏÍÐÏÎÏ×ÁÎÎÏÅ × ÌÉÎÕx -- ÂÏÌØÛÅ ÍÅÇÁÂÁÊÔÁ. é ÞÔÏ? á × ËÅÉÌ ÄÌÑ x51 -- ÓÏÔÎÉ ÂÁÊÔ.

AS> ðÒÉ ÔÏÍ, ÞÔÏ ÓÏÂÉÒÁÌÏÓØ ÄÏÌØÛÅ É ×ÏÏÂÝÅ... AS> èÏÔÑ ÐÏÔÏÍ, ËÏÇÄÁ Ñ ÚÁÍÅÎÉÌ printf ÎÁ puts ÉÌÉ fputs - óÉ ÓÒÁ×ÎÑÌÓÑ AS> Ó ÐÁÓËÁÌÅÍ...

éÛÏÄÎÉË ÐÒÉÎÔÆ ÏÎ ÎÅ ÔÁËÏÊ ÕÖ É ÂÏÌØÛÏÊ.

Hello, Yuriy K! You wrote in conference fido7.ru.embedded to Vladimir Vassilevsky on Mon, 24 Oct

2005 23:00:51 +0400:

DO>>>>> inline - не гарантирует того, что код будет именно inline. DO>>>>> Макрос - гарантирует.

VV>> В IAR AVR 3.xx есть #pragma inline = forced, т.е. как раз VV>> для функций инлайновость обеспечивается.

YK> Что гораздо более правильно с абстрактно-философской точки YK> зрения.

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

dima

formatting link

KF>> ñ ÓËÁÚÁÌ × ÒÅÄÁËÔÏÒÅ, Á ÎÅ × notepad.exe. õ ÍÅÎÑ, ÎÁÐÒÉÍÅÒ, ÔÁËÁÑ KF>> ÏÛÉÂËÁ ×ӣ ËÒÁÓÎÙÍ Ã×ÅÔÏÍ ÒÁÓÃ×ÅÞÉ×ÁÅÔ ÐÏÓÌÅ ÓÅÂÑ. AS> HÕ ÄÁ - ÏÞÕÍÉÔÅÌØÎÏ ÕÄÏÂÎÙÊ É ÂÅÚÏÐÁÓÎÙÊ ÑÚÙË, ÅÓÌÉ ÐÏÄ ÎÅÇÏ AS> ÔÒÅÂÕÅÔÓÑ ÓÐÅÃÉÁÌØÎÏ ÚÁÔÏÞÅÎÎÙÊ ÒÅÄÁËÔÏÒ.

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

KF>> HÕ ÔÁË ÅÓÔØ ÖÅ ÜÔÏ "ÈÁÁÞÕ ÓËÏÂËÕ". äÁÖÅ Ä×Å. é ÄÁÖÅ ÎÅ × ËÏÎÃÅ ÆÁÊÌÁ. AS> áÇÁ. ïÄÎÕ-Ä×Å ÆÕÎËÃÉÉ ÓÐÕÓÔÑ.

ïÎ ÎÁ ÄÅËÌÁÒÁÃÉÉ ÓÌÅÄÕÀÓÛÅÊ ÆÕÎËÃÉÉ ÓÌÏÍÁÅÔÓÑ. òÏ×ÎÏ ÔÁËÖÅ ËÁË É ÐÁÓÃÁÌ.

KF>> á ×ÙÄÁ×ÁÔØ ÐÏ ÏÄÎÏÊ ÏÛÉÂËÅ ÚÁ ÒÁÚ ÞÔÏ, ÌÕÞÛÅ? AS> ðÏÓÌÅ ÐÅÒ×ÏÊ ÖÅ ÏÛÉÂËÉ ÆÁÊÌ ×ӣ ÒÁ×ÎÏ ÂÕÄÅÔ ÐÅÒÅËÏÍÐÉÌÉÒÏ×ÁÔØÓÑ.

HÏ ÉÓÐÒÁ×ÌÅÎÏ ÍÏÖÅÔ ÂÙÔØ ÂÏÌÅÅ ÏÄÎÏÊ ÏÛÉÂËÉ. âïìåå ïäHïê.

AS> ðÒÉޣÍ ÁÂÓÏÌÀÔÎÏÅ ÂÏÌØÛÉÎÓÔ×Ï "ËÏÍÐÉÌÑÃÉÊ ÐÏÓÌÅ ÏÛÉÂËÉ" ÇÅÎÅÒÉÔ ÔÁËÏÊ AS> ÂÒÅÄ, AS> ÞÔÏ ÔÏÌØËÏ ×ÒÅÍÑ ÏÔÎÉÍÁÀÔ.

õ ÍÅÎÑ ÎÅ ÏÔÎÉÍÁÅÔ.
ðÒÉ×ÅÔ Dmitry!

24 Oct 05 20:23, Dmitry Orlov ÐÉÓÁÌ Alex Mogilnikov:

AM>> ÷-ÏÓÎÏ×ÎÏÍ ÄÌÑ ÔÁËÉÈ É ÐÉÓÁÌ. :) DO> HÁ ó? é ÎÅ ÚÎÁÅÛØ ËÁË ÎÁ ÎÅÍ ÏÂÒÁÂÏÔÞÉËÉ ÐÒÅÒÙ×ÁÎÉÊ ÐÉÛÕÔÓÑ?

HÕ ×ÏÔ ×ÓÅÇÄÁ ÉÈ ÉÚ ÁÓÓÅÍÂÌÅÒÎÏÇÏ ÍÏÄÕÌÑ ×ÙÚÙ×ÁÌ. HÉËÏÇÄÁ ÎÅ ÚÁÄÁ×ÁÌÓÑ ×ÏÐÒÏÓÏÍ "Á ËÁË ×ÏÏÂÝÅ ÂÅÚ ÁÓÓÅÍÂÌÅÒÁ ÜÔÏ ÓÄÅÌÁÔØ"...

AM>> ÷ÏÔ ÓÅÊÞÁÓ ÐÅÒÅÓÍÏÔÒÅÌ ÄÏËÕ ÐÏ gcc, ËÏÔÏÒÙÍ Ñ AM>> ×-ÏÓÎÏ×ÎÏÍ ÐÏÌØÚÕÀÓØ, × ÎÅÍ ÁÔÒÉÂÕÔÙ ÔÉÐÁ interrupt, signal É AM>> Ô.Ð. ÍÅÎÑÀÔ Õ ÆÕÎËÃÉÉ entry/exit ËÏÄ, ÎÏ ÅÊ ×ÓÅ ÒÁ×ÎÏ ËÁË-ÔÏ AM>> ÎÁÄÏ ÐÅÒÅÄÁÔØ ÕÐÒÁ×ÌÅÎÉÅ, ÈÏÔÑ ÂÙ ÏÄÎÏÊ ËÏÍÁÎÄÏÊ jmp.

DO> é ËÁËÉÅ Ó ÜÔÉÍ ÐÒÏÂÌÅÍÙ?

õ ÍÅÎÑ - ÎÉËÁËÉÈ. ôÙ, ÎÁ×ÅÒÎÏÅ, ÚÁÂÙÌ, ÞÔÏ ×ÙÚÏ× ÐÁÓËÁÌÅ×ÓËÏÊ ÆÕÎËÃÉÉ ÉÚ ÁÓÓÅÍÂÌÅÒÎÏÇÏ ËÏÄÁ Ñ ÐÒÉ×ÅÌ × ËÁÞÅÓÔ×Å ÐÒÉÍÅÒÁ ÎÁ ×ÏÐÒÏÓ DT, ÚÁÞÅÍ ÔÁËÏÅ ÍÏÖÅÔ ÐÏÎÁÄÏÂÉÔØÓÑ.

AM>> üÔÏ ÆÉÇÎÑ, ÐÒÉ ÐÏÑ×ÌÅÎÉÉ ÎÏ×ÏÊ ÍÏÄÉÆÉËÁÃÉÉ ÐÒÏÃÅÓÓÏÒÁ × AM>> ÔÏÍ ÖÅ ÓÅÍÅÊÓÔ×Å ÐÒÉÄÅÔÓÑ ÍÏÄÉÆÉÃÉÒÏ×ÁÔØ ËÏÍÐÉÌÑÔÏÒ ÞÔÏÂÙ AM>> ÎÁÐÒÉÍÅÒ ÄÏÂÁ×ÉÔØ ÐÏÄÄÅÒÖËÕ ÎÏ×ÏÇÏ ×ÅËÔÏÒÁ ÉÌÉ ÉÓËÌÀÞÅÎÉÑ.

DO> þÔÏ ÚÁ ÓÔÒÁÎÎÁÑ ÍÙÓÌØ, ÚÁÞÅÍ?

÷ ÐÒÅÄÙÄÕÝÅÍ ÐÉÓØÍÅ ÏÔ×ÅÔÉÌ. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... ÷ ÇÌÁ×ÎÏÊ ÒÏÌÉ - óÉÌØ×ÅÓÔÒ Ó ÔÁÌÏÎÏÍ.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required