Unicorn is great and I've received good help from this list previously. So
here I am again. :-)
I'm using Unicorn to emulate Cortex-M firmware. It's working very well;
only, the code depends on certain hardware-generated interrupts. Is it
possible to cause Unicorn to perform a hardware-triggered interrupt? In
particular, I need to trigger the Cortex-M's SysTick interrupt. Ideally,
the emulator would service the SysTick feature of the core itself, but I
don't mind having to do something externally to trigger any given interrupt.
I'm still poking around trying to figure it out myself, but I thought I'd
pose the question here as well. How can I exert control over hardware
interrupts with Unicorn? Since the Cortex-M holds all its NVIC registers
in the 0xE0000000 page, maybe I could externally write something into those
locations (as seen by Unicorn having mapped memory to that region).
As an aside, how does Unicorn fare when it comes to being thread-safe? Any
external solution to generating hardware interrupts would have to be in a
separate thread from the one blocked on uc_emu_start(..)..