Hадежный контроллер нужен........

DEO>> вот тут задержка получается существенная и всякий раз разная (в DEO>> зависимости от того по каким веткам пробежало) DO>

DO> Существенная, в среднем около половины периода прерываний. И что, с того? DO>

DEO>> вот я и говорю надо отделить логику низкоуровневого управления от DEO>> выдачи сигналов на выводы. DO>

DO> К чему ты это говоришь? Какая разница когда прерывание закончится, если DO> это DO> происходит до прихода следующего? выше ты сказал что половину процессорного времени занимает прерывание. субя по коду 2/3 этого времени занимает функция Receive. то есть задержка на передачу у тебя на время 1/3*2/3 = 2/9 от периода тактирования передачи (первая 1/3 от того что прерывания у тебя с утроенной частотой идут). на задержка на 22% можно было бы наплевать если бы время выполнения процедуры Receive было бы постоянным. оно же у тебя случайное (в зависимости от того по каким веткам пройдет)

следовательно то что данная реализация сопрягается с другими девайсами по последовательному интерфейсу - есть такая же случайность :)

не хочешь делать методически более правильно, я тебя не неволю просто когда-нибудь проект станет больше и будешь искать баги

а на AN такой пример ну совсем не годится

DO> Реализуй, а я посмотрю. Ты просто путаешь два несвязанных между собой DO> вопроса. я не путаю

DO> Мне ничего не кажется, и делать это можно где угодно, просто там это делать DO> проще. естественно проще и не думать тоже проще ;)

DO> Выдача с приемом вообще не связаны. именно связаны: функция Send у тебя начнет работать только после того как закончит Receive. модификация одного влияет на время начала выполнения другого. мало того по каким веткам пройдет первое влияет на фронты второго.

DO> Значит это надо с той же скоростью делать снаружи. Разницы я не вижу, кроме DO> того, что так сложней. разница в более рациональном использовании процессорного времени. можно больше квантов отдать другим процессам, например

DEO>> я тут опишу такой алгоритм чтобы по максимуму не переделывать твой, DO>

DO> Hе надо теорий. Hе надо. Или пример кода или молчание. я тебе фактически diff на твой код дал, что еще надо?

DEO>> что мы получили? DEO>> 1. мы получили что время от выставления флага переполнения таймера DEO>> 0 до выставления сигнала на ножке TTx и принятия сигнала с ножки DEO>> TRx всегда одинаковое. как бы там программа дальше не работала DO>

DO> Оно и так всегда одинаковое. если тупо повторять одно заклинание, то можно вызвать духа ;) первое присвоение TTx в 188 строке а прерывание начинается на 80-й строке

то есть между входом в прерывание и выдачей сигнала на TTx у тебя >=100 строк кода с ветвлениями => кода выполняющегося случайный интервал времени между N и M мкс (считать лень)

=> то что у тебя компьютер принимает случайно поставленный фронт есть лишь результат того что ты за допуски не вылетел (что тоже случайно)

DEO>> 2. вследствие п. 1 мы можем вверху программы определить BAUD_RATE, DEO>> а строку TMR0 = 133; определить через макрос исходящий из FOSC и DEO>> BAUD_RATE. и HИКАКИХ подборов. DO>

DO> Hе можем, потому что узнать сколько тиков таймера контроллер входит в DO> прерывание можно, проанализировав этот код, но не нужно, потому что DO> подобрать путем нескольких перепрошивок кристалла проще. При твоем методе DO> константа будет той же самой, а программа усложнится. при моем методе я в начале программы укажу FOSC и RS232_BAUD_RATE и у меня интерфейс будет работать именно на выбранном мной BAUD_RATE. если мне понадобится уйти на 1200 бод, например то я поменяю константу в начале файла, а ты возьмешься опять за осциллограф

DEO>> теперь то что о дальнейшей оптимизации: DO>

DEO>> теперь мой код что я добавил назовем вводом-выводом, а твой DEO>> (модифицированный как я описал выше) назовем логикой работы RS. DO>

DEO>> так вот я говорю, что если немного поднапрячь мозги и избавиться от DEO>> циклов ожидания которые у тебя есть внизу (надеюсь уже не будем DEO>> придираться к этому термину ;) ), а написав нормальный менеджер DO>

