компилятор С и среда разработки для AVR

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

Hello, Shapovalov Alexey Ivanovich! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 30 Jun

2006 06:29:54 +0000 (UTC):

SAI> sdccman.pdf):"The PIC16 port is the portion of SDCC that is SAI> responsible to produce code for the Microchip(TM) microcontrollers SAI> with 16 bit core. Currently this family of microcontrollers SAI> contains the PIC18Fxxx and PIC18Fxxxx." SAI> В общем я, похоже, нашёл, что искал.

Я когда-то смотрел sdcc - было неприемлимо плохо.

dima

formatting link

Reply to
Dmitry Orlov
Loading thread data ...

Hello Kirill.

Thu Jun 29 2006 23:27, Kirill Frolov wrote to me:

KF> Вера в Ленина и Светлое Будущее не истребима... HЕТ ТАКИХ ЧУДЕС. HЕ KF> БЫВАЕТ.

Hу есть там такая штука __generic.

KF> Он предельно туп -- по типу определяет. Тип ты ручками пишешь, в KF> исходнике. Как напишешь, так и будет.

Вот и отлично. Мне лично приятнее описать один раз тип переменной, а потом работать с ней "прозрачно". И чтоб ещё строгая типизация была, но это мечты. :)

KF> И плавно подходим к тому, что релизует gcc...

Так он же ничего, как я понял, не реализует: надо самому, ручками, да ещё и через макросы - брр.

KF> Я тебе великую тайну открою -- там внутри, на самом то деле, поганый KF> указатель.

Да неужели? ;) А ещё внутрее - вообще страшные вещи, машинные коды и регистры. Hо на уровне _абстракции_, который предоставляет ЯВУ, я хочу, чтобы разные семантические сущности различались и синтаксически. И чётко отграничивались одна от другой. Тогда и программа становится более понятной, и компилятору легче искать ошибки.

KF> Вот есть, например, printf. Вот какой тип указателя она понимает?

printf - жуткое извращение, считай, что для меня его не существует. :) Кроме отладочной печати, для которой он таки удобен.

KF> Можно как угодно. Hо на PC -- проще бывает.

Переспрошу - математику отлаживать? Да, проще. Hо в embedded математика встречается редко, да и "портировать" исходник с PC на МК - никакая не проблема.

KF> И симулятор нормальный нужно поискать. Вот для AVR -- нет.

А IAR-овский C-SPY чем не устраивает?

KF> Отладил и подправил -- так не бывает. Процесс циклический...

Кажется, я тебя не совсем понимаю. Расскажи подробнее, что именно тебе приходится "циклически" отлаживать, перенося с PC на МК.

KF> А хорошо ли это?

А это смотря какой идеологии ты сторонник - свободы или порядка. :) Я считаю - что хорошо. Что если бы софт для тех же PC писался не на C/C++ или монстроидальном Дельфи, а на Аде, то глюков было бы на порядок меньше (хотя софта было бы тоже несколько поменьше :). А уж для встроенных систем надёжность - одно из главных требований.

KF> Значит идеология совсем плохая и негодная.

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

Dimmy.

Reply to
Dimmy Timchenko

Hi Sergey!

27 июня 2006 19:17, Sergey Gusarov писал Dmitry Orlov:

SG> пеpеключаешся из одной пpогpаммы на дpyгyю. Hапpимеp, пишешь и SG> компилиpyешь в фаp-менеджеpе, отлаживаешь в пpотеyсе. А пpошиваешь в

Только не совсем так. Пишешь и пpавишь в фаpе (с подключенным плагином pасскpаски синтаксиса в pедактоpе), а пpотеyс сам компилиpyет пpи запyске отладки если файл изменился. Hастpоенный пpотеyс, само собой.

Best regard, Roman Gubaev! [Team Beer - rulez forever!] е-мыло: rgubaevyandexru (что кyда вставить - сами догадаетесь :-))

... РАО "ЕЭС России", Хакасэнеpго, гpyппа связи

Reply to
Roman Gubaev

Hello, Dimmy!

(29 Июн 06 20:10), Dimmy Timchenko писАл Igor Ulanov: DT> Интересно, откуда такие глюки? :) Современный IAR поддерживает DT> расширенный EC++, приближенный к "полному" C++. Hапример, есть там DT> темплейты и namespaces.

Последний иар, которым я пользовался был 2.28. 4.11 был скачен, но так под ним ничего практически и не делал, перешел на gcc.

With best regards, Igor. Time: 18:31 Date: 30 Июн 06

Reply to
Igor Ulanov

Hello Dmitry.

30 Jun 06 12:34, you wrote to me:

NM>> trm_avr.c: In function `tputstr': NM>> trm_avr.c:395: warning: subscript has type `char' NM>> trm_avr.c:395: warning: suggest parentheses around assignment used NM>> as truth value NM>> Hадо асм посмотреть, что оно там наделало.

Вай Шайтан! :-) Действительно убрало. Видимо это и было написано.

NM>> Вообще если в проекте заменить NTC на термопару, поставить NM>> опторазвязку на 232, то я даже знаю куда такое можно воткнуть.

Да. В какихто апнотах я видел монстроидную схему для компенсации. Только делать ее незахотелось. Считал програмно. Увлекси. Nicolas

Reply to
Nicolas Minakov

Разумеется. Любителям сложно написать компилятор. Даже если они вовсе не любители, а проффессиоанлы. ПРосто потому, что это требует достаточно больших затрат времени и энтузиазма. Боюсь, н того, ни другого уи них нет (заглядыва на sourceforge). GCC отдельный случай, там, точно совершенно, имеется много заинтересованных надавливающих в нужных направлениях (пример -- полно коммерческих SDK в которые он входит).

Reply to
Kirill Frolov

uint8_t i; while (c=ptr[i++], 0!=c) tputch(c);

Не надо.

Reply to
Kirill Frolov

А как из генерируемого компилятором *.syм получить отладочный файл для протеуса? (чем -- я имею, вопрос как).

Reply to
Kirill Frolov


Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Kirill Frolov on Fri, 30 Jun

2006 15:10:25 +0400:

DT> А уж для встроенных систем надёжность - одно из DT> главных требований.

Откуда такой вывод? Ничуть не более, а скорее менее, чем в обычном софте. Неужели банковский, отнюдь не embedded софт должен быть менее надежен чем вполне embedded firmware какой-нибудь современной игрушки?

dima

formatting link

Reply to
Dmitry Orlov

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

Hello, Nicolas Minakov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 30 Jun

2006 18:03:00 +0400:

NM>>> trm_avr.c: In function `tputstr': NM>>> trm_avr.c:395: warning: subscript has type `char' NM>>> trm_avr.c:395: warning: suggest parentheses around assignment used NM>>> as truth value NM>>> Hадо асм посмотреть, что оно там наделало.

NM> Вай Шайтан! :-) Действительно убрало. Видимо это и было написано.

Во втором предупреждении - да, хотя скобки - это parenthesis, если верить моему словарю, а не parentheses, возможно это разные диалекты. А к чему перве я так и не понял. А я не шайтан, "я знал"... :)

dima

formatting link

Reply to
Dmitry Orlov

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

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Nicolas Minakov on Fri, 30 Jun

2006 15:54:33 +0000 (UTC):

KF> uint8_t i; KF> while (c=ptr[i++], 0!=c) tputch(c);

KF> Не надо.

Таки надо, посмотрю.

dima

formatting link

Reply to
Dmitry Orlov

Руки отрывать - писаться должно while (0 != (c = ptr[i++])) - иначе lint сразу даст предупреждение "non boolean type" и к тому же двойные скобки это уродство. И GCC тут неправ в совете (но полностью прав в предупреждении).

parenthesis - это скобка (одна) а parentheses - соответственно много

К тому что для индекса требуется тип int а ты подсунул char - о чем тебя честно предупреждают - вдруг ты не знал.

Reply to
Arcady Schekochikhin

Абсолютно то же самое что и (c = ptr[i++]) и ((c = ptr[i++])) и (0 != (c = ptr[i++])) - а если это не так - то это хреновый компилятор

Reply to
Arcady Schekochikhin

Hello Dmitry.

30 Jun 06 12:34, you wrote to me:

NM>> Вообще если в проекте заменить NTC на термопару, поставить NM>> опторазвязку на 232, то я даже знаю куда такое можно воткнуть.

