Avr Studio 3.56 - 4.11 - dlaczego tak ?

Jun 22, 2005 10 Replies

Testujê co¶ takiego: __________________ .include "2313def.inc"



.org 0 rjmp poczatek .org 30



podprogram: nop ret



poczatek: nop rcall podprogram nop rjmp poczatek __________________ W AVR Studio 3.56 dzia³a zgodnie z oczekiwaniami. W AVR Studio 4.11 po wykonaniu "ret" nastêpuje skok na sam pocz±tek (do org 0). W 3.56 po "ret" nastêpuje skok do linii poni¿ej "rcall". Dlaczego tak jest ? Co robiê ¼le ?


wszystk odobrze, tylko mozliwe ze on sobie to zoptymalizowal.,..po co ma niepotrzebnei raz skakac, skoro w rezultat bedzie ten sam? sorobuj wylaczyc optymalizacje.

Niestety, nie znalaz³em takiej mo¿liwo¶ci. Ale przecie¿ to jest asembler. Po co optymalizacja w asemblerze ?

Zapomnia³e¶ chyba ustawiæ wska¼nik stosu.

Pawe³

"Pawe³" napisa³(a) w wiadomo¶ci: ...

A jak to zrobiæ ? I do czego to s³u¿y ?

Na pocz±tku programu wpisz:

ldi r16,high(RAMEND) out SPH,r16 ldi r16,low(RAMEND) out SPL,r16

Pawe³

Niestety, przy "out SPH,r16" asembler, w czasie kompilacji, zg³asza b³±d: Undefined variable referenced

W 2313def.inc te¿ nie ma SPH. Podobnie w tn2313def.inc

Bo ten proc ma tylko 128 bajtow RAM i nie ma SPH. Zajrzyj czasami do datasheeta;)

Ostatnio codziennie zagl±dam. Ale inaczej czyta siê takie dokumenty na moim poziomie zaawansowania a inaczej na Twoim. Zreszt± w dokumentacji AT90S2313 nie ma nic o SPH. Dziêkujê za odpowiedzi.

Proste i skuteczne :

--------------------------------------------------------------------- ldi DataAcc, low(RAMEND) out SPL, DataAcc ; setup stack .ifdef SPH ldi DataAcc, high(RAMEND) out SPH, DataAcc .endif

---------------------------------------------------------------------

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required