Hi there,
I tried to convert a Project from the AVR32 Studio to the AVR Studio 5.
After several fails, I broke down the project step by step till there are only some commands to drive a Led.
After that failed too, I started all over from scratch, using the EVK1100 and the Dragon.
The disassembly during debugging looks like:
Code:
#define BIT(n) (1<<(n))
#define Led0 BIT(27)
#define Led1 BIT(28)
AVR32_GPIO.port[1].oders = Led0 | Led1;
80000088 mov R8, -61440
8000008C movhi R9, 0x1800 ********
80000090 st.w R8[324], R9
AVR32_GPIO.port[1].gpers = Led0 | Led1;
80000094 st.w R8[260], R9
AVR32_GPIO.port[1].ovrc = Led0;
80000098 movhi R9, 0x0800 **********
8000009C st.w R8[344], R9
AVR32_GPIO.port[1].ovrs = Led1;
800000A0 movhi R9, 0x1000 **********
800000A4 st.w R8[340], R9
800000A8 rjmp 0x800000a8
During single-stepping the lines marked with asterisks cause a jump to adress 0x80000220:
Code:
80000218 rjmp 0x80000218
8000021A add R0, R0
8000021C rjmp 0x8000021c
8000021E add R0, R0
80000220 rjmp 0x80000220 <<<<<<<<<<<
80000222 add R0, R0
80000224 rjmp 0x80000224
80000226 add R0, R0
The file exception.S shows the following (included through ASF):
Code:
// EVBA must be aligned with a power of two strictly greater than the EVBA-
// relative offset of the last vector.
.balign 0x200
// Export symbol.
.global _evba
.type _evba, @function
_evba:
[snip]
.org 0x020
// Illegal Opcode.
_handle_Illegal_Opcode:
rjmp $
It looks like the Toolchain generates wrong code for the 32UC3A0512.
Any suggestions?
Greetings, Lunchen. |