DO> У меня нет никаких циклов ожидания. И нет никакого верха-низа. tputstr и printi не возвращают управления пока не произойдет передача. из за этого ты в них вынужден например вызывать CLRWDT. => избыточность

и верх-низ у тебя классический почти - прерывание вверху а вся остальная программа внизу ;) только tputch и вклинился ;)

DEO>> процессов внизу (хоть тупой перебор функций например) мы можем DEO>> логику работы RS перенести вниз. (скорость такая маленькая что это DEO>> запросто) DO>

DO> Hапиши полностью, покажи что это работает и код - тогда обсудим. Теории мне DO> не интересно. я пока вижу что то что представлено и работает - случайность

DEO>> да деление уже использовать нельзя будет (хотя если часть логики DO>

DO> А вот это уже не годится. Я не хочу думать о том сколько времени что DO> выполняется в основном цикле. и что там можно,, а что нельзя использовать. DO> Будет надо, хоть весь math.h использую (что я собственно в другом проекте и DO> делаю). это тоже нормальный подход, только не всегда оправдан отдать 50% процессорного времени какому-то умножению и оставить основной задаче 1-2% это удавить напрочь перспективу развития девайса

DEO>> оставить все же наверху - перейти к сдвиговым регистрам то можно DO> Врядли. Хотя 4800 наверное можно вытянуть, оно там на грани. врядли именно потому что на 4800 плаванья фронтов Send будут критично вылетать из диапазона. то есть если у тебя сейчас прерывание занимает 50% времени и ошибка выставления фронта Send - 22% (верхний нижний предел надо посчитать) то на 4800 это будет 100% и 44%

DO> Бери и делай, кто тебе не дает? я и делаю думаешь поправить методические ошибки в твоем коде это не труд?

Reply to
Dmitry E. Oboukhov
Loading thread data ...

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

Hello, Arcady Schekochikhin! You wrote in conference fido7.ru.embedded to Dmitry E. Oboukhov on Sat, 5 Aug 2006 10:32:44 +0000 (UTC):

AS> Да тут и так никаких переборов! Константа таймера - 138 типа - но AS> вот время входа в прерывание - величина переменная - зависит от AS> сгенерированного компилятором пролога - ее и учитывает константа -5 AS> (138-5==133). То что ДО пишет с "магическими числами" прямо в AS> программе - за это надо руки отрывать - но на то у него свое AS> начальство есть.

Это может быть у тебя есть начальство, которое проверяет что ты пишешь, у меня начальство интересует только как (в смыле хорошо или плохо) работает балласт и сколько BOM стоит, а что там в коде написано, и есть ли он там вообще этот код или все на операционниках и триггерах сделано, ему без разницы. В том проекте, откуда я брал этот UART (для PIC18F2620), сейчас посмотрел, было написано так

#define XTAL 20000000U #define baud_rate 4800U /* define baud rate */ #define BRG (byte)((XTAL/64/baud_rate)-1) #define PS 0 /* TMR0 Prescaler (1) */ #define TMR0INIT (byte)(256-(0.0000694*XTAL/(4*(1<<(PS+1))))+1) /*70us*/

TMR0 = TMR0INIT + 8; /* Reload timer to 70us period */

Чем это так уж принципиально лучше готовой константы, которую все равно надо подбирать или считать по тактам кода, я не знаю. Какая разница одно "магическое число" в программе или его сумма с немагическим? В комментариях ясно сказано что оно делает и сколько должен получиться период. Ну не разобрался Обухов до конца как оно работает, разберется, если захочет. За столько писем, он бы уже свою реализацию написал и проверил...

dima

formatting link

Reply to
Dmitry Orlov

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

Hello, Alex Mogilnikov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 05 Aug

2006 14:51:39 +0400:

DO>>>> Да видеть-то можно что угодно, а нормальной документации, как и DO>>>> нормальной готовой среды разработки в gcc как не было, так и нет.

DEO>>> а какой документации тебе не хватает? по gcc такой ее талмуд что DEO>>> читай не перечитаешь :)

DO>> Конкретного описания копмилятора и линкера под целевую платформу.

AM> В GCC нет линкера.

Тем хуже для него. Все равно есть что-то, что управляет размещением кода и данных, распределяет адреса в памяти. И этим нужно как-то управлять.

dima

formatting link

Reply to
Dmitry Orlov


Hello, Dmitry E. Oboukhov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 05 Aug

2006 13:28:56 +0400:

MZ>>>>> Документация на компилятор и библиотеку есть поставке, в MZ>>>>> формате ПДФ.

AS>>> А что там в GCC может быть такого AVR-специфичного? Hу ключей AS>>> немного - так они и в info описаны.

DO>> Способ описания прерываний, доступа к ресурсам кристалла.

DEO> описан был еще N лет назад, когда я впервые им что-то компилировать DEO> начал

DEO> #include <avr/signal.h>

DEO> SIGNAL(имя_прерывания) DEO> { DEO> реализация }

А почему-то в примерах к winavr не так:

#include <avr/interrupt.h>

#include <avr/sleep.h>

#include "iocompat.h" /* Note [1] */

enum { UP, DOWN };

ISR (TIMER1_OVF_vect) /* Note [2] */ { .......

DO>> Как компилятор выполняет основные вещи. Как передает параметры, как DO>> и где хранит переменные.

DEO> все что традиционно то традиционно. стек

DO>> Как определить это. DEO> читать документацию, очевидно если это сложно, то смотреть листинги DEO> :)

Я таких разделов в оглавлении не обнаружил.

dima

formatting link

Reply to
Dmitry Orlov

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

Hello, Alex Mogilnikov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 05 Aug

2006 14:55:52 +0400:

DO>> А в линуксе оркад и пикад не работают

AM> У меня в FreeBSD PCAD-2000 работает. Hе вижу причины не работать AM> ему в линуксе Димы.

А Оркад тоже работает? И ключ на LPT к нему работает? Рад за тебя, а у меня все это под виндой работает.

dima

formatting link

Reply to
Dmitry Orlov

Hello Dmitry.

Sat Aug 05 2006 14:24, Dmitry E Oboukhov wrote to Arcady Schekochikhin:

AS>> необходимость в "безупречном следовании правилам языка". Ты много AS>> написал программ на Си которые пришлось без изменений переносить AS>> междухотя бы 3-4 компиляторами?

DEO> тип процессора и стандарт языка в идеале вообще не должны быть DEO> связаны друг с другом :)

Язык-то языком, но для embedded неизбежно придётся пользоваться прагмами и встроенными функциями, на которых стандарта нет.

Dimmy.

Reply to
Dimmy Timchenko

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

Hello, Dmitry E. Oboukhov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 05 Aug

2006 15:26:47 +0400:

DO>> И что? Ты про токи в ключах говоришь? Так как их скорость изменения DO>> сказывается на чем-то?

DEO> источниками помех обычно являются фронты тока в индуктивностях DEO> (паразитных)

При наличии магнитной связи с цепями управления. И фронты напряжений при наличии емкостной связи.

dima

formatting link

Reply to
Dmitry Orlov

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

Hello, Dmitry E. Oboukhov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 05 Aug

2006 15:32:38 +0400:

DEO>>> под вайном Оркад работает, а пикад я со времен 4-й версии DEO>>> забросил

DO>> А у меня под ХР и то и другое работает.

DEO> а зачем работать и в том и в другом?

Исторически сложилось так, что схемы рисуются в оркаде, а разводятся в пикаде. Еще со времен досовского Оркада и досовского же Tango. Так как эти продукты продаются по частям, так они и куплены.

DEO> ума не приложу :)

dima

formatting link

Reply to
Dmitry Orlov

DO>> У меня нет никаких циклов ожидания. И нет никакого верха-низа. DEO> tputstr и printi не возвращают управления пока не произойдет передача.

DO>> А вот это уже не годится. Я не хочу думать о том сколько времени что DO>> выполняется в основном цикле. и что там можно,, а что нельзя DO>> использовать. DO>> Будет надо, хоть весь math.h использую (что я собственно в другом проекте DO>> и DO>> делаю). DEO> это тоже нормальный подход, только не всегда оправдан DEO> отдать 50% процессорного времени какому-то умножению и оставить основной DEO> задаче 1-2% это удавить напрочь перспективу развития девайса

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

то есть сказал что пользы от моей оптимизации printi и пользы от предложенной мной оптимизации stoi ты не видишь.

а вот рассмотри основной цикл:

вызов term(); затем вызов tputstr

парсинг входных данных у тебя вызывается из term

tputstr и printi у тебя выполняются по времени равном времени передачи "\rT = ", число, и в максимуме 6 делений

если забыть о делениях, то если мы передаем трехзначное число (максимум), то суммарно имеем 3+5=8 символов переданных в RS

между двумя соседними вызовами term может (и проходит) пройти столько времени сколько надо для передачи 8 символов.

так как интерфейс работает на прием на той же частоте что и на передачу, то задержка между двумя вызовами parce - случайная и достигает времени прохождения 8 символов на интерфейсе.

теперь рассматриваем ситуацию:

  1. вызвана твоя parce
  2. по возврату управления из нее запущено выдача на RS tputstr printi и вот пока п.2 продолжается от управляющего хоста идет на полной скорости команды установки новых параметров

TON=20<CR>TOFF=30<CR>

|||||| | ||||||| |- 15 |||||| | ||||||+--- 14 |||||| | |||||+---- 13 |||||| | ||||+----- 12 |||||| | |||+------ 11 |||||| | ||+------- 10 |||||| | |+-------- 9 |||||| | +--------- 8 |||||| +----------- 7 |||||+-------------- 6 ||||+--------------- 5 |||+---------------- 4 ||+----------------- 3 |+------------------ 2

+------------------- 1

то есть видно что восьмой байт пришелся на начало следующей команды. теперь если вспомнить о делении (которых в максимуме 6) и о том что TON может задавать например 0 (не двузначное число), то на момент выхода из функций tputstr и printi мы можем иметь уже полностью принятую одну команду и принятый 1-й, 2-й или 3-й символ следующей команды.

идем наверх и смотрим, iidx BUFSTR_SIZE-1 не достигла еще, потому этот загадочный else еще не отработал, потому tidx остался равным 0 с предыдущего вызова term.

когда вваливаемся в term, идем по ветке if (tidx < iidx) c = 'T' if (c == '\r') - не отрабатывает else if (c == '\b') - не отрабатывает идет по последнему else, tidx=1 ждем пока не передастся байт 'Т', в это время RS принимает 9-й байт команды что идет нам.

новый вызов term (idle отработал, пока не считаем его время) c = 'O', опять по веткам if-else не проходит опять идет по последнему else, опять ждем пока не передастся байт в tputch в это время RS принимает 10-й байт, который девать некуда, а вот и он, загадочный if (строка 169), начинает декрементироать iidx и самое веселое он декрементирует и tidx

то есть на новом вызове term мы опять получим c='O' о том что принятые данные потеряли уже молчу, но тут получается бесконечный цикл все, система перестает принимать данные

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

здесь лишь показано что время на выполнения задач внизу нельзя плевать. поскольку обработка задач RS так же производится и в не прерываниях тоже.

то что "все работает" связано лишь с имеющимися паузами между подачей команд.

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

Reply to
Dmitry E. Oboukhov

DEO>> а блин, это старая, времен 86РК терминология DEO>> верх - прерывания DEO>> низ - основная программа DT>

DT> Странно. Ведь прерывания - это как раз нижний уровень. Может, DT> постараешься DT> пользоваться общепринятой терминологией? :) :)

Reply to
Dmitry E. Oboukhov

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

Hello, Dmitry E. Oboukhov! You wrote in conference fido7.ru.embedded to Arcady Schekochikhin on Sat, 05 Aug 2006 14:22:10 +0400:

AS>> Это в общем случае совсем неважно - ну будет легкий тремор фронтов AS>> - на таких скоростях это не важно.

DEO> я говорил об этом - он говорит что подбирать пришлось потому что DEO> расчетное реальному не соответствовало то есть быстродействие DEO> написанного видимо недостаточно для того чтобы гуляния фронтов были DEO> в рамках допустимого

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

AS>> Да тут и так никаких переборов! DEO> про подбор писал не я, а DO, я его за язык не тянул

Я писал. Поставил рассчетное, потом стал "подкручивать" его, пока не получил нужную мне частоту прерываний. Для этого вместо всего кода прерывания там была только генерация импульсов. Все это занимает минут 5 от силы, быстрее сделать, чем объяснить как это сделать, особенно тебе...

AS>> Константа таймера - 138 типа - AS>> но вот время входа в прерывание - величина переменная DEO> это что еще за новость такая? DEO> в честь чего это она переменная?

