From: Natanael Adityasatria Date: Sun, 4 Oct 2015 08:52:36 +0000 (+0200) Subject: Added ex10 a b X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=f78572aeb990e49157a0fce87afacd69132b482e;hp=ac75c3cbb6f36618f91d1cb8d552c1cde8b70819;p=des2015.git Added ex10 a b --- diff --git a/natanael/ex10/Makefile b/natanael/ex10/Makefile new file mode 100644 index 0000000..1e36d5a --- /dev/null +++ b/natanael/ex10/Makefile @@ -0,0 +1,99 @@ +###### CONFIGURATION ###### + +### List of applications to be build +APPLICATIONS = ex10a ex10d + +### Note: to override the search path for the xeno-config script, use "make XENO=..." + + +### List of modules to be build +MODULES = + +### Note: to override the kernel source path, use "make KSRC=..." + + + +###### USER SPACE BUILD (no change required normally) ###### +ifeq ($(KERNELRELEASE),) +ifneq ($(APPLICATIONS),) + +### Default Xenomai installation path +XENO ?= /usr/xenomai + +XENOCONFIG=$(shell PATH=$(XENO):$(XENO)/bin:$(PATH) which xeno-config 2>/dev/null) + +### Sanity check +ifeq ($(XENOCONFIG),) +all:: + @echo ">>> Invoke make like this: \"make XENO=/path/to/xeno-config\" <<<" + @echo +endif + + +CC=$(shell $(XENOCONFIG) --cc) + +CFLAGS=$(shell $(XENOCONFIG) --xeno-cflags) $(MY_CFLAGS) + +LDFLAGS=$(shell $(XENOCONFIG) --xeno-ldflags) $(MY_LDFLAGS) -lnative + +# This includes the library path of given Xenomai into the binary to make live +# easier for beginners if Xenomai's libs are not in any default search path. +LDFLAGS+=-Xlinker -rpath -Xlinker $(shell $(XENOCONFIG) --libdir) + +LDFLAGS+= -lrtdk + +all:: $(APPLICATIONS) + +clean:: + $(RM) $(APPLICATIONS) *.o + +endif +endif + + + +###### SPECIAL TARGET RULES ###### +rtprint: rtprint.c + $(CC) $(CFLAGS) $? $(LDFLAGS) -lrtdk -o $@ + + + +###### KERNEL MODULE BUILD (no change required normally) ###### +ifneq ($(MODULES),) + +### Default to sources of currently running kernel +KSRC ?= /lib/modules/$(shell uname -r)/build + +OBJS := ${patsubst %, %.o, $(MODULES)} +CLEANMOD := ${patsubst %, .%*, $(MODULES)} +PWD := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) + +### Kernel 2.6 +ifeq ($(findstring 2.6,$(KSRC)),2.6) + +obj-m := $(OBJS) +EXTRA_CFLAGS := -I$(KSRC)/include/xenomai -I$(KSRC)/include/xenomai/posix $(ADD_CFLAGS) + +all:: + $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules + +### Kernel 2.4 +else + +ARCH ?= $(shell uname -i) +INCLUDE := -I$(KSRC)/include/xenomai -I$(KSRC)/include/xenomai/compat -I$(KSRC)/include/xenomai/posix +CFLAGS += $(shell $(MAKE) -s -C $(KSRC) CC=$(CC) ARCH=$(ARCH) SUBDIRS=$(PWD) modules) $(INCLUDE) + +all:: $(OBJS) + +endif + +## Target for capturing 2.4 module CFLAGS +modules: + @echo "$(CFLAGS)" + +clean:: + $(RM) $(CLEANMOD) *.o *.ko *.mod.c Module*.symvers + $(RM) -R .tmp* + +endif \ No newline at end of file diff --git a/natanael/ex10/ex10a.c b/natanael/ex10/ex10a.c new file mode 100644 index 0000000..b9ad89e --- /dev/null +++ b/natanael/ex10/ex10a.c @@ -0,0 +1,81 @@ +#include +#include +#include +#include +#include +#include +#include + +const RTIME period = 1e5; +const int nsamples = 10000; + +RT_TASK task; +RTIME write_time; +RTIME arr_write_time[10000]; +RTIME time_diff[10000]; + +void write_RTIMES(char * filename, unsigned int number_of_values, + RTIME *time_values){ + unsigned int n=0; + FILE *file; + file = fopen(filename,"w"); + while (n