|
|
  |
Помогите начать с IAR, Помогите начать с IAR |
|
|
|
Mar 3 2006, 02:40
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(_Alfred_ @ Mar 3 2006, 02:19)  Привет всем! До сих пор писал для PIC на ассемблере, сейчас хочу перейти на AVR и писать на С. Странное какое-то желание.. А почему бы для начала не начать писать на C под PIC? А потом пересесть на AVR.. Есть же хорошие компиляторы и среды разработки к примеру ht-picc + ht-tide (eclipse), IAR EW_PIC... Код This file should only be compiled with iccavr or aavr with processor option -v3 выберите target процессор в опциях проекта..
|
|
|
|
|
Mar 3 2006, 12:25
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664

|
Цитата(_Alfred_ @ Mar 3 2006, 02:19)  Создаю проект (Project->Create New Project), выбираю DLIB (C/EC++) - выдается сообщение, что проект не может быть создан. Тоже наблюдал такую штуку, в т.ч. и для CLIB. Причин не выяснял. Просто создавал вариант с main, после чего независимо от метода создания проекта старательно просматривал все настройки проекта до единой. Может быть полезным. Потом при создании новых похожих проектов можно просто копировать бывший проект и заменять в нем списки файлов, оставляя настройки. Экономит время на полный пересмотр. Кстати, в 4.12A CLIB/DLIB вариантов создания уже нет (только посмотрел) - там или AVR® Studio 4 compatible output, или main. К чему бы это? :-) Цитата #include<iom16.h> Пытаюсь компилировать, выдается сообщение: Fatal Error[Pe035]: #error directive: This file should only be compiled with iccavr or aavr with processor option -v3 C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\avr\INC\iom16.h 23 Файл iom16.h предназначен для ATmega16. А processor option в настройках проекта, вероятно, стоит по умолчанию в -v0 или -v1 для устройств с другим объемом RAM/FLASH. Правильнее всего выбрать в настройках не опцию процессора -vN, а конкретную модификацию контроллера. Тогда можно в тексте использовать: Код #include <ioavr.h> #include <inavr.h> // также может быть полезен который автоматически включит нужный файл в зависимости от выбранного типа контроллера. С вариантами типа -vN такой способ не работает. -v предназначено для компиляции проектов для тех типов или модификаций контроллеров, которых (еще пока) нет в предлагаемом списке, но для которых можно подобрать ближайший подходящий processor option.
|
|
|
|
Guest_Guest_Виктор_*_*
|
Mar 3 2006, 17:06
|
Guests

|
Никак не могу установить iar ew 4.11. Клизма есть. Сгенерированные коды менеджер ключей воспринимает и пишет, что всё о'кей, но компилятор при построении проекта выдаёт 'fatal error. there is not valid license". Для evaluation версии я правда подставлял коды не те, которые мне прислали (я вообщ не посылал запрос), а нашёл на каком-то форуме. Может быть проблема в этом? Ошибка выдавалась и на evaluation версии. Может быть, у кого-нибудь есть хороший дистрибутив какой-нибудь версии и evaluation коды для него?
|
|
|
|
|
Mar 3 2006, 17:50
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664

|
Цитата(Guest_Виктор_* @ Mar 3 2006, 19:06)  Может быть, у кого-нибудь есть хороший дистрибутив какой-нибудь версии и evaluation коды для него? Вполне хороший дистрибутив был взят несколько дней назад на iar.com, версии 4.12A/Evaluation (через регистрацию) . А по поводу прочего - давай свое мыло по почте, PM или ICQ.
|
|
|
|
Guest_Гость_*
|
Mar 4 2006, 07:45
|
Guests

|
Мой e-mail v_anisimov3@rambler.ru Если можно, вышлите к дистрибутиву evaluation код. Буду очень благодарен
|
|
|
|
|
Mar 4 2006, 23:05
|

Участник

Группа: Свой
Сообщений: 73
Регистрация: 13-07-05
Пользователь №: 6 757

|
Цитата(haker_fox @ Mar 3 2006, 06:23)  А так, почитайте вот это C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\avr\doc\EWAVR_UserGuide.pdf стр. 63, там как раз описывается создание проекта. Сам обучался по этому документу. Распечатал - сейчас изучаю. Спасибо!
|
|
|
|
Guest_Гость_*
|
Mar 5 2006, 00:05
|
Guests