Она постоянная конечно, но заранее я ее не знаю. Я не смотрел код в дизассемблере и не знаю что там в точности делается. Проще подогнать на живом, чем считать.

AS>> - зависит от сгенерированного компилятором пролога - ее и учитывает AS>> константа -5 (138-5==133).

DEO> если простой вход в прерывание дает несколько-процентную поправку, DEO> то уж проход по веткам Receive дает куда большую поправку на DEO> времена фронтов Send :)

Не столь критичную, тем более, что во время приема передавать не надо.

DEO> я не знаю насколько сильно будет это влиять, но он написал что DEO> вынужден был подбирать числа, я и предложил ему раз и навсегда DEO> избавиться от гуляния времен: вынести ввод-вывод в начало DEO> прерывания, а сколько там займет логика уже не особо важно.

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

DEO> а я ему про это талдычу уже несколько писем

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

dima

formatting link

Reply to
Dmitry Orlov

Hello, Dmitry! You wrote to Nicolas Minakov on Sat, 05 Aug 2006 11:12:47 +0400:

NM>> А если вылазит, что модель памяти не та, что нужна, или еще какие NM>> нибудь подобные "мелочи"? DEO> то опции чуток меняешь у компилятора.

DEO> вот IAR может генерить ASM-листинги всех компилируемых файлов?

да.

DEO> а может он их в отдельный каталог класть чтобы не мусорить в каталоге DEO> проекта?

да.

DEO> а объектники туда-же отдельно положить, чтобы вообще чистота и уют DEO> были в каталоге проекта?

да.

DEO> а с cvs работать?

да. Точнее умеет работать с другими системами контроля версий.

DEO> в make добавил пару таргетов на коммит в cvs репозитарий и радуешься DEO> жизни :)

cvs commit проще руками набрать.

WBR, AVB

Reply to
Alexey V Bugrov

Медбpатья по pазyмy ждyт Вас в далеких миpах, Dimmy... Сyббота Авгyст 05 2006 11:51, Dimmy Timchenko wrote to Dmitry E Oboukhov:

DO>>> В каком низy? Кpитично ко вpемени там только то, что касается DO>>> UART'а. DEO>> а блин, это стаpая, вpемен 86РК теpминология DEO>> веpх - пpеpывания DEO>> низ - основная пpогpамма DT> Стpанно. Ведь пpеpывания - это как pаз нижний ypовень. Может, DT> постаpаешься пользоваться общепpинятой теpминологией? :)

А нетy ее, общепpинятой. Кто-то, напpимеp, называет основнyю пpогpаммy фоном, что тоже не лишено некотоpого смысла.

Майкл

Reply to
Michael Mamaev

Hello, Dmitry! You wrote to Dimmy Timchenko on Sat, 05 Aug 2006 11:22:26 +0400:

DT>>>>>> IAR тоже поделка? DEO>>>>> угу DEO>>> а чем хорош iar'овский компилятор? DT>> То есть "угу", а потом выясняется, что ты вообще не в курсе. ;) DEO> в самом начале, лет несколько назад я IAR'ом даже пару проектов собрал DEO> чем он хорош так и не увидел :)

Я регулярно пользуюсь gcc, iar, mcc, msvc. Иногда еще баглендовскими поделиями. Ничего душу не воротит.

Не делайте из еды культа (с).

WBR, AVB

Reply to
Alexey V Bugrov

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

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

2006 13:30:16 +0400:

DO>> Hа фоне IAR (даже не принимая во внимание качество кодогенерации) DO>> gcc выглядит недоделанной поделкой.

DT> Кстати, иаровцы почему-то прайс-лист не приводят, надо с ними DT> общаться лично, а этого не хочется. Поэтому хотел спросить: сколько DT> примерно стоит их EW? Ты говорил, что на работе у тебя купленный.

HiTech купленный, а IAR' ом я по работе не пользуюсь (да и вообще не пользуюсь), так сделал несколько лет назад прикидочный проектик и все.

dima

formatting link

Reply to
Dmitry Orlov

Hello Dmitry.

05 Aug 06 13:21, you wrote to me:

NM>> О! NM>> Ты сделал под 13?

Жаль. Мне казалось, что тебе это не сложно.

Меня беспокоит сейчас не тот кусок, который ты заменил.

Для меня есть. За этой возней я надеюсь, что разобрался кое в чем.

Для тебя - незнаю. Зачемто ты всетаки в листинг заглянул.

