Avr studio Invalid Opcode

Jan Smrz jan.smrz@honeywell.com
Středa Duben 8 16:43:44 CEST 2009


A pro jaky procesor je to kompilovano? Je to opravdu ATMEGA16?

J.S.


Bear John Grills wrote:
> To mi uniklo.. Děkuju, do smyčky už to vletí .. ,ale stejnak mi tam 
> pořád vylítne ještě alespoň 10x invalid opcode.. nechápu to, mám to 
> ignorovat?
>
> Bear
>
> Jan Smrz napsal(a):
>   
>> Promennou counter modifikujete v preruseni, je ji tedy potreba definovat
>> jako volatile. Jinak je v danem kontextu odstranena prekladacem.
>>
>> J.S.
>>
>>
>> Bear John Grills wrote:
>>   
>>     
>>> Zdravím..
>>> Potrebuji vytvorit citac na 4 segmentovky.. zvladam, ale na jedne veci 
>>> jsem se zasekl.. Procesor atmega16 prostredi avr studio 4.15. Kód 
>>> programu následující (omlouvám se předem za dlouhý příspěvek).
>>> Poblém je vtom, jakmile odkrokuju program ke smičce, šipečka ukazující 
>>> na "aktivní" řádek zmizí. Mimojiné dostanu ihned po spuštění debuggeru 
>>> hlášky typu Invalit opcode. Nemůžu již dva dny přijít na to čím to je..
>>> Ví někdo? Nevím, jestli to může být špatně nastaveným stack-pointerem?
>>>
>>> Díky, Bear
>>>
>>> #include "avr/io.h"
>>> #include <avr/interrupt.h>
>>> #include <stdio.h>
>>>
>>> int counter; // pocitadlo
>>>
>>> int main() {
>>>    // nastaveni
>>>    // ------------
>>>    // spolecne anody
>>>
>>>    #define display_anodes_offset 3 // bitovy posun na portu
>>>    #define display_anodes_port PORTD
>>>    #define display_anodes_ddr DDRD
>>>
>>>    display_anodes_ddr = (1<<DDD3|1<<DDD4|1<<DDD5|1<<DDD6); // nastaveni 
>>> jako vystup
>>>    display_anodes_port = (1<<PD3|1<<PD4|1<<PD5|1<<PD6);
>>>
>>>    // data pro segmenty
>>>    // ------------
>>>    #define display_bus_port PORTA
>>>    #define display_bus_ddr DDRA
>>>
>>>    display_bus_ddr = 0xFF; // nastaveni jako vystup
>>>    display_bus_port = 0x00;
>>>
>>>    // nastaveni external interrupt
>>>    // ------------
>>>    // doporucuje se vynulovat ddr a port
>>>    // tady se to muze napsat rovnou bez pouziti #define
>>>
>>>    DDRD &=~(1<<DDD2);
>>>    PORTD &=~(1<<PD2);
>>>
>>>    //  externi preruseni je aktivni pri akci na pinu INT0
>>>    MCUCR |= 0x3; // nastaveni akce pri nabezne hrane signalu na INT0
>>>    GICR |= 1<<INT0; // pokud je v tomto registru nastaven 6. bit
>>>                     // + I je aktivni v SREG, externi preruseni je zapnuto.
>>>        // SMYCKA
>>>    // ------------      while(1) {
>>>        // pokusne
>>>        counter = counter + 1;
>>>        counter = counter + 2;
>>>    }
>>> }
>>>
>>> SIGNAL(SIG_INTERRUPT0) { // sem skoci program counter pri externim 
>>> preruseni
>>>    counter++;
>>> }
>>>
>>>
>>> Hlášky , když spustím debugger..
>>>
>>>
>>> Loaded plugin STK500
>>> Loaded plugin AVR GCC
>>> Loaded partfile: C:\Program Files\Atmel\AVR 
>>> Tools\PartDescriptionFiles\ATmega16.xml
>>> gcc plug-in: Output directory H:\!!AAPROJECTS\citac2\default\ does not 
>>> exist
>>> gcc plug-in: Created directory H:\!!AAPROJECTS\citac2\default\
>>> AVR Simulator: Please wait while configuring simulator...
>>> AVR Simulator: ATmega16 Configured OK
>>> AVR Simulator: Invalid opcode 0xffff at address 0x001c00
>>> Loaded objectfile: H:\!!AAPROJECTS\citac2\default\citac2.elf
>>> AVR Simulator: Invalid opcode 0xffff at address 0x001c00
>>> Loaded objectfile: H:\!!AAPROJECTS\citac2\default\citac2.elf
>>> AVR Simulator: Invalid opcode 0xffff at address 0x001c00
>>> Loaded objectfile: H:\!!AAPROJECTS\citac2\default\citac2.elf
>>> AVR Simulator: Invalid opcode 0xffff at address 0x001c00
>>> AVR Simulator: Invalid opcode 0xffff at address 0x001c00
>>> AVR Simulator: Invalid opcode 0xffff at address 0x001c00
>>> Loaded objectfile: H:\!!AAPROJECTS\citac2\default\citac2.elf
>>> AVR Simulator: Invalid opcode 0xffff at address 0x001c00
>>> AVR Simulator: Invalid opcode 0xffff at address 0x001c00
>>> Loaded objectfile: H:\!!AAPROJECTS\citac2\default\citac2.elf
>>> AVR Simulator: Invalid opcode 0xffff at address 0x001c00
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list@list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>>   
>>>     
>>>       
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list@list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>   
>>     
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>   




Další informace o konferenci Hw-list