|
From: | Albrecht Frenzel |
Subject: | Re: [Simulavr-devel] simulavr is very unreliable executing a bootloader |
Date: | Fri, 5 Feb 2016 13:01:58 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 |
A real controller doesn't "terminate" if it runs into ffff, so somulavr currently doesn't behave like real hardware.can someone explain what is the intention to have behave different in simulation then in real hardware?
On the other hand, simulavr has an additional UART for debug output - that's also not, what real hardware does, but very useful.
So why not use the undefined instruction ffff as a debug aid, since it mostly points to serious problems? This would give a chance to inspect the machine state.
Silently terminating simulavr on ffff is the worst solution. Albrecht On 05.02.2016 12:34, Klaus Rudolph wrote:
Hi, can someone explain what is the intention to have behave different in simulation then in real hardware? What is the intended use case of an illegal instruction or simulate undefined behavior? I can't follow at this point. I can only see my use case in the moment which is as follows: Write, compile, link program Verify & Validate on simulation use simulation as regression tool for code maintenance If I see that my code runs into a empty flash region, I will stop immediately with debugging, I simply must fix my code. Maybe you have another situation or you plan very different things. So please give me an idea what is the scenario behind that idea to run over illegal instructions. >From simulation side is very easy to exchange any illegal instruction to nop, but is that the intention and why? If we plan to do this change we must support the current implementation. Maybe a command line switch to extend the instruction set for "undefined" instruction for personal use? Changing the default behavior is not acceptable for my use cases. Regards KlausGesendet: Freitag, 05. Februar 2016 um 10:57 Uhr Von: "Albrecht Frenzel" <address@hidden> An: "Joerg Wunsch" <address@hidden>, address@hidden Betreff: Re: [Simulavr-devel] simulavr is very unreliable executing a bootloaderAs the AVR (undocumentedly) treats opcode ffff as a NOP, I think the simulator could even just continue.That's a good idea, but why not make it configurable: in normal mode it is NOP, but on demand ffff can act as BREAK? Albrecht On 05.02.2016 08:02, Joerg Wunsch wrote:As Albrecht Frenzel wrote:The strange thing: sometimes pc gets loaded with the correct pc 0x7e00 and it is possible to step through the code using the same .elf-file.You can always set the current PC address in GDB before proceeding: set $pc = 0x7e00Regarding Illegal opcode 'ff ff': wouldn't it be better to simply stop simulavr instead of terminating? That would give a chance to investigate.As the AVR (undocumentedly) treats opcode ffff as a NOP, I think the simulator could even just continue. There are possible scenarios where this feature could be used deliberately, e. g. by including a patch area in the code that is simply run through as long as it is ffff but which can be written later on to include additional features._______________________________________________ Simulavr-devel mailing list address@hidden https://lists.nongnu.org/mailman/listinfo/simulavr-devel
[Prev in Thread] | Current Thread | [Next in Thread] |