Перейти к содержанию
    

d4rw1n1s7

Новичок
  • Постов

    3
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о d4rw1n1s7

  • День рождения 16.12.1989

Контакты

  • ICQ
    Array

Информация

  • Город
    Array
  1. AVR-GDB & SimulAVR

    Честно говорю, нажимал то, что Вы сказали, но почему-то не работало, мб не та фаза луны была :07: Тепрь вроде работает, но есть небольшой нюанс: в AVRStudio, к примеру когда мне нужно было отладить прерывание ADC, я менял значение ADCL и отладчик меня какг-бэ перекидывал на прерывание, мол значения получены, пора и прерывание выполнить. А теперь вот не пойму я, как сие воспроизвести в KontrollerLab ? PS: код слегка изменил: #include <avr/io.h> #include <avr/iom8.h> #include <avr/interrupt.h> int U = 1; float U2 = 0; ISR(ADC_vect){ U2 = U / 100; U2 = U2 / 5; U = U2; } int main(void){ DDRC = 0; ADMUX = 0; ADCSRA = 0x8F; sei(); while(1){ ADCSRA |= 0x40; } return 0; }
  2. AVR-GDB & SimulAVR

    а avarice умеет симулировать ядро? kontrollerlab пробывал, но там режим симуляции чего-то нету, а я ищу именно симуляцию ядер под линуксом!
  3. AVR-GDB & SimulAVR

    Дорогие форумчане, необходима ваша помощь! Решил перебраться окончательно под линух, поставил убунту 8.04, и для разработки поставил avr-gcc avr-gdb avr-dude и simulavr(соответственно со всеми зависимостями, благо аптитуд сам заботится об этом). прошивки собираются нормально, при компиляции и линковки никаких проблем не возникает, но вот отладка совсем не клеится :( ниже привожу всю последовательность шагов. #include <avr/io.h> #include <avr/iom8.h> #include <avr/interrupt.h> #define RAND_MAX 0x7fff int U = 1; float U2 = 0; ISR(ADC_vect){ U2 = U / 100; U2 = U2 / 5; U = U2; } int main(void){ DDRC = 0; ADMUX = 0; ADCSRA = 0x8F; sei(); while(1){ ADCSRA |= 0x40; } return 0; } $ avr-gcc -mmcu=atmega8 -g -Os -c main.c -o main.o $ avr-gcc main.o -mmcu=atmega8 -o project.out -Wl,-Map,project.map $ avr-objcopy -R .eeprom -O ihex project.out project.hex $ $ simulavr --device atmega8 --gdbserver project.hex & Simulating a atmega8 device. devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TWBR' at 0x0020 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TWSR' at 0x0021 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TWAR' at 0x0022 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TWDR' at 0x0023 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'ADCL' at 0x0024 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'ADCH' at 0x0025 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'ADCSRA' at 0x0026 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'ADMUX' at 0x0027 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'ACSR' at 0x0028 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'UBRRL' at 0x0029 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'UCSRB' at 0x002a devsupp.c:338: MESSAGE: TODO: attach IO Reg 'UCSRA' at 0x002b devsupp.c:338: MESSAGE: TODO: attach IO Reg 'UDR' at 0x002c devsupp.c:338: MESSAGE: TODO: attach IO Reg 'SPCR' at 0x002d devsupp.c:338: MESSAGE: TODO: attach IO Reg 'SPSR' at 0x002e devsupp.c:338: MESSAGE: TODO: attach IO Reg 'SPDR' at 0x002f devsupp.c:332: MESSAGE: attach: IO Reg 'PIND' at 0x0030: created devsupp.c:316: MESSAGE: attach: IO Reg 'DDRD' at 0x0031: ref = 0x0030 devsupp.c:316: MESSAGE: attach: IO Reg 'PORTD' at 0x0032: ref = 0x0030 devsupp.c:332: MESSAGE: attach: IO Reg 'PINC' at 0x0033: created devsupp.c:316: MESSAGE: attach: IO Reg 'DDRC' at 0x0034: ref = 0x0033 devsupp.c:316: MESSAGE: attach: IO Reg 'PORTC' at 0x0035: ref = 0x0033 devsupp.c:332: MESSAGE: attach: IO Reg 'PINB' at 0x0036: created devsupp.c:316: MESSAGE: attach: IO Reg 'DDRB' at 0x0037: ref = 0x0036 devsupp.c:316: MESSAGE: attach: IO Reg 'PORTB' at 0x0038: ref = 0x0036 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'UBRRH' at 0x0040 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'WDTCR' at 0x0041 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'ASSR' at 0x0042 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'OCR2' at 0x0043 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TCNT2' at 0x0044 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TCCR2' at 0x0045 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'ICR1L' at 0x0046 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'ICR1H' at 0x0047 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'OCR1BL' at 0x0048 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'OCR1BH' at 0x0049 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'OCR1AL' at 0x004a devsupp.c:338: MESSAGE: TODO: attach IO Reg 'OCR1AH' at 0x004b devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TCNT1L' at 0x004c devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TCNT1H' at 0x004d devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TCCR1B' at 0x004e devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TCCR1A' at 0x004f devsupp.c:338: MESSAGE: TODO: attach IO Reg 'SFIOR' at 0x0050 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'OSCCAL' at 0x0051 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TCNT0' at 0x0052 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TCCR0' at 0x0053 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'MCUCSR' at 0x0054 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'MCUCR' at 0x0055 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TWCR' at 0x0056 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'SPMCR' at 0x0057 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TIFR' at 0x0058 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'TIMSK' at 0x0059 devsupp.c:338: MESSAGE: TODO: attach IO Reg 'GIFR' at 0x005a devsupp.c:338: MESSAGE: TODO: attach IO Reg 'GICR' at 0x005b devsupp.c:332: MESSAGE: attach: IO Reg 'SPL' at 0x005d: created devsupp.c:316: MESSAGE: attach: IO Reg 'SPH' at 0x005e: ref = 0x005d devsupp.c:332: MESSAGE: attach: IO Reg 'SREG' at 0x005f: created avrcore.c:475: MESSAGE: attach: Internal SRAM from 0x0060 to 0x045f decoder.c:3875: MESSAGE: generating opcode lookup_table main.c:415: MESSAGE: Simulating clock frequency of 8000000 Hz Waiting on port 1212 for gdb client to connect... [1] 28517 $ avr-gdbtui --command=project.gdb Connection opened by host 127.0.0.1, port -17752. decoder.c:737: MESSAGE: BREAK POINT: PC = 0x00000073: clock = 2451 Содержание project.gdb file project.out target remote localhost:1212 load break main continue В деббагере начинаю шагать по коду командой step, после выполнения присваивания регистрам ADMUX и ADCSRA значений, сервер SimulAVR выдает вот такие сообщения memory.c:259: WARNING: **** Attempt to write invalid io reg: ADMUX at 0x0027 memory.c:259: WARNING: **** Attempt to write invalid io reg: ADCSRA at 0x0026 У меня два вопроса: 1) Что это означает и почему это ошибка вылезает? 2) Как его заставить вручную менять значения ADCL и ADCH, чтобы отдебажить работу прерывания? Заранее благодарен, и надеюсь на Вашу помощь!
×
×
  • Создать...