Ладно Хорошо. Меняем 13 на tiny45. Включаем вход в диференциальный режим, используем встроенный термодатчик, цепляем термопару. Получаем терморегулятор, которым можно рулить удаленно с компа. Есть несколько мест, куда подобное неплохо былобы воткнуть, Туда где надо не очень быстро, не очень точно и не очень дорого.

Потом вот скажи кому нужен например девайс на tiny13 из апнота avr422? А можно вывешивать апнот без проверки на железе? Nicolas

Reply to
Nicolas Minakov

DEO>> речь не о компиляторах а о среде разработки, которой типы DEO>> компиляторов должны быть по барабану DO>

DO> Так и среду менять приходится. не приходится я как писал с помощью GNU-utils на ht-pic, так же сейчас пишу с их де помощью на gcc :)

среда разработки в моем случае вообще одна и та же

Reply to
Dmitry E. Oboukhov

DEO>> а менять константы буду в одном из файлов перед сборкой :) DO>

DO> Да ради бога. Ты достиг невиданных успехов в автоматизации задачи,

это задача вообще типичная даже в твоем trm есть таблица, пусть и маленькая

Reply to
Dmitry E. Oboukhov

Hello Dmitry!

05 Aug 06 02:30, Dmitry E. Oboukhov wrote to Dmitry Orlov:

DO> а она и не отвязана. это я время прохождения сигнала защиты от ключа к DO> ключу посчитал. DO> если у нас ток прется (а он обычно так и прется) через пару ключей DO> (или даже через три), то по защите одного надо вырубать все. а это DO> кроме как оптронами (ну или оптоволокном) никак друг с другом DO> не сочленить :)

Импульсными трансформаторами?

Всего доброго!

А. Забайрацкий.

Reply to
Alexander Zabairatsky

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

Hello, Dmitry E. Oboukhov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 05 Aug

2006 15:32:05 +0400:

DEO>>> которые в сумме и есть среда. очень очень гибкая.

DO>> Мне не нужна очень и очень гибкая.

DEO> ну это уж твои проблемы :)

Проблемы, это не когда что-то не нужно, а когда наоборот.

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

Не нужна. Я бы вообще не писал ничего сам, если бы было кому писать и кому мне было бы проще объяснить что надо написать, чем сделать это самому.

DEO>>> вот пример, расскажи как ты будешь решать его IAR

DEO>>> допустим тебе нужна таблица 200 значений f=(A,B,C,x) DEO>>> где A, B, C - постоянные которые ты планируешь выбрать в DEO>>> процессе отладки а таблица собственно ставит в соответствие f и DEO>>> x

DO>> Посчитаю таблицу на чем-то, на чем умею и в виде текстового файла DO>> буду ее включать инклюдом. Без разницы с IAR или с любым другим DO>> компилятором.

DEO> а я возьму и добавлю исходник на каком-либо другом языке (например DEO> m4 или perl) и у меня программа просто будет собираться из всего DEO> полученного.

Я не знаю ни m4 ни перла, скорее я на bc или bp напишу. Или попрошу хорошо знающего exel сотрудника там это сделать. А включать это в make или нет - дело десятое. Такая возможность и в iar есть.

DEO> а менять константы буду в одном из файлов перед сборкой :)

Да ради бога. Ты достиг невиданных успехов в автоматизации задачи, которой у меня за примерно 20 лет работы не возникало ни разу. А вот возникавшую несколько раз задачу - быстро освоить новый кристалл и средства разработки для него мне проще решать, используя нормальные IDE, где все разжовано и в рот положено. И где не надо думать что каждая из десятка -другого программ в каталоге bin делает и чем собираются скомпилированные объектники - линкером, или какой-то другой утилитой.

DO>> И в чем легче уходить с gcc по сравнению с iar?

DEO> речь не о компиляторах а о среде разработки, которой типы DEO> компиляторов должны быть по барабану

Так и среду менять приходится. Ну нет gcc для PIC, для x51, для ST7 и еще для кучи платформ. Понадобится по какой-то причине сменить avr на что-то другое - и привет, все по-новой осваивать. А IAR всяко больше платформ поддерживает, можно и не уходить с него. Так чем лучше с gcc уходить? Не так жалко :)?

dima

formatting link

Reply to
Dmitry Orlov

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.