Sida 5 av 5

Re: AVR-studio 5 beta

Postat: 3 maj 2011, 17:08:04
av inseyn
Kollade just deras hemsida och det har kommit en beta 2:a av AVR studio 5. Den ska klara stk500.

http://www.atmel.com/dyn/resources/prod ... e_note.pdf

Laddar ner nu:)

Re: AVR-studio 5 beta

Postat: 3 maj 2011, 21:01:43
av jesse
Jag rapporterade nyligen en bugg till Atmel i första betaversionen. De kände inte till buggen och är mycket intresserade av mer info. Så jag ska skicka en del data till dem. Det var en grej i deras simulator.

Re: AVR-studio 5 beta

Postat: 13 maj 2011, 09:31:11
av Kongo
Kan man ha 4:an och 5:an installerade parallellt eller uppdaterar installationsprogramvaran 4:an till 5:an?

Re: AVR-studio 5 beta

Postat: 13 maj 2011, 10:28:17
av thepirateboy
Det går bra att köra parallellt, det blir två olika installationer.

Re: AVR-studio 5 beta

Postat: 13 maj 2011, 10:38:54
av jesse
4:an kan ligga vid sidan om. De påverkar inte varandra.


Angående buggen i AVRStudio5 beta (första betaversionen):

Utvecklarna i Norge kunde inte upprepa felet med sitt system, trots att de fick hela mitt projekt att testa på.
Så här ser buggen ut:

I watch-fönstret vid debugging kan man visa arrrayer av struct-typer. Men i ett fall blev adresserigen fel i enskilda element i arrayen. Här är mitt exempel:

Kod: Markera allt

struct loggtyp {
	uint8_t intervall;	// intervall i sekunder. 0 = inaktiverad
	uint16_t loggdata;	// typ av data som ska loggas
	uint8_t counter;	// räknar ner sekunder
	uint8_t flagga;		// flagga är satt om timer nått noll.
};

struct loggtyp           logg[ANTAL_LOGGAR];

void setDefaultLogg(void) {
	clear_all_loggs();
	logg[1].intervall = 0x10;
	logg[1].counter   = 0x20;
	logg[1].loggdata = 0xaabb;
}
och i watch ser man då att om adressen till @logg[0] = 0x6600 så blir adressen till logg[1] = 0x6601, @logg[2] = 0x6603 osv... dvs. helt fel! varje element är ju 5 bytes lång och det borde vara @logg[1] = 0x6605, @logg[2] = 0x660a osv...

Felet gör att data visas fel i watchfönstret. I exemplet ovan lägger jag t.ex. in 0x10 i logg[1].intervall vilket är detsamma som att lägga in 0x10 i byte 5 i arrayen. Men i watchfönstert visas detta som: (observera hur 0x10 förekommer överallt där adressen antas vara @6605)

Kod: Markera allt

logg[0]
	logg[0].intervall  = 0x00;        @6600
	logg[0].loggdata   = 0x0000;      @6601
	logg[0].counter    = 0x00;        @6603
	logg[0].flagga     = 0x00;        @6604
logg[1]
	logg[1].intervall  = 0x00;        @6601
	logg[1].loggdata   = 0x0000;      @6602
	logg[1].counter    = 0x00;        @6604
	logg[1].flagga     = 0x10;        @6605
logg[2]
	logg[2].intervall  = 0x00;        @6602
	logg[2].loggdata   = 0x0000;      @6603
	logg[2].counter    = 0x10;        @6605
	logg[2].flagga     = 0x00;        @6606
logg[3]
	logg[3].intervall  = 0x00;        @6603
	logg[3].loggdata   = 0x1000;      @6604
	logg[3].counter    = 0x00;        @6606
	logg[3].flagga     = 0x00;        @6607