|
А возможно вообще где-нибудь скачать дистрибутив. На сайте ведь лежит update только :-(
|
|
|
|
|
Mar 6 2006, 14:30
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664

|
Цитата(Гость @ Mar 5 2006, 02:05)  А возможно вообще где-нибудь скачать дистрибутив. На сайте ведь лежит update только :-( Update - это к коммерческим версиям. Скачивать надо ознакомительную (evaluation). Она отличается от полной коммерческой только отсутствием исходников библиотек. Это плохо, но не смертельно. Для ее установки после регистрации для скачки высылают лицензию на 30 дней. А за это время люди обычно или покупают постоянную лицензию, или... удаляют программу с диска, как того требует лицензионное соглашение Цитата(arttab @ Mar 6 2006, 08:42)  В проекте надо (вначале) #define ENABLE_BIT_DEFINITIONS иначе сосмому определять имена регистров.... Или, что более красиво при использовании IAR IDE (интересно, сколько процентов пользователей компиляторов IAR его же среду НЕ используют  ), выставить соответствующую галочку в свойствах проекта.
|
|
|
|
Guest_Гость_*
|
Mar 6 2006, 19:09
|
Guests

|
Объясните мне, где лежит эта evaluation версия на сайте. Всё уже на нём облазил: не могу найти...
|
|
|
|
|
Mar 6 2006, 20:12
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(osnwt @ Mar 6 2006, 16:30)  (интересно, сколько процентов пользователей компиляторов IAR его же среду НЕ используют  ) Примите мои соболезнования, если используете эту уродицу. Желаю как можно раньше дойти до мысли, что в профессиональной деятельности надо использовать более универсальные и удобные средства.
Сообщение отредактировал zltigo - Mar 6 2006, 20:14
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 7 2006, 06:54
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664

|
Цитата(Гость @ Mar 6 2006, 21:09)  Объясните мне, где лежит эта evaluation версия на сайте. Всё уже на нём облазил: не могу найти... www.iar.com -> Products -> C++ compilers, Embedded Workbench -> AVR -> 30-day evaluation version.
|
|
|
|
|
Mar 7 2006, 07:05
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664

|
Цитата(zltigo @ Mar 6 2006, 22:12)  Примите мои соболезнования, если используете эту уродицу. Желаю как можно раньше дойти до мысли, что в профессиональной деятельности надо использовать более универсальные и удобные средства. Утверждение голословное. То же самое можно сказать про абсолютно любую IDE и предложить всем использовать Make, который относительно кроссплатформенный (на уровне языка, если пользовать что-то GNUшное) или т.п. Хотя определенная доля истины в утверждении и есть, но нельзя ли озвучить, что конкретно не подходит в этой среде для профессиональной деятельности? Чего конкретно нельзя изменить из среды (если и командные строки компиляторов, и файл конфигурации линкера доступны, и pre/post build commands, и custom build для своих типов файлов есть, и управление версиями файлов поддержано из среды)? То, что она за кого-то считает зависимости? Я не считаю, что это настолько мешает профессиональной деятельности. Редактор слабоват и не программируется? Смотря для каких целей, мне тоже хватает, хотя иногда пользую MultiEdit. Просто любопытно мнение профессионала (поскольку я в данное время не зарабатываю этим деньги, а пишу просто ради удовольствия)... И хотелось бы не утверждения типа "Надо пользовать, как минимум, вот это", а конкретно по пунктам: "Нет возможности сделать то, нет возможности сделать это...". А то критика получается какая-то не слишком конструктивная.
|
|
|
|
|
Mar 7 2006, 17:10
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(osnwt @ Mar 7 2006, 09:05)  То же самое можно сказать про абсолютно любую IDE и предложить всем использовать Make, который относительно кроссплатформенный (на уровне языка, если пользовать что-то GNUшное) или т.п. Именно о "любой IDE", которая прилагается разработчиками конкретного компилятора в качестве "бесплатного" приложения к своему компилятору и веду речь. Они все сделаны по принципу китайского набора инстумента "199 в одном" :-( Я еще не встречал ни одной такой IDE не несущей признаков "вторичности", жесткости и вкусовщины того, кто ее делал. В результате небходимость подстраивать свой организм при прыгании с IDE на IDE + скромные возможности редакторов (хотя большинство сознавая их убогость позволяют с разной степенью удобства цеплять внешний), плюс разнообразие глюков (IAR в череде тех, котоых я крутил - рекордсмен), которые ввиду вторичности живут доооолго :-(. Меня еще не устраивает ползание по многочисленным менюшкам сгруппированным по вкусу создателя и невозможность окинуть единым взглядом установки всего проекта и подключение сторонних инструментов. Посему - действительно IDE, который является основным продуктом для производителя (желательно в исходниках для серьезного подгибания под свой вкус и кросплатформенный)+ make + прочие инстументы. В настоящее время пользуюсь ME для DOS, MEW для WIN и FTE под *nix. Multiedit-ы не порекомендую для использования в настоящее время для начала, уж больно уродливо отделаны по умолчанию и практически заброшены. То дерьмо которые представляют собой исходники это отдельная песня. Сам однако с них слезать не собираюсь, ибо за многие годы изрядно под себя переписаны и естественно ВСЕМ устраивают и оставляют потратившему на них время почти полную свободу действий.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 24 2006, 12:26
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(zltigo @ Mar 6 2006, 23:12)  Цитата(osnwt @ Mar 6 2006, 16:30)  (интересно, сколько процентов пользователей компиляторов IAR его же среду НЕ используют  ) Примите мои соболезнования, если используете эту уродицу. Желаю как можно раньше дойти до мысли, что в профессиональной деятельности надо использовать более универсальные и удобные средства. Я с IAR работаю 6 лет. НИКАКИХ проблем НИКОГДА не было. Сделан очень добротно. Одно могу сказать: не стоит гнаться за новыми версиями. Я перешел на 3.20C только в этом году. До этого работал на 2.28.
|
|
|
|
|
Apr 25 2006, 05:56
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Proton @ Apr 25 2006, 07:06)  Считаю что IDE IAR'а незаменимо на стадии создания проекта и первичной отладки. Создания первого/первых проектов, дабы необходимость возни с изучением-управлением "самолетом" не заслонила радости первого "полета" - 'Я ЛЕЧУ.......!!!!!!' (как-то двусмысленно получилось :-). Цитата Между тем расстановка галочек в чекбоксах к которым тут-же приведены описания одно удовольствие. Ну прямо увлекательная игра в 'морской бой' - найди где прячется что-то не знаю что и поставь галочку, а когда поставил - еще интересне не забудь, где поставил, ибо с большей степенью вероятности начинающий понял "описание" около чекбокса совсем не так и получил невесть что. Там еще поля ввода тех самых "ключей" - поняли для чего? Подсказываю - чекбоксиков поменее будет, чем возможностей у компиляора и линкера. А еще там "подсказочки" в виде засеривания "ненужных" чекбоксов в "ненужных" ситуациях (ну например попробуйте манипулируя галочками разместить контрольную сумму добавляемую линкером _сразу_после_ кода/данных ). Да кстати - а чего это "добрые дяди" совсем забросили свое дело с галочками на командной строке линкера? То, что там получилось - вообще смотреть нельзя, не говоря об использовании.... Про редактор с минималистичными функциями уже писал где-то в сходной теме. Цитата Ввиду упомянутых обстоятельств не вижу для себя никакой альтернативы встроеному IDE. Просто не смотрели, на самом деле. Смотреть, подбирать инструмент, осваивать это на самом деле достаточно тяжелое и трудоемкое занятие - тут спору нет.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 9 2006, 21:36
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(Atashi @ Jun 9 2006, 00:10)  "Всякое категорическое мнение должно быть признано неверным." Это не я придумал, это - человечество. - Да, есть проколы и неудобства в ИАРЕ, но даже я не идеален. Мне кажется, за качество компайлера иаровцам можно простить все что угодно! К тому же не каждый день ведь приходится переходить на новые чипы, вполне можно ( и многие так делают) брать старый проект как заготовку. Когда кого-то ругаешь, вроде как сам возносишься... А откуда мы так хорошо знаем недостатки системы? Не потому ли, что пользуемся интенсивно и предпочитаем иар другим?! Но не будем о пристрастиях. Все же вопрос был типа помогите начать. Могу предложить фрагментарный перевод нужных разделов хелпы (усерской гиды или чего еще) с квалифицированным комментарием. В смысле, спросите - переведу. Я не категоричен и высказываю своё мнение.  Компилятор очень хорош и с этим вроде бы никто не спорит. IDE мне очень не понравилась, но сроки ограничены и похоже процесс настройки очень бы затянулся. На мой взгляд строки и ключи различные, для командного файла, напоминают головоломку типа пляшущих человечков. Ну например: -Z(DATA)HEAP+_..X_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END,_..X_EXT_SRAM_BASE-_..X_EXT_SRAM_END -Z(DATA)IOSTREAM_N#_..X_SRAM_BASE-_..X_SRAM_END,_..X_EXT_SRAM_BASE-_..X_EXT_SRAM_END -Z(DATA)NEAR_HEAP+_..X_NEAR_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END,_..X_EXT_SRAM_BASE-_..X_EXT_SRAM_END Еслибы такая строка была одна-две, то пол беды, - но их же там много ... Причём как правило надо изменить одну. Надо бы какой нибудь генератор сделать. Кто-то писал что он есть. Где? Я что-то не нашёл. И упоминаний в доках тоже не нашёл. Существуют опции проекта. как сгенерировать .xcl файл соответствующий опциям проекта? А в общем при достаточно малом времени работы с компилятором, я согласен с zltigo. Мне приходится с ним согласится. 1) Галочками всё (как уже оказалось у меня) не высставишь. 2) Опции проекта, при переустановке системы (вирусок хапнул) безвозвратно теряются. 3) А если бы был создан файл, то был бы сохранён. 4) Даже при краткой работе с IDE понятно что надо куда-то линять. Можно перечислить 20 пунктов чем она меня не устраивает, но для человека достаточно и одного. Вот только линять пока некуда! Я это уже почуствовал. Обустраивание комфортной работы займёт (по крайней мере у меня ) не один месяц (минимум). С другой стороны внесение изменений в программу на С, - это же просто песня!!!  После ассемблера. Я так доволен, что готов мирится со множеством недостатков!!!
|
|
|
|
|
Jun 9 2006, 22:03
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(SasaVitebsk @ Jun 10 2006, 00:36)  Существуют опции проекта. как сгенерировать .xcl файл соответствующий опциям проекта? поставить галочку "генерить .map" В шапке файла идет вся командная строка вызова линкера. То же и с компилятором - все ключи в шапке .lst файлов. Цитата 1) Галочками всё (как уже оказалось у меня) не высставишь. В опциях компилятора есть специальное место куда можно вписать все недостающие опции в виде клюей командной строки компилятора. То же и для линкера. В качестве бонуса можно использовать макросы $TOOLKIT_DIR$, $PROJ_DIR$ и т.п. Цитата 2) Опции проекта, при переустановке системы (вирусок хапнул) безвозвратно теряются. 3) А если бы был создан файл, то был бы сохранён. Чудеса говорите. Все опции проекта хранятся в файлах .ewp, .ewd которые обычно находятся в директории проекта вместе с исходниками. В качестве бонуса в директории проекта создается директория settings в которой хранятся файлы описывающие расположение окон и прочие установки C-SPY. Так что здесь все придумано за нас и именно так как надо. Цитата 4) Даже при краткой работе с IDE понятно что надо куда-то линять. Можно перечислить 20 пунктов чем она меня не устраивает, но для человека достаточно и одного. Ну это "на вкус и цвет". Я привык, меня устраивает. Я с VIM не смог подружиться, а многие от него в восторге. Поэтому я для текстовых файлов пользую notepad а если нужны номера строк - ту же IAR IDE. Цитата С другой стороны внесение изменений в программу на С, - это же просто песня!!!  После ассемблера. А вот это уже "слова юноши, но мужа" :-)) Кстати, символы _..X в начале имен констант в командной строке, придающие ужасность этим именам - это признак для C-SPY не воспринимать эти значения в качестве адресов меток и таким образом не показывать эти имена в окне дизассемблера.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jun 16 2006, 15:14
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066

