Changeset
17996:e1c6fd64d735
by alex@thinkpad:
QEMU: various fixes regarding Thumb disassembly<br><br>Quirk: if CPU is in ARM mode, the disassembler looks at the Thumb bit of the requested address.<br>If CPU is in Thumb mode, the disassembler ignores the Thumb bit from the address, and always disassembles as Thumb.<br>This inconsistency is also present in latest QEMU from git. Why?<br><br>IDC scripts: comments containing disassembled Thumb code were updated (DIGIC 6/7/8 and 1300D).
|
 | contrib/qemu/eos/dbi/logging.c (diff) |
 | contrib/qemu/eos/eos_ml_helpers.c (diff) |
 | contrib/qemu/tests/1300D/calls-main.md5 (diff) |
 | contrib/qemu/tests/200D/calls-main.md5 (diff) |
 | contrib/qemu/tests/5D3eeko/calls-main.md5 (diff) |
 | contrib/qemu/tests/5D4/calls-main.md5 (diff) |
 | contrib/qemu/tests/5D4AE/calls-main.md5 (diff) |
 | contrib/qemu/tests/6D2/calls-main.md5 (diff) |
 | contrib/qemu/tests/750D/calls-main.md5 (diff) |
 | contrib/qemu/tests/760D/calls-main.md5 (diff) |
 | contrib/qemu/tests/77D/calls-main.md5 (diff) |
 | contrib/qemu/tests/7D2/calls-main.md5 (diff) |
 | contrib/qemu/tests/7D2S/calls-main.md5 (diff) |
 | contrib/qemu/tests/800D/calls-main.md5 (diff) |
 | contrib/qemu/tests/80D/calls-main.md5 (diff) |
Changeset
14013:ae4c89791395
by alex@thinkpad:
GDB scripts: removed NULL_STR definition from 5D4<br>(was breaking the tests; not required on this camera anyway)
|
 | contrib/qemu/scripts/5D4/debugmsg.gdb (diff) |
Changeset
14012:a4af6594437f
by alex@thinkpad:
QEMU logging: in icount mode, print instruction count for every single function call<br><br>Instruction count is printed when returning from the function.<br>Instructions executed by other tasks/interrupts (i.e. outside the tested function) are not included in the printed value.<br>This feature is very useful for optimizing code.<br>Example: -d debugmsg,calls -icount 5
|
 | contrib/qemu/eos/dbi/logging.c (diff) |
 | contrib/qemu/tests/run_tests.sh (diff) |
Changeset
14011:9049426c8cce
by alex@thinkpad:
QEMU logging: updated DryOS and VxWorks task switch handling<br><br>It was quite hard to pass the test suite, as there were lots of edge cases:<br><br>- context switch may happen either in a timer interrupt, or in a regular task (e.g. msleep, sempahores and so on)<br>- context switch is not atomic - it happens a few instructions (or function calls!) afterh updating the current task pointer<br>- until the registers are swapped for the new task, we are still on the stack of the previous task<br>- there may be dummy task switches (i.e. from one task to the same task)<br>- an interrupt can occur in the middle of a (non-atomic) context switch (!)<br>- VxWorks models do not even use a unique task ID (!)<br><br>Result: QEMU no longer crashes during logging tests!<br><br>Issue: these cameras do not appear to use an unique task ID. Workaround: assign our own task IDs.
|
 | contrib/qemu/eos/dbi/logging.c (diff) |
 | contrib/qemu/eos/eos.c (diff) |
 | contrib/qemu/tests/1000D/calls-main.md5 (diff) |
 | contrib/qemu/tests/100D/calls-main.md5 (diff) |
 | contrib/qemu/tests/1100D/calls-main.md5 (diff) |
 | contrib/qemu/tests/1200D/calls-main.md5 (diff) |
 | contrib/qemu/tests/1300D/calls-main.md5 (diff) |
 | contrib/qemu/tests/200D/calls-main.md5 (diff) |
 | contrib/qemu/tests/400D/calls-main.md5 (diff) |
 | contrib/qemu/tests/40D/calls-main.md5 (diff) |
 | contrib/qemu/tests/450D/calls-main.md5 (diff) |
 | contrib/qemu/tests/500D/calls-main.md5 (diff) |
 | contrib/qemu/tests/50D/calls-main.md5 (diff) |
 | contrib/qemu/tests/550D/calls-main.md5 (diff) |
 | contrib/qemu/tests/5D/calls-main.md5 (diff) |
 | contrib/qemu/tests/5D2/calls-main.md5 (diff) |
 | contrib/qemu/tests/5D3/calls-main.md5 (diff) |
 | contrib/qemu/tests/5D3eeko/calls-main.md5 (diff) |
 | contrib/qemu/tests/5D4/calls-main.md5 (diff) |
 | contrib/qemu/tests/5D4AE/calls-main.md5 (diff) |
 | contrib/qemu/tests/600D/calls-main.md5 (diff) |
 | contrib/qemu/tests/60D/calls-main.md5 (diff) |
 | contrib/qemu/tests/650D/calls-main.md5 (diff) |
 | contrib/qemu/tests/6D/calls-main.md5 (diff) |
 | contrib/qemu/tests/6D2/calls-main.md5 (diff) |
 | contrib/qemu/tests/700D/calls-main.md5 (diff) |
 | contrib/qemu/tests/70D/calls-main.md5 (diff) |
 | contrib/qemu/tests/750D/calls-main.md5 (diff) |
 | contrib/qemu/tests/760D/calls-main.md5 (diff) |
 | contrib/qemu/tests/77D/calls-main.md5 (diff) |
 | contrib/qemu/tests/7D2/calls-main.md5 (diff) |
 | contrib/qemu/tests/7D2S/calls-main.md5 (diff) |
 | contrib/qemu/tests/800D/calls-main.md5 (diff) |
 | contrib/qemu/tests/80D/calls-main.md5 (diff) |
 | contrib/qemu/tests/EOSM/calls-main.md5 (diff) |
 | contrib/qemu/tests/EOSM2/calls-main.md5 (diff) |
 | contrib/qemu/tests/run_tests.sh (diff) |
 | contrib/qemu/tests/test_callstack.py (diff) |
Changeset
14010:2db600ab6a08
by alex@thinkpad:
QEMU test suite: only use 2/3 of available CPU cores. It appears to improve the repeatability of results in some CPU- and IO-intensive tests.<br><br>In other words, don't believe the Hyper-Threading hype :)
|
 | contrib/qemu/tests/run_tests.sh (diff) |
|
 | contrib/qemu/eos/dbi/logging.c (diff) |
Changeset
14008:5619c64e5e66
by alex@thinkpad:
QEMU: refactored with eos_get_mem_w<br><br>Before: uint32_t x; cpu_physical_memory_read(addr, &x, 4)<br>After: uint32_t x = eos_get_mem_w(s, addr);<br><br>Also, minor cleanups to eos_get_current_task_* (not expected to make a difference)
|
 | contrib/qemu/eos/dbi/logging.c (diff) |
 | contrib/qemu/eos/dbi/memcheck.c (diff) |
 | contrib/qemu/eos/eos.c (diff) |