OOPS посыпаю голову пеплом, читал даташит в стиле темплейта Василевского, tiny25/45/85 имеет on-chip temperature sensor, который сидит на пятом канале входного коммутатора. (Hа первых четырех -ноги). Температура пересчитывается: T = { [ (ADCH << 8) | ADCL ] - TOS } / k Есть еще табличка: -40°C +25°C +85 °C Voltage / mV 243mV 314 mv 380 mV Так что термопару можно втыкать напрямую. Nicolas

Reply to
Nicolas Minakov

Афтар жжот. В викиедию что ли загляни.

Выпей йаду.

Reply to
Kirill Frolov

Hello Dmitry.

Sat Jul 01 2006 03:50, Dmitry Orlov wrote to me:

DT>> А уж для встроенных систем надёжность - одно из главных требований.

DO> Откуда такой вывод?

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

DO> Hичуть не более, а скорее менее, чем в обычном софте.

"Обычный софт" чаще, чем встроенный, является, по сути, игрушкой.

DO> Hеужели банковский, отнюдь не embedded софт должен быть менее надежен DO> чем вполне embedded firmware какой-нибудь современной игрушки?

Пример притянут за уши.

Dimmy.

Reply to
Dimmy Timchenko

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

Hello, Arcady Schekochikhin! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 1 Jul 2006 05:42:10

+0000 (UTC):

KF>>> uint8_t i; KF>>> while (c=ptr[i++], 0!=c) tputch(c);

KF>>> Не надо.

AS> Абсолютно то же самое что и (c = ptr[i++]) и ((c = ptr[i++])) и (0 AS> != (c = ptr[i++])) - а если это не так - то это хреновый компилятор

Что вполне возможно...

dima

formatting link

Reply to
Dmitry Orlov

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

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 01 Jul

2006 12:08:36 +0400:

DT>>> А уж для встроенных систем надёжность - одно из главных DT>>> требований.

DO>> Откуда такой вывод?

DT> Оттуда, что микроконтроллеры часто управляют таким железом, от DT> нормального функционирования которого зависят жизнь и здоровье DT> людей.

Бывает, но и это и с "большими" компьютерами бывает. Где чаще - хрен знает.

DT> Для PC такие случаи редки, это "конторское" и "домашне-развлекательное" DT> железо.

PC - очень разные бывают.

DO>> Hичуть не более, а скорее менее, чем в обычном софте.

DT> "Обычный софт" чаще, чем встроенный, является, по сути, игрушкой.

Не думаю, что чаще.

DO>> Hеужели банковский, отнюдь не embedded софт должен быть менее DO>> надежен чем вполне embedded firmware какой-нибудь современной DO>> игрушки?

DT> Пример притянут за уши.

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

dima

formatting link

Reply to
Dmitry Orlov

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

Суббота Июль 01 2006 10:12, Kirill Frolov wrote to George Shepelev:

KF> Афтар жжот.

Ты опять эхой ошибся.

KF> В викиедию что ли загляни.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Основатель Википедии призвал студентов перестать ее цитировать dl // 16.06.06 10:23 Основатель проекта Джимми Уэйлс (Jimmy 'Jimbo' Wales) признал, что получает каждую неделю по десятку писем от студентов, жалующихся на отрицательные оценки, полученные ими из-за того, что они опирались на информацию, полученную из Википедии. По его словам, он не испытывает по отношению к ним ни малейшей жалости - "бога ради, вы ж в колледже, не цитируйте энциклопедию". Источник:

formatting link
Ламеры пишут статьи для ламеров. Результат был легко предсказуем ;)

"Hачни с себя" (c)

Георгий

Reply to
George Shepelev

Привет, Dmitry !

01 Jul 06 , 03:50 Dmitry Orlov писал к Dimmy Timchenko:

DT>> А уж для встроенных систем надёжность - одно из DT>> главных требований.

DO> Откуда такой вывод? Hичуть не более, а скорее менее, чем в обычном DO> софте. Hеужели банковский, отнюдь не embedded софт должен быть менее DO> надежен чем вполне embedded firmware какой-нибудь современной игрушки?

Банковский софт вполне себе может требовать, чтоб у машины был ip адрес

192.168.1.254 или разрешение экрана ровно 1024х768 или падать непрерывно (падать, но не глючить), а всё потому, что игрушку легко выбросить, купить у конкурента аналог и радоваться, а с "копропротивными" программами такое проделать труднее.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... "чч часов мм минут. Торпедный катер выполз на берег и скрылся в лесу"

Reply to
Nickita A Startcev

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.