Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; 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
Че за фигня? Неужели не может нормально скомпилировать? Было у кого такое и как исправить?
Составить ответ | Вернуться на конференцию
Ответы
- MOVW R24,R26 лишнее. Попробуйте CodeVisionAVR 1.25.2. Напишите письмо Гайдуку. Можно по русски. Он исправит. Только врятли он будет разбитаться с Вашей программой. Создайте новую, максимально короткую, но с таким-же глюком. И еще, если памяти достаточно, задайте максимальную оптимизацию по скорости - меньше будет этих SUBOPT_0x... — leon (24.03.2008 11:19:38 82.207.118.64, пустое)
- Но все равно спасибо за помощь. — PREMIER (24.03.2008 11:51:42 195.98.85.251, пустое)
- Оптимизация по скорости не прокатывает. (( Тоже самое — PREMIER (24.03.2008 11:49:35 195.98.85.251, пустое)
- Пардон CodeVisionAVR 1.25.9 — leon (24.03.2008 11:20:32 82.207.118.64, пустое)
- А таблетку не подскажете где взять? — PREMIER (24.03.2008 11:44:37 195.98.85.251, пустое)
- Ссылочки нет но существует для CodeVisionAVR 1.25.8 помоиму. Мне лицензию Гайдук подарил. Проверте именно этот глюк на свежей демке. — leon (24.03.2008 12:53:12 82.207.118.64, пустое)
- В 1,25,9 другие глюки. — PREMIER (24.03.2008 13:51:18 195.98.85.251, 363 байт)
- У меня с этим примером все ОК. Так что едиственный вывод, что вам надо профессию менять в силу полной непригодности — Elektronik (24.03.2008 14:53:58 194.85.99.225, пустое)
- Заработало! Все удалил, реестр почистил, новую лицензию сгенерил и заработало. 1,25,9 Вроде даже нормально — PREMIER (25.03.2008 12:23:59 195.98.85.251, пустое)
- Вот кусок на кот он ругается — PREMIER (25.03.2008 08:43:10 195.98.85.251, 473 байт)
- А это не моя профессия, это мое хобби. )) Но причем тут я, В программе на С ошибок нет, ошибки появляются в асме. Какие у вас настройки? — PREMIER (25.03.2008 08:13:4 195.98.85.251, пустое)
- Кто-нибудь подскажет как сделать так, чтобы CVAVR правильно скомпилировал программу? — PREMIER (24.03.2008 11:14:19 195.98.85.251, пустое)
- Еще, из вопроса не понятны типы полей структуры. — leon (24.03.2008 09:41:18 82.207.118.64, пустое)
- Ответ: — PREMIER (24.03.2008 09:54:15 195.98.85.251, 48 байт)
- Представте лучше асм файл, который генерирует CV. Там могут быть имена и есть коментарии с исходным кодом. Чтобы осталось форматирование добавляйте хотябы в начале <pre> — leon (24.03.2008 09:30:29 82.207.118.64, пустое)
- asm файл — PREMIER (24.03.2008 09:56:20 195.98.85.251, 56893 байт)