This is a simple exercise designed to get you started on L4. It contains very detailed instructions, together with the existing source code and the L4 manual you should have no problem doing it.
Most of the 9242 binaries (eg. cross compilers) are in ~disy/crossdev/$ARCH. You can add this to your path with:
~ % arm5xdev=gcc-3.4.5-glibc-2.3.5/armv5b-softfloat-linux ~ % export PATH=$PATH:/home/disy/crossdev/$ARCH/$arm5xdev/bin ~ % export PATH=$PATH:/home/disy/bin
If you are lazy you can just use the 9242 command for the cs9242 shell:
~ % 9242 newclass starting new subshell for class COMP9242... ~ % armv5b-softfloat-linux-ld armv5b-softfloat-linux-ld: no input files
Your minicom should default to 115200, 8N1, no hardware flow control. If it doesn't then you will have problems talking to your slug.
tar xvjf aos-2006.tbz
cd aos-2006
Booting your NSLU2 for the first time is easy:
We have developed a few tools to speed the development cycle along. The makefile can copy the sos operating system, known as a bootimage to your tftp directory and reset the slug. Below is a typical development cycle, assuming the path changes to your login script:
The example skeleton operating system includes an application
tty_test
which starts up, prints out its thread id, and then
goes into a loop.
The example includes a printf
implementation that outputs
data to L4's debug console. In fact it uses the L4 debug API
L4_KDB_PrintChar
. This function should only be used for internal
SOS debugging, not as a console for applications, so, your
task is to modify the sos_write
function to send data across
the network to your netcat(nc
) console.
The second part of milestone zero is to find a partner for the rest of the project. The project is to be completed, in pairs, unless prior permission has been obtained from the LiC.
sos/main.c
and the code in the tty_test
application.tty_send_string
(or similar) in
ttyout.c
.syscall_loop
in main.c
to recognise your new protocol, and print out a debug message when you
receive one of these messages.tty_test.c
so that it tests your
tty_send_string
function.tty_test
's output now goes to
the netcat console, not the console debugger.You will need to demonstrate user applications printing to the 2nd console via libserial, running on the slug hardware to the tutor during the demonstration period. You should be prepared to show your tutor which files you modified in your solution, and explain any design decisions you made. Your tutor will be particularly interested in the details of your IPC interface with different size blocks of data etc.
You will let the tutor know who your partner is so that group accounts can be created for you.