![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:51 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
У тебя что=то не так.
Вот во что у меня твой код дизассемблировался:
-------------------- тут могла быть Ваша реклама... |
|||
|
||||
Guest |
|
|||
Unregistered |
А у меня так дизассемблируется.
АврСтудия последняя. IAR 411a, 30 дней еще не прошло. Формат hex intel standart. Вместо процедуры задержки один return. Прикольно. @00000000: _..X_HUGE_HEAP_SIZE +00000000: 940C0035 JMP 0x00000035 Jump +00000002: 9518 RETI Interrupt return +00000003: 9518 RETI Interrupt return +00000004: 9518 RETI Interrupt return +00000005: 9518 RETI Interrupt return +00000006: 9518 RETI Interrupt return +00000007: 9518 RETI Interrupt return @00000008: _..X_HEAP_SIZE +00000008: 9518 RETI Interrupt return +00000009: 9518 RETI Interrupt return +0000000A: 9518 RETI Interrupt return +0000000B: 9518 RETI Interrupt return +0000000C: 9518 RETI Interrupt return +0000000D: 9518 RETI Interrupt return +0000000E: 9518 RETI Interrupt return +0000000F: 9518 RETI Interrupt return @00000010: _..X_RSTACK_SIZE +00000010: 9518 RETI Interrupt return +00000011: 9518 RETI Interrupt return +00000012: 9518 RETI Interrupt return +00000013: 9518 RETI Interrupt return +00000014: 9518 RETI Interrupt return +00000015: 9518 RETI Interrupt return +00000016: 9518 RETI Interrupt return +00000017: 9518 RETI Interrupt return +00000018: 9518 RETI Interrupt return +00000019: 9518 RETI Interrupt return +0000001A: 9518 RETI Interrupt return +0000001B: 9518 RETI Interrupt return +0000001C: 9518 RETI Interrupt return +0000001D: 9518 RETI Interrupt return +0000001E: 9518 RETI Interrupt return +0000001F: 9518 RETI Interrupt return +00000020: 9518 RETI Interrupt return +00000021: 9518 RETI Interrupt return +00000022: 9518 RETI Interrupt return +00000023: 9518 RETI Interrupt return +00000024: 9518 RETI Interrupt return +00000025: 9518 RETI Interrupt return +00000026: 9518 RETI Interrupt return +00000027: 9518 RETI Interrupt return +00000028: 9518 RETI Interrupt return +00000029: 9518 RETI Interrupt return @0000002A: _..X_FLASH_BASE ---- d:\temp\prj\main.c ----------------------------------------------------------------- 8: } +0000002A: 9508 RET Subroutine return @0000002B: main 11: DDRA = 0x01; +0000002B: E001 LDI R16,0x01 Load immediate +0000002C: BB0A OUT 0x1A,R16 Out to I/O location 14: PORTA|= (1<<0); // 1 на PA.0 +0000002D: 9AD8 SBI 0x1B,0 Set bit in I/O register 15: delay(); +0000002E: DFFB RCALL PC-0x0004 Relative call subroutine 16: PORTA&=~(1<<0); // 0 на PA.0 +0000002F: 98D8 CBI 0x1B,0 Clear bit in I/O register @00000030: _..X_RSTACK_BASE 17: delay(); +00000030: DFF9 RCALL PC-0x0006 Relative call subroutine +00000031: CFFB RJMP PC-0x0004 Relative jump @00000032: ?C_FUNCALL ---- No Source ------------------------------------------------------------------------------------ +00000032: 0000 NOP No operation @00000033: __exit +00000033: 9588 SLEEP Sleep +00000034: CFFE RJMP PC-0x0001 Relative jump @00000035: ?C_STARTUP +00000035: E90F LDI R16,0x9F Load immediate +00000036: BF0D OUT 0x3D,R16 Out to I/O location +00000037: E000 LDI R16,0x00 Load immediate +00000038: BF0E OUT 0x3E,R16 Out to I/O location +00000039: E8C0 LDI R28,0x80 Load immediate +0000003A: E0D0 LDI R29,0x00 Load immediate @0000003B: ?call_low_level_init +0000003B: 940E0043 CALL 0x00000043 Call subroutine @0000003D: ?cstartup_call_main +0000003D: 940E002B CALL 0x0000002B Call subroutine +0000003F: 940E0000 CALL 0x00000000 Call subroutine +00000041: 940C0032 JMP 0x00000032 Jump @00000043: __low_level_init +00000043: E001 LDI R16,0x01 Load immediate +00000044: 9508 RET |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Нетрудно заметить что код правильный и прыгает на STARTUP, а затем на main (35ый адрес).
СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:52 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Всегда при отладке должен быть none, т.к. в противном случае компилятор начинает принимать такие решения, которых вы от него не требовали, а иногда работать нестабильно.
Я вообще стараюсь не использовать оптимизацию, а стараться написать с предсказанием того во что это откомпилируется. СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:51 |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
А он до сих пор не так работает как ты хочешь? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Он работает.
СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
Ну тогда ясно.
![]() Я задержку кстати через прерывания делал, а потом по простому
И не надо говорить, что это бесконечный цикл ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Гость_Calypso |
|
|||
Unregistered |
Ребята. IAR - это кака. Не хочу навязывать свое мнение, конечно.
Юзайте GNU, юзайте CodeVision. |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Обоснуй...
СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
Pluto5C |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.9.2005 Репутация: нет Всего: нет |
Обосновываю. Столкнувшись с проблемой разработки ПО, так или иначе приходится выбирать - на чем писать. Я работал с IAR для PIC и для AVR. Причем, версии пробовал разные и для AVR, и для PIC. Что не понравилось, так это очень криво реализованная оптимизация. Так, даже при выключенной опт. программа функционировала некорректно. Доходило до того, что в отладчике я не находил ассемблерных инструкций, соответствующих конкретному оператору на C: то есть он просто самовольно выбрасывает куски кода и даже не на максимальном уровне оптимизации. Если есть желание бороться с компилятором, а не заниматься написанием программы - выбирайте IAR. Тем не менее наш главный инженер пишет именно на IAR для AVR. Тратит уйму времени на отладку ПО, ибо JTAG не имеем. Просто предлагаю начинающим использовать CodeVisionAVR. Из минусов можно отметить то, что "wizard" не заставляет людей еще неопытных думать. Все делает за них. В CodeVision я написал довольно много программ. Даже сравнивать не могу с IAR. Очень хорошо зарекомендовала себя среда WinAVR. Настоятельно рекомендую. Все что основано на GNU - работает практически безупречно. Что касается PIC-контроллеров. С IAR для PIC проблем гораздо меньше. Если не устроит, попробуйте HT-PIC. Отличный компилятор, хотя тоже имеет свои заморочки. Ну а для MSP430 - выриантов не вижу - IAR ))) Есть еще один момент. Если вам приходится работать, к примеру, с AVR, PIC, MSP430, очень хорошо бы юзать одну среду разработки как IAR. Геморойно, но зато все одинаково. |
|||
|
||||
ManiaK |
|
|||
![]() Homo Sapience ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1145 Регистрация: 3.8.2004 Где: ИУ5-93 Репутация: 2 Всего: 29 |
Pluto5C спасибо за информацию!..
|
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Pluto5C
Ну что тут скажешь... Борьба с компилятором вместо разработки это грубовато, но компилятор меня устраивает полностью, он схватывает моменты которые другие компиляторы не могут нормально отработать (например наследование классов ![]() И еще, компилятор весьма грамотный и не буде пихать не нужный код (например инициализацию переменных которым через 3 строчки после инициализации опять присваивают уже новые значения), этот пример я лично показывал одному из своих подчиненных который не мог понять куда делся ассемблерный кусок. Скажу так: мне ИАР нравится даже больше, чем Кейл. ![]() Оптимизацией не пользуюсь, стараюсь сразу все сделать грамотно (классы не в счет, как и говорил - лень было думать, зато крупный проект был сделан за считанные дни ![]() И кстати, ИАР для АВР поддерживает ЭМУЛЯТОР JTAG (правда пока только через COM порт, но этого вполне достаточно). А если возникают проблемы то всегда есть URBOF8 и AVR-Studio которая прекрасно отлаживает Си++ проекты как с симулятором, так и со всеми поддерживаемыми эмуляторами. СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |