Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Проблема с CodeVisionAVR 1.25.2

Отправлено PREMIER 24 марта 2008 г. 08:42


Непонятен мне один момент. В моей программе есть такая строка. Вроде просто операция сложения
pd->Root_base = pd->FAT_base + pd->FAT_size;

pd->FAT_base имеет значение 0x200;
pd->FAT_size - 0xF800;
Результат вычисления pd->Root_base оказывается равен 0x0200FA00;
Начал разбираться, в AVR симуляторе. В дизассемблере вижу следующий код:
243: pd->Root_base = pd->FAT_base + pd->FAT_size;
+00000249: D211 RCALL PC+0x0212
+0000024A: 01CD MOVW R24,R26 //Мне кажется что засада здесь 02 00 02 00
+0000024B: D232 RCALL PC+0x0233
+0000024C: D2B3 RCALL PC+0x02B4
+0000024D: 01DE MOVW R26,R28
+0000024E: 50A0 SUBI R26,0x00
+0000024F: 4FBE SBCI R27,0xFE
+00000250: 900D LD R0,X+
+00000251: 91BC LD R27,X
+00000252: 2DA0 MOV R26,R0
+00000253: 5EAE SUBI R26,0xEE
+00000254: 4FBF SBCI R27,0xFF
+00000255: 93ED ST X+,R30
+00000256: 93FD ST X+,R31
+00000257: 936D ST X+,R22
+00000258: 937C ST X,R23

+0000045B: 01FE MOVW R30,R28
+0000045C: 50E0 SUBI R30,0x00
+0000045D: 4FFE SBCI R31,0xFE
+0000045E: 9001 LD R0,Z+
+0000045F: 81F0 LDD R31,Z+0
+00000460: 2DE0 MOV R30,R0
+00000461: 85A6 LDD R26,Z+14 // загружается pd->FAT_base R25 R24 R27 R26
+00000462: 85B7 LDD R27,Z+15 00 00 02 00
+00000463: 8980 LDD R24,Z+16
+00000464: 8991 LDD R25,Z+17
+00000465: 9508 RET

+0000047E: DFCD RCALL PC-0x0032
+0000047F: 965A ADIW R26,0x1A
+00000480: D114 RCALL PC+0x0115
+00000481: 01DC MOVW R26,R24
+00000482: 9508 RET

+00000500: 0FEA ADD R30,R26
+00000501: 1FFB ADC R31,R27
+00000502: 1F68 ADC R22,R24
+00000503: 1F79 ADC R23,R25
+00000504: 9508 RET

+0000044C: 01DE MOVW R26,R28
+0000044D: 50A0 SUBI R26,0x00
+0000044E: 4FBE SBCI R27,0xFE
+0000044F: 900D LD R0,X+
+00000450: 91BC LD R27,X
+00000451: 2DA0 MOV R26,R0
+00000452: 9508 RET

+00000595: 91ED LD R30,X+ // загружается pd->FAT_size
+00000596: 91FD LD R31,X+
+00000597: 916D LD R22,X+
+00000598: 917C LD R23,X
+00000599: 9713 SBIW R26,0x03
+0000059A: 9508 RET

Че за фигня? Неужели не может нормально скомпилировать? Было у кого такое и как исправить?


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 38:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru