You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Anton Lydike bb13cbeca5 a lot of cleanup, added pmp 3 years ago
..
.gitignore added threads.h header file for example program 3 years ago
Makefile a lot of cleanup, added pmp 3 years ago
README.md made example spawn program exit after child 3 years ago
simple.c uncrustified example programs 3 years ago
spawn.c a lot of cleanup, added pmp 3 years ago
threads.c a lot of cleanup, added pmp 3 years ago
threads.h a lot of cleanup, added pmp 3 years ago

README.md

EMBARK example programs

Note that these programs are of poor quality.

  • simple.c does some arithmetic in a loop, occasionally prints something rather random (the sequence goes 90,90,90,2386,2386,ae86,520c,1cbdc,1cbde...)
  • spawn.c this thing spawn a new thread and exits when the thread overwrites a value.

Compiling

The important thing when compiling user binaries are the following:

  • -mcmodel=medany makes all address loads pc-relative. This allows for relocating binaries without much effort. This only works, if the addresses are larger than signed 12 bit number, so make sure you programs are located far enough into memory. (the default linker script takes care of that)
  • -T ../linker.ld use the kernel linker script. This packs everything nice and close and sets the __global_pointer$ etc up.

If you don't want to worry, use the makefile make all.