aboutsummaryrefslogtreecommitdiff
= Build

Needs a cross GCC ARM tool chain supporting cortex-m3.  Since
-ffreestanding is used, any GCC should be usable, regardless of the
target OS.

Debian users can install

apt-get install gcc-arm-none-eabi gdb-arm-none-eabi

The gcc-arm-linux-gnueabihf packages will also work.

If your compiler isn't in /usr/bin, then specify PREFIX=/where/it/is to Make.

= Run tests

The 'runtests.sh' script takes two optional arguments: the first is the
QEMU binary to use (default "qemu-system-arm") and the second is the
PREFIX to pass to make, if any.

The tests run by runtests.sh are:

test1-kern.bin:  basic load test
test9-kern.bin:  check initial register states
test10-kern.bin: check register exception handling register states
test4-kern.bin:  handling of external (NVIC) exceptions
test5-kern.bin:  thread mode unprivileged and process stack handling
test13-kern.bin: UsageFaults
test3-kern.bin:  exception masking and escalation
test12-kern.bin: invalid exception table entry (not Thumb mode)
test7-kern.bin:  exception return integrity checks
test14-kern.bin: bitbanding
test8-kern.bin:  test MPU
test11-kern.bin: various access fault handling and recovery

Tests which aren't currently run:

test6-kern.bin:  unrecoverable exception

These are not run by runtests.sh because either:
 (1) they haven't been updated to use the TAP test output format
 (2) they don't yet pass on QEMU

You can hand-run a test with the command
 qemu-system-arm -no-reboot -M lm3s6965evb -m 16 -serial stdio -display none -net nic -net user,restrict=on -d guest_errors,unimp -kernel test-whatever-kern.bin