/home/fox/devboard-R_01# . init_env Prepending "/..../devboard-R2_01/tools/build/bin" to PATH. Prepending "/usr/local/cris/bin" to PATH. /home/fox/devboard-R_01# cd appsCreate a new directory with the same name of your application:
/home/fox/devboard-R_01/apps# mkdir helloworld /home/fox/devboard-R_01/apps/helloworld# cd helloworldEdit this source code and save it with the name helloworld.c:
#include "stdio.h" int main(void) { printf("Hello world !\n"); return 0; }Edit this file and save it with the name Makefile:
AXIS_USABLE_LIBS = UCLIBC GLIBC include $(AXIS_TOP_DIR)/tools/build/Rules.axis PROGS = helloworld all: $(PROGS) $(PROGS): $(PROGS).o $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ clean: rm -f $(PROGS) *.o core
If your program have to run on a FOX with glibc library (delivered by default with the FOX with Kernel 2.4.x and the present svn based SDK) type:
/home/fox/devboard-R_01/apps/helloworld# make cris-axis-linux-gnu make[1]: Entering directory `/home/devboard-R2_01/apps/helloworld' make[1]: Leaving directory `/home/devboard-R2_01/apps/helloworld'If your program have to run on a FOX with uClibc library type (delivered by default with some FOXes with Kernel 2.6.x or if you chose uclibc as main "C" library in the "make menuconfig" SDK parameter selection phase) type:
/home/fox/devboard-R_01/apps/helloworld# make cris-axis-linux-gnuuclibc make[1]: Entering directory `/home/devboard-R2_01/apps/helloworld' make[1]: Leaving directory `/home/devboard-R2_01/apps/helloworld'Inside the directory helloworld will be created a hidden file .target-makefrag that has instructions for the make process on which general library and environment to consider during the compilation phase.
Now type:
/home/fox/devboard-R_01/apps/helloworld# make gcc-cris -isystem /home/devboard-R2_01/target/cris-axis-linux-gnu/include -mlinux -mno-mul-bug-workaround -Wall -Wshadow -O2 -g -c -o helloworld.o helloworld.c gcc-cris -isystem /home/devboard-R2_01/target/cris-axis-linux-gnu/include -mlinux -mno-mul-bug-workaround -L/home/devboard-R2_01/target/cris-axis-linux-gnu/lib -Wl,-rpath-link,/home/devboard-R2_01/target/cris-axis-linux-gnu/lib helloworld.o -o helloworldIf everythings goes well you'll have the executable file helloworld ready to run on your FOX board:
/home/fox/devboard-R_01/apps/helloworld# ls -l total 40 -rwxr-xr-x 1 root root 17684 Oct 26 17:45 helloworld -rw-r--r-- 1 root root 80 Mar 3 2005 helloworld.c -rw-r--r-- 1 root root 11868 Oct 26 17:45 helloworld.o -rw-r--r-- 1 root root 478 Oct 26 16:54 MakefileNow to run this program you have to transfer it on the FOX Board. The easiest way is to use SCP:
/home/fox/devboard-R_01/apps/helloworld# scp helloworld root@192.168.0.90:/mnt/flash The authenticity of host '192.168.0.90 (192.168.0.90)' can't be established. RSA key fingerprint is 89:2f:6e:f7:5b:d0:02:07:d3:9d:18:10:76:6e:99:0c. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.90' (RSA) to the list of known hosts. root@192.168.0.90's password: passNow open another terminal session and launch Telnet:
# telnet 192.168.0.90 Entering character mode Escape character is '^]'. axis-00408c012220 login: root Password: passgo to the directory /mnt/flash
[root@axis-00408c012220 /root]182# cd /mnt/flash [root@axis-00408c012220 /mnt/flash]182#
In order to set this file as an executable you have to issue the following command (to be issued only one time i.e. modifying the program and updating it on the Fox will retain its status as executable program):
[root@axis-00408c012220 /mnt/flash]182# chmod +x helloworldNow you can launch your first helloworld program on the FOX Board:
[root@axis-00408c012220 /mnt/flash] # ./helloworld Hello world !