|
Глюки компилятора IAR?, Важно! Код прошивки по непонятным причинам не стартует в МК AVR. |
|
|
|
Jan 10 2008, 19:42
|
Частый гость
 
Группа: Свой
Сообщений: 81
Регистрация: 26-10-06
Из: Россия, Пенза
Пользователь №: 21 706

|
Всех с прошедшими праздниками!
Присказка. Чуть больше 6 месяцев вплотную работаю с контроллерами ATMEL и компилятором IAR. Каких только финтов не выкидывала эта связка и вот очередная проблема.Программлю я поэтапно, шаг за шагом проверяя функционально законченные блоки кода. В результате, у меня получился основной код девайса и код, который производит самотестирование периферии контроллера. По отдельности все отлично и стабильно работает. Пришло время отлаживать всё в комплексе и тут начался полтергейст, который я пытаюсь изкоренить методом прямого шаманства. В чём причина конккретно не знаю, одни догадки... Суть проблемы. Короче код после прошивки то запускаетя и работает, то вообще не исполняется ни одной команды. Крутил оптимизацию, распределение памяти - не помогло. Со сбросом всё в порядке, схема не причем, контроллер тоже. Остается компилятор и наверное настройки файла *.xcl Контроллер использую Atmega8. Пишу на С. Использую стандартный lnkm8.xcl. high оптимизация проекта по размеру. IDE: IAR 4.20A/W32 [Evaluation] (4.20.1.3). Компилятор: IAR XLIB 3.29L/386 (3.29.0.12) IAR XLINK 4.59Z (4.59.26.0)
Из своего опыта. Кодил я девайс: считыватель чип-карт, который подключается к USB. Отлаживал отдельно часть кода для работы с картой ичасть кода для обмена по USB. Поставил оптимизацию всего проекта по скорости, т.к. 10 байт с карты приходили верный, а остальные контроллер не успевал обрабатывать (кодил опять же на С). Ладно добился правильной работы оптимизацией. Как только я начал отлаживать все в комплексе - обмен с картой и обмен по USB, то начались проблемы! С картой обмен есть, с USB нет. Оптимизацию вырубаю - наоборот с USB работает, а с карты искаженные данные. Долго я шаманил над проектом... И в итоге сделал так: включил оптимизацию проекта по скорости, а перед теми функциями, которые конкретно отвечают за обмен с USB, воткнул директиву компилятора отключающую оптимизацию именно это процедуры. После этого всё работает. Это конечно ни есть хорошо, но выходя я пока так и не нашёл. Одним словом - шаманство!!!
Посоветуйте, в каком направлении мне копать! Кто сталкивался с такими проблемами?
|
|
|
|
Сообщений в этой теме
DiMonstr Глюки компилятора IAR? Jan 10 2008, 19:42 prottoss Цитата(DiMonstr @ Jan 11 2008, 02:42) Пос... Jan 10 2008, 19:59 DiMonstr Забыл спросить. А есть ли у компилятора такая фишк... Jan 10 2008, 20:26 arttab у вас не было подозрения что работа по usb и карто... Jan 11 2008, 02:01 GDI При борьбе со стеками очень помогает включение ген... Jan 11 2008, 07:02 DiMonstr Цитата(GDI @ Jan 11 2008, 10:02)
Этой фи... Jan 12 2008, 14:28  Dog Pawlowa Цитата(DiMonstr @ Jan 12 2008, 18:28) И т... Jan 12 2008, 14:48  zltigo Цитата(DiMonstr @ Jan 12 2008, 16:28) Нее... Jan 12 2008, 14:49   DiMonstr Цитата(zltigo @ Jan 12 2008, 17:49)
Есл... Jan 12 2008, 15:00   singlskv Цитата(zltigo @ Jan 12 2008, 17:49) Повто... Jan 12 2008, 18:21    Сергей Борщ Цитата(singlskv @ Jan 12 2008, 20:21) пре... Jan 12 2008, 18:56    DiMonstr Цитата(singlskv @ Jan 12 2008, 21:21) Авт... Jan 12 2008, 19:56     Baser Цитата(DiMonstr @ Jan 12 2008, 21:52) В д... Jan 12 2008, 20:11     Сергей Борщ Цитата(DiMonstr @ Jan 12 2008, 21:56) А у... Jan 12 2008, 20:12      DiMonstr Цитата(Сергей Борщ @ Jan 12 2008, 23:12) ... Jan 12 2008, 20:21    zltigo Цитата(singlskv @ Jan 12 2008, 20:21) Это... Jan 12 2008, 20:00 Сергей Борщ Цитата(DiMonstr @ Jan 10 2008, 21:42) При... Jan 11 2008, 08:11 DiMonstr Цитата(Сергей Борщ @ Jan 11 2008, 11:11) ... Jan 12 2008, 14:03  zltigo Цитата(DiMonstr @ Jan 12 2008, 15:59) Да ... Jan 12 2008, 14:04 MrYuran Цитата(Сергей Борщ @ Jan 11 2008, 11:11) ... Mar 3 2008, 14:31  SasaVitebsk Цитата(MrYuran @ Mar 3 2008, 18:31) А я ч... Mar 3 2008, 15:46  Сергей Борщ Цитата(MrYuran @ Mar 3 2008, 16:31) А я ч... Mar 3 2008, 18:28 zltigo ЦитатаЕсли говорить...
Попробуйте хотя-бы прочитат... Jan 12 2008, 15:10 DiMonstr Цитата(zltigo @ Jan 12 2008, 18:10)
Код... Jan 12 2008, 15:20 Dog Pawlowa Код рабочий? Тогда какие проблемы? Jan 12 2008, 15:52 AndyBig Если контроллер не успевает выполнять все функции ... Jan 12 2008, 22:58 DiMonstr Выкладываю исходники проекта. Попробуйте прошить к... Jan 20 2008, 15:26 SasaVitebsk Цитата(DiMonstr @ Jan 20 2008, 19:26) Что... Jan 20 2008, 16:58  DiMonstr Цитата(SasaVitebsk @ Jan 20 2008, 19:58) ... Jan 20 2008, 17:23  aesok Цитата(SasaVitebsk @ Jan 20 2008, 19:58) ... Jan 20 2008, 17:34   DiMonstr Цитата(aesok @ Jan 20 2008, 20:34)
Прави... Jan 20 2008, 18:39 SasaVitebsk Приведу пример для понимания происходящего
допусти... Jan 20 2008, 19:01 forever failure Кто нить ещё смотрел этот проект?
Впечатление в ц... Jan 21 2008, 03:50 DiMonstr Цитата(forever failure @ Jan 21 2008, 06... Jan 21 2008, 11:58  Сергей Борщ Цитата(DiMonstr @ Jan 21 2008, 13:58) 1) ... Jan 21 2008, 12:19   Qwertty Цитата(Сергей Борщ @ Jan 21 2008, 15:19) ... Jan 21 2008, 12:56    defunct Цитата(Qwertty @ Jan 21 2008, 15:56) Я во... Jan 21 2008, 13:04     Qwertty Цитата(defunct @ Jan 21 2008, 16:04) type... Jan 21 2008, 13:21   DiMonstr Цитата(Сергей Борщ @ Jan 21 2008, 15:19) ... Jan 21 2008, 19:35    SasaVitebsk Цитата(DiMonstr @ Jan 21 2008, 23:27) Т.е... Jan 21 2008, 19:43  aesok В функциях EEPROM_* - не должны разрешаться прерыв... Jan 21 2008, 20:05   DiMonstr Цитата(aesok @ Jan 21 2008, 23:05) В функ... Jan 24 2008, 17:13    defunct Цитата(DiMonstr @ Jan 24 2008, 20:13) Я г... Jan 24 2008, 17:24 forever failure /* if (Value > MinValue & Value < MaxVal... Jan 21 2008, 12:42 SasaVitebsk Если честно я тоже скачал данную прогу. Но при так... Jan 21 2008, 12:52 defunct ЦитатаА я сначала и объявлял переменные через стру... Jan 22 2008, 00:22 SasaVitebsk Цитата(defunct @ Jan 22 2008, 04:22) Саша... Jan 23 2008, 19:45  Сергей Борщ Цитата(SasaVitebsk @ Jan 23 2008, 21:45) ... Jan 23 2008, 22:37   defunct Цитата(Сергей Борщ @ Jan 24 2008, 01:37) ... Jan 23 2008, 23:37    Сергей Борщ Цитата(defunct @ Jan 24 2008, 01:37) Как ... Jan 24 2008, 15:17 Freeze Anti Как я и предполагал с самого начала, вашей програм... Jan 23 2008, 18:45 DiMonstr Цитата(Freeze Anti @ Jan 23 2008, 21:45) ... Jan 24 2008, 16:44 SasaVitebsk 2 Сергей Борщ.
Собственно именно это я и хотел ска... Jan 24 2008, 12:47 prottoss ЦитатаА можно ли увеличить пространство оперативки... Jan 24 2008, 16:58 DiMonstr Цитата(prottoss @ Jan 24 2008, 19:58) Мож... Jan 24 2008, 18:49  prottoss Цитата(DiMonstr @ Jan 25 2008, 01:49) Не ... Jan 24 2008, 19:06   DiMonstr Цитата(prottoss @ Jan 24 2008, 22:06)
Да... Jan 24 2008, 19:34 SasaVitebsk И вы невнимательно прочитали то, что сами процитир... Jan 24 2008, 18:54 Freeze Anti про типы переменных я говорил, что если у вас пере... Jan 24 2008, 19:32 prottoss ЦитатаНо я так и не врубился че значит цифра ... Jan 24 2008, 20:17 DiMonstr Цитата(prottoss @ Jan 24 2008, 23:17) Раз... Jan 24 2008, 21:25  Сергей Борщ Цитата(DiMonstr @ Jan 24 2008, 23:25) Всё... Jan 25 2008, 08:45   DiMonstr Цитата(Сергей Борщ @ Jan 25 2008, 11:45) ... Jan 25 2008, 13:31    SasaVitebsk Цитата(DiMonstr @ Jan 25 2008, 17:31) В у... Jan 25 2008, 13:36    Сергей Борщ Цитата(DiMonstr @ Jan 25 2008, 15:31) Эта... Jan 25 2008, 13:58     DiMonstr Цитата(Сергей Борщ @ Jan 25 2008, 16:58) ... Jan 25 2008, 14:09 Сергей Борщ Вы утверждали, что это "Эта фишка (и не тольк... Jan 25 2008, 15:09 DiMonstr Цитата(Сергей Борщ @ Jan 25 2008, 18:09) ... Feb 9 2008, 19:41 DiMonstr А может попробовать скомпилять проект в WinAVR? Да... Feb 9 2008, 21:24 singlskv Цитата(DiMonstr @ Feb 10 2008, 00:24) А м... Feb 9 2008, 22:09  zltigo Цитата(singlskv @ Feb 10 2008, 01:09) Вы ... Feb 9 2008, 23:17   DiMonstr Цитата(zltigo @ Feb 10 2008, 02:17)
Я с ... Feb 10 2008, 09:28   singlskv Цитата(zltigo @ Feb 10 2008, 02:17) Можно... Feb 11 2008, 21:00 forever failure Хинт: уберите весь (да, весь, вообще весь) код, до... Feb 10 2008, 10:58 DiMonstr Цитата(forever failure @ Feb 10 2008, 13... Feb 10 2008, 12:32 DiMonstr Попутно ещё вопрос. Что происходит если программа ... Feb 10 2008, 13:35 VladislavS 0xFFFF так же как NOP отрабатывается. Ничем забива... Feb 10 2008, 14:56 DiMonstr Как в IAR написать код, который будет выполняться ... Feb 11 2008, 20:17 zltigo Цитата(DiMonstr @ Feb 11 2008, 23:17) Ком... Feb 11 2008, 20:48 DiMonstr Спасибо. Feb 11 2008, 21:00 bzx Цитата(DiMonstr @ Feb 12 2008, 00:00) Спа... Feb 11 2008, 21:20  DiMonstr Цитата(bzx @ Feb 12 2008, 00:20) Надеюсь ... Feb 12 2008, 17:44   singlskv Цитата(DiMonstr @ Feb 12 2008, 20:44) Во-... Feb 12 2008, 18:42 forever failure Кстати, кто-нить смотрел checkjump.asm ? Особенно ... Feb 13 2008, 06:09 DiMonstr Цитата(forever failure @ Feb 13 2008, 09... Feb 13 2008, 20:31  bzx Цитата(DiMonstr @ Feb 13 2008, 23:31) Или... Feb 13 2008, 21:21 GDI ЦитатаЯ не понимаю почему не стоит делать проверки... Feb 13 2008, 07:39 forever failure Прогнать в симуляторе АВР студии полученный код не... Feb 14 2008, 04:36 DiMonstr Цитата(forever failure @ Feb 14 2008, 07... Feb 14 2008, 06:10  IgorKossak Цитата(DiMonstr @ Feb 14 2008, 08:10) Про... Feb 14 2008, 06:34  Сергей Борщ Цитата(DiMonstr @ Feb 14 2008, 08:10) Да ... Feb 14 2008, 08:48 DiMonstr Всех приветствую!!!
Я нашел причину ... Mar 3 2008, 19:51
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|