|
Вставлю и я своих пать копеек. Уважаемый zltigo, Ваша категоричность свидетельство либо закостенелости мышления, либо очень давних (со времен ДОС_а) привычек, и как следствие - отрицание всего, к чему не привыкли, либо чего - то более закамуфлированного. Ваша ПРОФЕСИОНАЛЬНАЯ деятельность ни для кого не может быть показательной. У каждого продукта есть свой круг пользователей. И если при помощи понравившегося инструментария достигается желаемый результат, инструмент можно считать удовлетворительным. Тем более, что сейчас попробовать практически все можно почти бесплатно.
Попробуйте меня убедить, что молоток весом 500 грамм - профессиональней, чем 50-гамовый. Да, возразите Вы, им дробить кирпичи, (если в этом состоит Ваша професия) более професионально. Но моя (например) стеклить окна. Попробуйте посоревнуйтесь со мной в забивании стекольных гвоздей.
Если Вам более понравился (например GCC)- и слава богу! Мы просто рады за Вас. Мне, например он кажется просто неудобным инструментом (хотя, может быть и очень качественным). Ну не привык я к таким инструментам и все тут. Но это только мои субьективные ощущения. А затевать категоричные споры, привлекая в качестве аргументов понятия професиональности, по - моему отдает хвастовством!
Я, например никак не могу обойтись без FAR-менеджера. А мой дружек говорит 'Куда ты меня тянешь? Обратно в ДОС? Посмотри, на улице уже 21 век!', хотя все, что ему нужно в его 'професиональной деятельности' он очень качественно и быстро может сделать со "своим инструментарием".
Тут, похоже, кому поп а кому и попадья!
|
|
|
|
|
Jun 16 2006, 15:46
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(aleksey_g @ Jun 16 2006, 18:14)  Уважаемый zltigo, Ваша категоричность свидетельство либо закостенелости мышления, либо Моя категоричность свидетельствует АБСОЛЮТНО об обратном. Закостенелость или даже полное отсутствие мышления наблюдается обычно у пользователей "готовых", сделанных абы как IDE. И не надо использование "чего бог послал" противопоставлять тщательно собранному набору обкатанных и подогнанных инструментальных средств. И тем более СМЕШНО пытаться выдавать это бездумное решение за "гибкось мышления".
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Guest_Гость_*
|
Mar 29 2007, 19:37
|
Guests

|
Цитата(Guest_Виктор_* @ Mar 3 2006, 17:06)  Никак не могу установить iar ew 4.11. Клизма есть. Сгенерированные коды менеджер ключей воспринимает и пишет, что всё о'кей, но компилятор при построении проекта выдаёт 'fatal error. there is not valid license". Для evaluation версии я правда подставлял коды не те, которые мне прислали (я вообщ не посылал запрос), а нашёл на каком-то форуме. Может быть проблема в этом? Ошибка выдавалась и на evaluation версии. Может быть, у кого-нибудь есть хороший дистрибутив какой-нибудь версии и evaluation коды для него? Я сталкивался уже с проблемой установки IAR'а и успешно ее решил тупым переводом времени. Вообще я только начинаю с ним работать и у меня версия 2.28А. (старовато, но на этом писалась программа, которую мне необходимо переделать, а использовать более новую версию боюсь, да и нет ее у меня). У меня сейчас возник другой вопрос. Мне нужно отладить программу, написанную в Си, а С-Spy соглашается показывать ее только в ассемблере. Есть ли какой-нибудь способ просмотреть пошаговое выполнение программы на Сях?
|
|
|
|
|
Sep 7 2007, 06:36
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
а где можно прочитать про это? В руководстве нашел про случай с использованием stdin, stdout. Но использую фрагмент предложенный в даташите Код void USART_Transmit( char & data ) { PORTD |= (1 << PD3); /* Wait for empty transmit buffer */ while ( !( UCSRA & (1<<UDRE)) ); /* Put data into buffer, sends the data */ UDR = data; };
Сообщение отредактировал aspID - Sep 7 2007, 06:37
|
|
|
|
|
Sep 7 2007, 07:04
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(aspID @ Sep 7 2007, 09:36)  а где можно прочитать про это? В руководстве нашел про случай с использованием stdin, stdout. Но использую фрагмент предложенный в даташите... Извините, про что ЭТО? Я немного перестал понимать, о чем речь. У Вас данные не отправляются в порт? Можно поставить точку останова и убедиться, что контроллер выполняет эту команду. Про конфигурацию порта и прерываний, я думаю, Вы знаете.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 7 2007, 07:13
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
Цитата про что ЭТО? Про отладку USART. Реальным устройством данные и посылаются, и принимаются. А как в дебаггере этот момент можно отследить/сэмулировать, если работаю не через print-ы в stdin, а сразу в регистры пихаю данные?
|
|
|
|
|
Sep 7 2007, 07:30
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
симовол уходит без проблем, но при этом не выставляется флаг TXC и при попытке передачи следующего стоим на Код while ( !( UCSRA & (1<<UDRE)) ); до тех пор, пока руками 1 не поставить. После передачи пары строк забываешь, чего хотел...
|
|
|
|
|
Sep 27 2007, 04:43
|
Группа: Новичок
Сообщений: 11
Регистрация: 9-09-07
Пользователь №: 30 404

