реклама на сайте
подробности

 
 
> Глюки компилятора IAR?, Важно! Код прошивки по непонятным причинам не стартует в МК AVR.
DiMonstr
сообщение Jan 10 2008, 19:42
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 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, воткнул директиву компилятора отключающую оптимизацию именно это процедуры. После этого всё работает. Это конечно ни есть хорошо, но выходя я пока так и не нашёл. Одним словом - шаманство!!!


Посоветуйте, в каком направлении мне копать! Кто сталкивался с такими проблемами?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
forever failure
сообщение Jan 21 2008, 03:50
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Кто нить ещё смотрел этот проект?
Впечатление в целом, если коротко - ужоснах. Конечно, брёвна в чужих глазах все мастера замечать, но в данном случае, автор действительно жжёт. (Автор, не обижайтесь, воспримите это как конструктивную критику).
Первое замечание в общем - код жутко неоптимален. ИАР, конечно многомощный комипилятор, но расчитывать на то, что он всё это дело оптимально разгребёт, не стоит. Пример в частности:
в функции main есть switch (channel), в котором по каждой метке выполняется почти один и тот же код:
case 0x01:
{
DebuggingData();

if (Value > MinValue & Value < MaxValue) /*<- здесь действительно побитовое И требуется ?*/
{
MeanValue_CH1 = MeanValue_CH1 + Value;
/* в каждой метке свитча своя только переменная MeanValue_CH*
можно было бы объявить массив этих переменных и обращатся в ним по индексу:
*/
// MeanValue_CH[channel] += Value;
if (MeanCount_CHx == StepMeanVoltage)
{
MeanValueVoltage[channel] = MeanValue_CH1 / StepMeanVoltage;
// MeanValueVoltage[channel] = MeanValue_CH[channel] / StepMeanVoltage;
MeanValue_CH1 = NULL; /* почему, кстати, целочисленной переменной присваивается значание указателя ? */
}
break;
}
ALARM_PROCCESS = TRUE;
break;
}
Если так поменять, тогда вообще никакого свитча не понадобится, и размер кода заметно уменьшиться. Такие места есть ещё. И ещё много чего интересного и занимательного есть, из-за чего этот код рабочим не является, и, похоже, никогда таковым не был.
Go to the top of the page
 
+Quote Post
DiMonstr
сообщение Jan 21 2008, 11:58
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 26-10-06
Из: Россия, Пенза
Пользователь №: 21 706



Цитата(forever failure @ Jan 21 2008, 06:50) *
...Если так поменять, тогда вообще никакого свитча не понадобится, и размер кода заметно уменьшиться. Такие места есть ещё.

Да зачем я буду обежаться, я и разместил здесь проект, чтобы в свой адрес услышать критику. Что и как я сделал не правильно, почему, как надо и т.д. Я же не профессионал, поэтому и прошу совета.
За предложение forever failure благодарю! Буду переделывать.

Цитата(forever failure @ Jan 21 2008, 06:50) *
И ещё много чего интересного и занимательного есть, из-за чего этот код рабочим не является, и, похоже, никогда таковым не был.

Ну зачем так жестко критиковать, код более менее рабочий, выполняет основные задачи без сбоев. Но уверенности у меня в нем 100%-ой нет, поэтому и обратился на форум с целью обогащения своих знаний и опыта.


Какие ещё есть косяки в коде? Огласите пожалуйста.


Цитата(forever failure @ Jan 21 2008, 06:50) *
1) if (Value > MinValue & Value < MaxValue) /*<- здесь действительно побитовое И требуется ?*/
2) MeanValue_CH1 = NULL; /* почему, кстати, целочисленной переменной присваивается значание указателя ? */

1) Никак нет, в данном случае производится элементарное сравнение - логическое И значит.
2) В данном случае переменная обнуляется.

Сообщение отредактировал DiMonstr - Jan 21 2008, 12:03
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 21 2008, 12:19
Сообщение #4


Гуру
******

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



Цитата(DiMonstr @ Jan 21 2008, 13:58) *
1) Никак нет, в данном случае производится элементарное сравнение - логическое И значит.
Тогда и надо писать if (Value > MinValue && Value < MaxValue). Код будет значительно компактнее и быстрее.
Цитата(DiMonstr @ Jan 21 2008, 13:58) *
2) В данном случае переменная обнуляется.
Тогда так и надо писать: MeanValue_CH1 = 0. NULL имеет тип указателя, удивительно что компиялтор пропустил такое присваивание (если только в режиме C++, но в нем как раз рекомендуется использовать 0 в том числе и для указателей вместо NULL).


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
DiMonstr
сообщение Jan 21 2008, 19:35
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 26-10-06
Из: Россия, Пенза
Пользователь №: 21 706



