Mon 05 Oct 2015 01:40:00 PM UTC, comment #1:
Problem is not reproducible. Tested with small c testcode as below with following instruction:
simulavr -d atmega1284 -f master.o --trace=/dev/stdout
results in:
master.o 0x0600: __do_copy_data LDI R17, 0x01
master.o 0x0602: __do_copy_data+0x1 LDI R26, 0x00
master.o 0x0604: __do_copy_data+0x2 LDI R27, 0x01
master.o 0x0606: __do_copy_data+0x3 LDI R30, 0x46
master.o 0x0608: __do_copy_data+0x4 LDI R31, 0x39
master.o 0x060a: __do_copy_data+0x5 LDI R16, 0x00
master.o 0x060c: __do_copy_data+0x6 OUT 0x3b, R16
master.o 0x060e: __do_copy_data+0x7 RJMP 614
master.o 0x060e: __do_copy_data+0x7 CPU-waitstate
master.o 0x0614: __do_copy_data+0xa CPI R26, 0x12 SREG=[--HS-N-C]
master.o 0x0616: __do_copy_data+0xb CPC R27, R17 SREG=[--HS-N-C]
master.o 0x0618: __do_copy_data+0xc BRNE ->0xfff6 __do_copy_data+0x8
master.o 0x0618: __do_copy_data+0xc CPU-waitstate
master.o 0x0610: __do_copy_data+0x8 ELPM R0, Z+ Flash[0x3946]
master.o 0x0610: __do_copy_data+0x8 CPU-waitstate
master.o 0x0610: __do_copy_data+0x8 CPU-waitstate
master.o 0x0612: __do_copy_data+0x9 ST X+, R0
master.o 0x0612: __do_copy_data+0x9 CPU-waitstate
master.o 0x0614: __do_copy_data+0xa CPI R26, 0x12 SREG=[--HS-N-C]
master.o 0x0616: __do_copy_data+0xb CPC R27, R17 SREG=[--HS-N-C]
master.o 0x0618: __do_copy_data+0xc BRNE ->0xfff6 __do_copy_data+0x8
elpm is handled as expected.
If the problem is still present, feel free to reopen the entry again.
Please use the actual git master! Any older version is not maintained!
|
Mon 05 Oct 2015 12:44:07 PM UTC, original submission:
Please find below a trace log and fragment of listing where simulation fails
----------- trace log --------------
sim.elf 0x01ee: __do_copy_data LDI R17, 0x07
sim.elf 0x01f0: __do_copy_data+0x1 LDI R26, 0x00
sim.elf 0x01f2: __do_copy_data+0x2 LDI R27, 0x01
sim.elf 0x01f4: __do_copy_data+0x3 LDI R30, 0xac
sim.elf 0x01f6: __do_copy_data+0x4 LDI R31, 0x43
sim.elf 0x01f8: __do_copy_data+0x5 LDI R16, 0x00
sim.elf 0x01fa: __do_copy_data+0x6 OUT 0x3b, R16
sim.elf 0x01fc: __do_copy_data+0x7 RJMP 202
sim.elf 0x01fc: __do_copy_data+0x7 CPU-waitstate
sim.elf 0x0202: __do_copy_data+0xa CPI R26, 0x90 SREG=[-------C]
sim.elf 0x0204: __do_copy_data+0xb CPC R27, R17 SREG=[--HS-N-C]
sim.elf 0x0206: __do_copy_data+0xc BRNE ->0xfff6 _ZN6cojson5utils7abuffer3getERc+0x4f
sim.elf 0x0206: __do_copy_data+0xc CPU-waitstate
sim.elf 0x01fe: __do_copy_data+0x8 Invalid Instruction!
----------- listing --------------
000001ee <__do_copy_data>:
1ee: 17 e0 ldi r17, 0x07 ; 7
1f0: a0 e0 ldi r26, 0x00 ; 0
1f2: b1 e0 ldi r27, 0x01 ; 1
1f4: ec ea ldi r30, 0xAC ; 172
1f6: f3 e4 ldi r31, 0x43 ; 67
1f8: 00 e0 ldi r16, 0x00 ; 0
1fa: 0b bf out 0x3b, r16 ; 59
1fc: 02 c0 rjmp .+4 ; 0x202 <__do_copy_data+0x14>
1fe: 07 90 elpm r0, Z+
200: 0d 92 st X+, r0
202: a0 39 cpi r26, 0x90 ; 144
204: b1 07 cpc r27, r17
206: d9 f7 brne .-10 ; 0x1fe <__do_copy_data+0x10>
|