Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.14.246.254] |
|
Страницы: (18) « Первая ... 14 15 [16] 17 18 все ( Перейти к последнему сообщению ) |
Сообщ.
#226
,
|
|
|
кто работал с IAR for AVR 3.20C, подскажите как там в дебагере заставить срабатывать прерывания от таймеров тогда когда им положено, а не прописывать постоянно какую-то абстрактную частоту их появления в Simulator/Interrupts
|
Сообщ.
#227
,
|
|
|
В IAR-е, вроде (давно не юзал), можно файлик сделать с таймингами прерываний и по нему отлаживаться.
|
Сообщ.
#228
,
|
|
|
По симуляции периферии вообще и прерываний в частности IAR EWAVR слабоват по сравнению с AVR Studio, ПМСМ. Это, похоже, единственный его недостаток.
|
Сообщ.
#229
,
|
|
|
Цитата По симуляции периферии вообще и прерываний в частности IAR EWAVR слабоват по сравнению с AVR Studio, ПМСМ. Это, похоже, единственный его недостаток. это точно, ты можешь сконвертить отладочный файл для AVR Studio и отлаживать там |
Сообщ.
#230
,
|
|
|
Ладно, спасибо,
буду писать в AVR studio, там тоже есть С (а так хотелось С++ ) |
Сообщ.
#231
,
|
|
|
Цитата Moneyiac @ Можешь откомпилировать в IAR, а отлаживать под AVR Studio. Правда будут ли под AVR Studio видны прелести C++ - не знаю. буду писать в AVR studio, там тоже есть С (а так хотелось С++ ) |
Сообщ.
#232
,
|
|
|
Драсте всем кто нибудь пытался програмить контроллер Segnetics с помощью IAR systems. Начал разбираться с этим компилятором возникла куча проблемм прежде всего с настройками. Если кто сталкивался помогите.
|
Сообщ.
#233
,
|
|
|
IAR systems, почему-то не знает об Segnetics абсолютно ни чего, наверное шифруются. И гугль о Segnetics-ах ни чего сказать не смог. Кинь ссылку на документацию или на сайт.
У тебя возникли проблемы с IAR systems или с настройками компилятора? Собственно в чем проблемы, может быть ты всетаки расскажешь, shtirlizzz |
Сообщ.
#234
,
|
|
|
Цитата MeG @ Он просто неправильно написал. Signetics http://www.signetics.com/product.html И гугль о Segnetics-ах ни чего сказать не смог. |
Сообщ.
#235
,
|
|
|
А в ClassBiosSMH не используется? И вообще, о таких ошибках без полных исходников можно долго гадать.
|
Сообщ.
#236
,
|
|
|
у кого есть сама эта программа(iar ewpic)??? пишите. как тока будет она я сразу вступю в дискуссию. а пока очень очень очень нужна
|
Сообщ.
#237
,
|
|
|
Всем привет! Вот, на старости лет лет решил освоить программирование микроконтроллеров...
Попробовал себя в AvrStudio на асме - вроде все нормально. Решил освоить и С. Полазив по интернету остановил свой выбор на IAR. Методом научного тыка вроде разобрался с настройками. Но в один прекрасный момент вылезла такая проблема. Суть в следующем: Изголяюсь с камнем ATtiny45, а конкретно с его USI под TWI. Все вроде бы нормально, все получается, а вот когда я захотел прикрутить к TWI прерывания вылезла непонятка. В симуляторе начали вылазить ошибки о выходе куда-то за пределы кода. Подозрение пало на инициализацию векторов. IAR вектора инициализирует двухбайтовыми командами. Смотрю в даташит по ATtiny45. Вижу следующее: 9.1 Interrupt Vectors in ATtiny25/45/85 The interrupt vectors of ATtiny25/45/85 are described in Table 9-1below. Table 9-1. Reset and Interrupt Vectors ========================================================================= Vector No. Program Address Source Interrupt Definition ========================================================================= 1 0x0000 RESET External Pin, Power-on Reset, Brown-out Reset, Watchdog Reset 2 0x0001 INT0 External Interrupt Request 0 3 0x0002 PCINT0 Pin Change Interrupt Request 0 4 0x0003 TIMER1_COMPA Timer/Counter1 Compare Match A 5 0x0004 TIMER1_OVF Timer/Counter1 Overflow 6 0x0005 TIMER0_OVF Timer/Counter0 Overflow 7 0x0006 EE_RDY EEPROM Ready 8 0x0007 ANA_COMP Analog Comparator 9 0x0008 ADC ADC Conversion Complete 10 0x0009 TIMER1_COMPB Timer/Counter1 Compare Match B 11 0x000A TIMER0_COMPA Timer/Counter0 Compare Match A 12 0x000B TIMER0_COMPB Timer/Counter0 Compare Match B 13 0x000C WDT Watchdog Time-out 14 0x000D USI_START USI START 15 0x000E USI_OVF USI Overflow If the program never enables an interrupt source, the Interrupt Vectors are not used, and regular program code can be placed at these locations. The most typical and general program setup for the Reset and Interrupt Vector Addresses in ATtiny25/45/85 is shown in the program example below. Как видно - везде выравнивание вроде как на байт. Смотрю в заголовочный файл IAR для ATtiny45 и вижу следующее: /* NB! vectors are specified as byte addresses */ #define RESET_vect (0x00) /* External Pin, Power-on Reset, Brown-out Reset, Watchdog Reset */ #define INT0_vect (0x02) /* External Interrupt Request 0 */ #define PCINT0_vect (0x04) /* Pin Change Interrupt Request 0 */ #define TIM1_COMPA_vect (0x06) /* Timer/Counter1 Compare Match A */ #define TIM1_OVF_vect (0x08) /* Timer/Counter1 Overflow */ #define TIM0_OVF_vect (0x0A) /* Timer/Counter0 Overflow */ #define EE_RDY_vect (0x0C) /* EEPROM Ready */ #define ANA_COMP_vect (0x0E) /* Analog Comparator */ #define ADC_vect (0x10) /* ADC Conversion Complete */ #define TIM1_COMPB_vect (0x12) /* Timer/Counter1 Compare Match B */ #define TIM0_COMPA_vect (0x14) /* Timer/Counter0 Compare Match A */ #define TIM0_COMPB_vect (0x16) /* Timer/Counter0 Compare Match B */ #define WDT_vect (0x18) /* Watchdog Time-out */ #define USI_START_vect (0x1A) /* USI START */ #define USI_OVF_vect (0x1C) /* USI Overflow */ Вижу выравнивание на слово. Начинаю тормозить... Лезу в инклуды асма AvrStudio - вижу следующее: ; ***** INTERRUPT VECTORS ************************************************ .equ INT0addr = 0x0001 ; External Interrupt 0 .equ PCI0addr = 0x0002 ; Pin change Interrupt Request 0 .equ OC1Aaddr = 0x0003 ; Timer/Counter1 Compare Match 1A .equ OVF1addr = 0x0004 ; Timer/Counter1 Overflow .equ OVF0addr = 0x0005 ; Timer/Counter0 Overflow .equ ERDYaddr = 0x0006 ; EEPROM Ready .equ ACIaddr = 0x0007 ; Analog comparator .equ ADCaddr = 0x0008 ; ADC Conversion ready .equ OC1Baddr = 0x0009 ; Timer/Counter1 Compare Match B .equ OC0Aaddr = 0x000a ; Timer/Counter0 Compare Match A .equ OC0Baddr = 0x000b ; Timer/Counter0 Compare Match B .equ WDTaddr = 0x000c ; Watchdog Time-out .equ USI_STARTaddr = 0x000d ; USI START .equ USI_OVFaddr = 0x000e ; USI Overflow Потихоньку начинаю офигевать... Решил посмотреть что видно в дизассемблере AvrStudio - увидел вот это: ---- Test_3.asm ----------------------------------------------------------------------------------- 47: rjmp RESET ; Reset Handler +00000000: C00E RJMP PC+0x000F Relative jump 48: reti ; rjmp EXT_INT0 ; IRQ0 Handler +00000001: 9518 RETI Interrupt return 49: reti ; rjmp PCINT0 ; PCINT0 Handler +00000002: 9518 RETI Interrupt return 50: reti ; rjmp TIM1_COMPA ; Timer1 CompareA Handler +00000003: 9518 RETI Interrupt return 51: reti ; rjmp TIM1_OVF ; Timer1 Overflow Handler +00000004: 9518 RETI Interrupt return 52: reti ; rjmp TIM0_OVF ; Timer0 Overflow Handler +00000005: 9518 RETI Interrupt return 53: reti ; rjmp EE_RDY ; EEPROM Ready Handler +00000006: 9518 RETI Interrupt return 54: reti ; rjmp ANA_COMP ; Analog Comparator Handler +00000007: 9518 RETI Interrupt return 55: reti ; rjmp ADC ; ADC Conversion Handler +00000008: 9518 RETI Interrupt return 56: reti ; rjmp TIM1_COMPB ; Timer1 CompareB Handler +00000009: 9518 RETI Interrupt return 57: reti ; rjmp TIM0_COMPA ; +0000000A: 9518 RETI Interrupt return 58: reti ; rjmp TIM0_COMPB ; +0000000B: 9518 RETI Interrupt return 59: reti ; rjmp WDT ; +0000000C: 9518 RETI Interrupt return 60: reti ; rjmp USI_START ; +0000000D: 9518 RETI Interrupt return 61: reti ; rjmp USI_OVF ; +0000000E: 9518 RETI Interrupt return @0000000F: RESET 73: RESET: ldi r16, low(RAMEND) ; Main program start +0000000F: E50F LDI R16,0x5F Load immediate 74: ldi r17, high(RAMEND); Tiny45/85 also has SPH +00000010: E011 LDI R17,0x01 Load immediate 75: out SPL, r16 ; Set Stack Pointer to top of RAM +00000011: BF0D OUT 0x3D,R16 Out to I/O location 76: out SPH, r17 ; Tiny45/85 als has SPH +00000012: BF1E OUT 0x3E,R17 Out to I/O location Каждая команда занимает слово, но адресация почему то идет как побайтная. Вот тут я приехал. Вот может кто нибудь прояснить эту ситуацию? А то у меня уже мозги кипят. ================================================================================ И еще вопрос. IAR не генерит код(кроме области векторов) если в опциях не подключена никакая библиотека. А мне надо заставить компилятор генерить код без подключения библиотек. Исходников стандартных библиотек в моем IAR нет, только скомпилированные. Можно ли как-то заставить IAR генерить код без подключения библиотек? Или может у кого-то есть эти исходники? Поделитесь плиз? Я догадываюсь, что исходники есть наверное в инсталяторе IAR, но как их вытянуть оттуда пока не знаю. Наверное нужна более дорогая лицензия. |
Сообщ.
#238
,
|
|
|
Цитата ir0407 @ Не на байт, а на слово. Память программ при переходах адресуется пословно, младший бит адреса не указывается в коде команды и подразумевается равным 0. Ну или, если смотреть с другой стороны - адрес является порядковым номером 16-битного слова. Особенность архитектуры AVR. Смотрю в даташит по ATtiny45. Вижу следующее: Как видно - везде выравнивание вроде как на байт. |
Сообщ.
#239
,
|
|
|
Спасибо. А в каком документе на сайте Atmel-a можно найти эту инфу об особенностях архитектуры. А то я что-то никак не могу ничего такого найти. Инфы столько, что глаза разбегаются.
|
Сообщ.
#240
,
|
|
|
Вот уж не помню.
|