Цитата(Сергей Борщ @ Jan 21 2008, 15:19) *
Тогда и надо писать if (Value > MinValue && Value < MaxValue). Код будет значительно компактнее и быстрее.

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

Цитата(Сергей Борщ @ Jan 21 2008, 15:19) *
Тогда так и надо писать: MeanValue_CH1 = 0. NULL имеет тип указателя, удивительно что компиялтор пропустил такое присваивание (если только в режиме C++, но в нем как раз рекомендуется использовать 0 в том числе и для указателей вместо NULL).

В файле <stdio.h> NULL объявлена как 0:
#ifndef NULL
#define NULL (0)
#endif

И в других хидерах переопределений нет. Поэтому так и написал. А то, что NULL имеет тип указателя я и не знал. 05.gif
Для надежности всё же исправил.

Цитата(forever failure @ Jan 21 2008, 15:42) *

Логика такая: при выходе измеряемого напряжения (Value) за допустимые значения (MinValue и MaxValue) необходимо отключать питание системы.
Т.е. в данном случае, если условие соблюдается, то всё в порядке, иначе блокируем работу системы.
В отладчике проверял - работает. На практике проверял - тоже работает.Поэтому так и оставил.
Теперь исправил. smile.gif


Цитата(SasaVitebsk @ Jan 21 2008, 15:52) *
Либо локализуйте ошибку - либо выкиньте часть текста, до которого всё равно дело не доходит и тогда обращайтесь. Простите, это моё мнение.
По поводу оптимизации. В варианте со switch компилятор, тем не менее сам найдёт общие куски и объединит их. Я бы для начала отладил бы прогу в целом, а уж потом занялся оптимизацией проекта (если уж сразу не удалось написать оптимально). А то сейчас начать оптимизацию - это добавить новых ошибок.

Заметьте, отлаживать за себя я никого не просил. Я лишь хочу научиться правильно писать программу на практических советах уважаемых посетителей форума. Эти советы я думаю будут полезны и другим новичкам. Если человек с большим опытом, то ему не составит большого труда просмотрев код, даже не вникая в алгоритм, найти участки кода и сделать их более эффективными.
От свитча я вовсе избавился, действительно через массив оказалось всё просто, компактно и эффективно.
Оптимизация у меня давно выставлена по размеру и я её больше не трогаю с тех пор как компилятор по мере реализации новых фунций начал выдавать такие сообщения:
Код
Building configuration: pwr_control - Release
Updating build tree...
main.c
Linking
Error[e16]: Segment CODE (size: 0x202e align: 0x1) is too long for segment definition. At least 0xa0 more bytes  
needed. The problem occurred while processing the segment placement command  
"-Z(CODE)CODE=26-1FFF", where at the moment of placement the available memory ranges were  
"CODE:72-1fff"
   Reserved ranges relevant to this placement:
   CODE:26-3d           NEAR_F
   CODE:3e-65           SWITCH
   CODE:66-71           INITTAB
   CODE:72-1fff         ?FILL1
Error[e16]: Segment TINY_ID (size: 0 align: 0) is too long for segment definition. At least 0 more bytes needed.  
The problem occurred while processing the segment placement command  
"-Z(CODE)TINY_ID,NEAR_ID=26-1FFF", where at the moment of placement the available memory ranges  
were "-none-"
   Reserved ranges relevant to this placement:
   CODE:26-3d           NEAR_F
   CODE:3e-65           SWITCH
   CODE:66-71           INITTAB
   CODE:72-1fff         ?FILL1
Error[e16]: Segment NEAR_ID (size: 0xe1 align: 0) is too long for segment definition. At least 0xe1 more bytes  
needed. The problem occurred while processing the segment placement command  
"-Z(CODE)TINY_ID,NEAR_ID=26-1FFF", where at the moment of placement the available memory ranges  
were "-none-"
   Reserved ranges relevant to this placement:
   CODE:26-3d           NEAR_F
   CODE:3e-65           SWITCH
   CODE:66-71           INITTAB
   CODE:72-1fff         ?FILL1
Error[e16]: Segment CHECKSUM (size: 0x2 align: 0) is too long for segment definition. At least 0x2 more bytes  
needed. The problem occurred while processing the segment placement command  
"-Z(CODE)CHECKSUM#1FFF", where at the moment of placement the available memory ranges were  
"-none-"
   Reserved ranges relevant to this placement:
   CODE:0-17            INTVEC
   CODE:18-25           NEAR_ID
   CODE:26-3d           NEAR_F
   CODE:3e-65           SWITCH
   CODE:66-71           INITTAB
   CODE:72-1fff         ?FILL1
Error[e18]: Range error,  
Address out of range. Valid range is 0 to 8190 (0x1FFE).
File: E:\_CRYPTOSOFT\PWR_CONTROL\SRC\util.c, Line: 240  
Source: RCALL   ?PROLOGUE4_L09
  Where $ = slow_crc16 [0x370]
            in module "main" (E:\_CRYPTOSOFT\PWR_CONTROL\SRC\Release\Obj\main.r90),
            offset 0x0 in segment part 159, segment CODE
  What: ?PROLOGUE4_L09 [0x2000]
  Allowed range: 0x0 - 0x1FFE
  Operand: ?PROLOGUE4_L09 [0x2000]
           in module ?PROLOGUE_L09 (D:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\
avr\LIB\CLIB\cl1s-ec_mul.r90),
           Offset 0x0 in segment part 12, segment CODE
Error[e18]: Range error,  
Address out of range. Valid range is 0 to 8190 (0x1FFE).
File: E:\_CRYPTOSOFT\PWR_CONTROL\SRC\util.c, Line: 257  
Source: RJMP    ?EPILOGUE_B4_L09
  Where $ = slow_crc16 + 0x56  [0x3C6]
            in module "main" (E:\_CRYPTOSOFT\PWR_CONTROL\SRC\Release\Obj\main.r90),
            offset 0x56 in segment part 159, segment CODE
  What: ?EPILOGUE_B4_L09 [0x201A]
  Allowed range: 0x0 - 0x1FFE
  Operand: ?EPILOGUE_B4_L09 [0x201a]
           in module ?EPILOGUE_B_L09 (D:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\
avr\LIB\CLIB\cl1s-ec_mul.r90),
           Offset 0x0 in segment part 12, segment CODE
Error[e18]: Range error,  
Address out of range. Valid range is 0 to 8190 (0x1FFE).
File: E:\_CRYPTOSOFT\PWR_CONTROL\SRC\rdc.c, Line: 29  
Source: RCALL   ?PROLOGUE2_L09
  Where $ = BeginDataWriteToRDC [0x3C8]
            in module "main" (E:\_CRYPTOSOFT\PWR_CONTROL\SRC\Release\Obj\main.r90),
            offset 0x0 in segment part 160, segment CODE
  What: ?PROLOGUE2_L09 [0x2004]
  Allowed range: 0x0 - 0x1FFE
  Operand: ?PROLOGUE2_L09 [0x2004]
           in module ?PROLOGUE_L09 (D:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\
avr\LIB\CLIB\cl1s-ec_mul.r90),
           Offset 0x0 in segment part 14, segment CODE
.......
ну и так далее
.......
Total number of errors: 33
Total number of warnings: 0


Ну я и воткнул оптимизацию по размеру на максимум. Всё работает, но вот елси разрешить выполнение следующего кода:
Код
#if(CheckMCU)
  sum = slow_crc16(sum,(unsigned char __flash *)0, (unsigned long)&__checksum);
  // call with two 0 bytes for the correct calculation of crc
  sum = slow_crc16(sum,(unsigned char __flash *)&zero,2);                      
...
#endif

то прошивка лобо вообще не запускается либо запускается через раз. А по отдельности эти части кода фунциклируют по честному.


Цитата(defunct @ Jan 21 2008, 16:04) *

А я сначала и объявлял переменные через структуру. Только не смог передать содержимое структуры не в массив, не напрямую в eeprom. Я вообще не знал про эту функцию:
Код
memcpy( &BufLog[ 1 ], &rtcTime, sizeof( rtcTime ));

А каким образом можно без неё вообще обойтись и записывать структуру непосредственно в eeprom?
Спасибо за дельный совет. biggrin.gif

Сообщение отредактировал DiMonstr - Jan 21 2008, 19:00
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
||- - 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
||- - 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


Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01558 секунд с 7
ELECTRONIX ©2004-2016