|
У меня такой вопрос: почему у меня, если поставить галочку General Options->System->Initialize unused interrupt vectors with RETI instructions не работает прерывание по переполнению TIMER3 ?
|
|
|
|
|
Sep 27 2007, 09:34
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Unknown_User @ Sep 27 2007, 07:43)  У меня такой вопрос: почему Недостаточно информации. А без галочки обработчик работает? Перестает работать только этот обработчик или вся остальная программа тоже? В любом случае ответ один - потому что у вас где-то ошибка в программе. Предполагаю, что разрешается какое-то из прерываний, для которого не прописан обработчик. Попав в него выполняется RETI, но флаг не снимается (например, прерывание АЦП, UDRE, RXC и подобные), и после reti выполняется вход в этот обработчик снова, программа циклится. А таймер3 имеет приоритет ниже и до него очередь не доходит. Или вектор на ваш обработчик прерывания от TIMER3 расположен по неправильному адресу. И если раньше при переходе по вектору процессор натыкался на опкод 0xFFFF, исполнял его и попадал таки в ваш обработчик, то теперь он сразу попадает на RETI и до вашего обработчика не добирается. P.S. На всяки случай - когда вы разберетесь, в чем дело - напишите пожалуйста сюда, чтобы другие не наступали на такие же грабли или, если все же наступят, найдя это сообщение могли в комплекте получить и ответ. Даже если ответ будет из серии "сам дурак".
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Sep 28 2007, 07:28
|
Группа: Новичок
Сообщений: 11
Регистрация: 9-09-07
Пользователь №: 30 404

|
to Сергей Борщ. Пока проблема решается тем, что галочка "Initialize unused interrupt vectors with RETI instructions" не ставится. Но мне всё равно интересно, почему так происходит. Разберусь - обязательно напишу.
|
|
|
|
|
Sep 28 2007, 20:28
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Unknown_User @ Sep 28 2007, 10:28)  to Сергей Борщ. Пока проблема решается тем, что галочка "Initialize unused interrupt vectors with RETI instructions" не ставится. Но мне всё равно интересно, почему так происходит. Разберусь - обязательно напишу. Я бы написал на неиспользуемые вектора ловушки и дергал в них в цикле разными свободными ногами. Или если свободная нога одна, то в разных ловушках с разной частотой а еще нагляднее - скважностью. Таким образом определил бы, не попадает ли программа в какой-либо из неиспользуемых векторов и если попадает - то в какой. Дальше смотрел бы в исходнике работу с соотвествующей периферией и разбирался бы, почему вызывается прерывание. Ибо если такое случается - это вылезет каким-нибудь очень неприятным глюком в самый неподходящий момент. Это даже очень хорошо, что вы обнаружили такое непонятное поведение сами и сейчас, а не заказчик во время приемо-сдаточных испытаний  Но если вы не локализуете ее, может случиться такое:
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Oct 1 2007, 10:02
|
Группа: Новичок
Сообщений: 11
Регистрация: 9-09-07
Пользователь №: 30 404

|
Сегодня проверил - и правда программа заходит, как минимум, ещё в одно прерывание, которое я запрещал. Видимо "просто" в результате какого либо бага моя программа нечаянно его разрешает. Будем копать дальше. Сергей Борщ, спасибо за совет )).
|
|
|
|
|
Oct 3 2007, 10:20
|
Группа: Новичок
Сообщений: 11
Регистрация: 9-09-07
Пользователь №: 30 404

|
Никак не могу найти способ доступа из функций, написаных на Си, к переменным, размещёным в области кода программы. То есть, есть массив, объявленый как : __flash char SomeArray[] = { 1, 2 }; и функция: void DoSmth( char *Arr ){ } Что нужно сделать, чтобы, код DoSmth( SomeArray ); нормально работал ?
|
|
|
|
|
Oct 3 2007, 10:28
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Unknown_User @ Oct 3 2007, 13:20)  Что нужно сделать, чтобы, код DoSmth( SomeArray ); нормально работал ? Код void DoSmth( char __flash *Arr ){ } Только при этом такая функция перестанет работать с массивами в ОЗУ. Поэтому в pgmspace.h введены дополнительные фукции типа puts_P().
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Oct 3 2007, 10:42
|
Группа: Новичок
Сообщений: 11
Регистрация: 9-09-07
Пользователь №: 30 404

|
ok, спасибо, заработало )).
|
|
|
|
|
Oct 10 2007, 07:44
|
Группа: Новичок
Сообщений: 11
Регистрация: 9-09-07
Пользователь №: 30 404

|
Продолжаем череду глупых вопросов )). Что может означать подобная картина в дебаггере ( см. аттач ) ? Появляеться она при вызове одной из функций, причём сразу же после старта дебаггера. Если этот вызов функции закомментировать, то всё работает нормально. Пробовал рыться в коде с целью выяснения конкретной строчки, наткнулся на простое присваивание.
Эскизы прикрепленных изображений
|
|
|
|
|
Oct 10 2007, 11:08
|
Группа: Новичок
Сообщений: 11
Регистрация: 9-09-07
Пользователь №: 30 404

|
Дело в том, что такая картина появляеться СРАЗУ при старте программы, то есть функция, из-за вставки которой в код появляеться такое чудо, ещё не вызывалась.
|
|
|
|
|
Oct 10 2007, 11:43
|
Группа: Новичок
Сообщений: 11
Регистрация: 9-09-07
Пользователь №: 30 404

|
Оптимизация выключена, и, как видно на скриншоте, в окне дизассемблера вместо ассемблерного кода стоят прочерки.
|
|
|
|
|
May 9 2008, 11:03
|
Группа: Новичок
Сообщений: 7
Регистрация: 9-05-08
Пользователь №: 37 388

|
Подскажите как в IAR отключить чувствительность к регистру? Чтобы PortA и PORTA было одинаково для компилятора.
|
|
|
|
|
May 9 2008, 16:48
|
deleted
   
Группа: Свой
Сообщений: 555
Регистрация: 28-08-05
Пользователь №: 8 024

|
Почему это некорректно ?, -в соответствии со стандартом,- ANSI _C. "Компилятор С обрабатывает прописные и строчные буквы, как разные символы" хотя например, 0xff или 0xFF ему помоему побарабану ЗЫ, хотя, учебник говорит (повторение- мать учения-  ), что вышесказанное относится к идентификаторам "примеры трех форм целых констант Десятичные Восьмеричные Шестнадцатеричные 32179 076663 0x7db3 или 0x7DB3"
|
|
|
|
|
Sep 23 2008, 12:06
|
Группа: Новичок
Сообщений: 2
Регистрация: 22-09-08
Пользователь №: 40 390

|
Цитата(Atashi @ Jun 9 2006, 01:10)  "Всякое категорическое мнение должно быть признано неверным." Это не я придумал, это - человечество. - Да, есть проколы и неудобства в ИАРЕ, но даже я не идеален. Мне кажется, за качество компайлера иаровцам можно простить все что угодно! К тому же не каждый день ведь приходится переходить на новые чипы, вполне можно ( и многие так делают) брать старый проект как заготовку. Когда кого-то ругаешь, вроде как сам возносишься... А откуда мы так хорошо знаем недостатки системы? Не потому ли, что пользуемся интенсивно и предпочитаем иар другим?! Но не будем о пристрастиях. Все же вопрос был типа помогите начать. Могу предложить фрагментарный перевод нужных разделов хелпы (усерской гиды или чего еще) с квалифицированным комментарием. В смысле, спросите - переведу. пришлите мне перевод dred73{dog}inbox.ru
|
|
|
|
|
Nov 12 2008, 05:21
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 25-10-07
Из: Тольятти
Пользователь №: 31 723

|
При случайном наведении курсора на массив большого размера в режиме отладки, ИАР начинает его считывать (чтобы показать в подсказке лишь его часть). Врезультате всё повисает, и чем больше массив, тем дольше висит. Можно это безобразие как-нибудь остановить?
|
|
|
|
|
Nov 18 2008, 10:03
|
Группа: Новичок
Сообщений: 3
Регистрация: 13-11-08
Пользователь №: 41 590

|
Господа, пересел с ICCAVR на IAR а надо разобраться побыстрее, UserGuide конечно вещь, но читать по английски еще и вникая в суть некоторых сложностей трудновато. ПЛЗ скиньте доку на русском pata(гав гав)haaf.ru
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|