From 0f175c5da45b0fbc7f9fd5b6e37120857cb1cd1a Mon Sep 17 00:00:00 2001 From: Kelvin Lawson Date: Thu, 28 Feb 2013 13:36:57 +0000 Subject: [PATCH] ARM/IntegratorCP: Move platform folder underneath the relevant port folder (ports/arm/platforms/qemu_integratorcp). --- platforms/qemu_integratorcp/Makefile | 94 -------------- .../arm/platforms/qemu_integratorcp/Makefile | 116 ++++++++++++++++++ .../arm/platforms}/qemu_integratorcp/README | 0 .../arm/platforms}/qemu_integratorcp/main.c | 9 +- .../platforms}/qemu_integratorcp/modules.c | 0 .../platforms}/qemu_integratorcp/modules.h | 0 .../platforms}/qemu_integratorcp/startup.s | 0 .../platforms}/qemu_integratorcp/syscalls.c | 0 .../platforms}/qemu_integratorcp/system.ld | 0 tests/stress1.h | 2 +- 10 files changed, 120 insertions(+), 101 deletions(-) delete mode 100644 platforms/qemu_integratorcp/Makefile create mode 100644 ports/arm/platforms/qemu_integratorcp/Makefile rename {platforms => ports/arm/platforms}/qemu_integratorcp/README (100%) rename {platforms => ports/arm/platforms}/qemu_integratorcp/main.c (90%) rename {platforms => ports/arm/platforms}/qemu_integratorcp/modules.c (100%) rename {platforms => ports/arm/platforms}/qemu_integratorcp/modules.h (100%) rename {platforms => ports/arm/platforms}/qemu_integratorcp/startup.s (100%) rename {platforms => ports/arm/platforms}/qemu_integratorcp/syscalls.c (100%) rename {platforms => ports/arm/platforms}/qemu_integratorcp/system.ld (100%) diff --git a/platforms/qemu_integratorcp/Makefile b/platforms/qemu_integratorcp/Makefile deleted file mode 100644 index 91a3e2a..0000000 --- a/platforms/qemu_integratorcp/Makefile +++ /dev/null @@ -1,94 +0,0 @@ -ifeq ($(TARGET_NAME),) -TARGET_NAME=boot -endif -ifeq ($(ATOMTHREADS),) -ATOMTHREADS = $(shell pwd)/../../ -endif -ifeq ($(TEST_NAME),) -TEST_NAME = kern1 -endif - - - -CC = arm-none-eabi-gcc -LN = arm-none-eabi-gcc -AS = arm-none-eabi-gcc - -CFLAGS := $(CFLAGS) -Wall -g -c -mcpu=arm926ej-s -ffreestanding -AFLAGS := $(AFLAGS) -Wall -g -c -mcpu=arm926ej-s -ffreestanding -x assembler-with-cpp -LFLAGS := $(LFLAGS) -Wall -mcpu=arm926ej-s -Wl,-Map=system.map -Tsystem.ld - -CDEFS := $(CDEFS) -DATOMTHREADS_TEST='"$(TEST_NAME)"' -ADEFS := $(ADEFS) - -LLIBS := $(LLIBS) - - -SRCS := $(SRCS) \ - modules.c \ - syscalls.c \ - main.c \ - $(ATOMTHREADS)/tests/$(TEST_NAME).c - -ASMS := $(ASMS) \ - startup.s \ - -INCLUDES := $(INCLUDES) \ - -I$(ATOMTHREADS) - -include $(ATOMTHREADS)/ports/arm/Makefile - -OBJS = $(SRCS:.c=.o) $(ASMS:.s=.o) - -include ../rules.mk - - -run_test: clean all - echo "START TEST $(TEST_NAME)" - qemu-system-arm -M integratorcp -kernel boot.elf -semihosting -nographic | tee atomthreads_test.out - -all_tests: - echo "Starting atomthreads test suite" > atomthreads_test.out - make run_test "TEST_NAME=mutex1" - make run_test "TEST_NAME=mutex2" - make run_test "TEST_NAME=mutex3" - make run_test "TEST_NAME=mutex4" - make run_test "TEST_NAME=mutex5" - make run_test "TEST_NAME=mutex6" - make run_test "TEST_NAME=mutex7" - make run_test "TEST_NAME=mutex8" - make run_test "TEST_NAME=mutex9" - make run_test "TEST_NAME=kern1" - make run_test "TEST_NAME=kern2" - make run_test "TEST_NAME=kern3" - make run_test "TEST_NAME=kern4" - make run_test "TEST_NAME=timer1" - make run_test "TEST_NAME=timer2" - make run_test "TEST_NAME=timer3" - make run_test "TEST_NAME=timer4" - make run_test "TEST_NAME=timer5" - make run_test "TEST_NAME=timer6" - make run_test "TEST_NAME=timer7" - make run_test "TEST_NAME=queue1" - make run_test "TEST_NAME=queue2" - make run_test "TEST_NAME=queue3" - make run_test "TEST_NAME=queue4" - make run_test "TEST_NAME=queue5" - make run_test "TEST_NAME=queue6" - make run_test "TEST_NAME=queue7" - make run_test "TEST_NAME=queue8" - make run_test "TEST_NAME=queue9" - make run_test "TEST_NAME=queue10" - make run_test "TEST_NAME=sem1" - make run_test "TEST_NAME=sem2" - make run_test "TEST_NAME=sem3" - make run_test "TEST_NAME=sem4" - make run_test "TEST_NAME=sem5" - make run_test "TEST_NAME=sem6" - make run_test "TEST_NAME=sem7" - make run_test "TEST_NAME=sem8" - make run_test "TEST_NAME=sem9" - -run_last: - qemu-system-arm -M integratorcp -kernel boot.elf -semihosting - diff --git a/ports/arm/platforms/qemu_integratorcp/Makefile b/ports/arm/platforms/qemu_integratorcp/Makefile new file mode 100644 index 0000000..86c13ba --- /dev/null +++ b/ports/arm/platforms/qemu_integratorcp/Makefile @@ -0,0 +1,116 @@ +############ +# Settings # +############ + +# Build all test applications: +# make + +# Location of build tools and atomthreads sources +KERNEL_DIR=../../../../kernel +TESTS_DIR=../../../../tests +PORT_DIR=../.. +CC=arm-none-eabi-gcc +OBJCOPY=arm-none-eabi-objcopy + +# Enable stack-checking. +#STACK_CHECK=true + +# Test programs: Log stack usage to UART (if STACK_CHECK is enabled) +#TESTS_LOG_STACK=true + +# Directory for built objects +BUILD_DIR=build + +# Platform-specific object files +PLATFORM_OBJECTS = main.o modules.o syscalls.o +PLATFORM_ASM_OBJECTS = startup.o + +# Port-specific object files +PORT_OBJECTS = atomport.o +PORT_ASM_OBJECTS = atomport-asm.o + +# Kernel object files +KERNEL_OBJECTS = atomkernel.o atomsem.o atommutex.o atomtimer.o atomqueue.o + +# Collection of built objects (excluding test applications) +ALL_OBJECTS = $(PLATFORM_OBJECTS) $(PLATFORM_ASM_OBJECTS) $(PORT_OBJECTS) $(PORT_ASM_OBJECTS) $(KERNEL_OBJECTS) +BUILT_OBJECTS = $(patsubst %,$(BUILD_DIR)/%,$(ALL_OBJECTS)) + +# Test object files (dealt with separately as only one per application build) +TEST_OBJECTS = $(notdir $(patsubst %.c,%.o,$(wildcard $(TESTS_DIR)/*.c))) + +# Target application filenames for each test object +TEST_ELFS = $(patsubst %.o,%.elf,$(TEST_OBJECTS)) + +# Search build/output directory for dependencies +vpath %.o ./$(BUILD_DIR) +vpath %.elf ./$(BUILD_DIR) + +# GCC flags +CFLAGS=-g -c -mcpu=arm926ej-s -ffreestanding -Wall -Werror +AFLAGS=$(CFLAGS) -x assembler-with-cpp +LFLAGS=-mcpu=arm926ej-s -Tsystem.ld -Wall + +# Enable stack-checking options (disable if not required) +ifeq ($(STACK_CHECK),true) +CFLAGS += -DATOM_STACK_CHECKING +endif +ifeq ($(TESTS_LOG_STACK),true) +CFLAGS += -DTESTS_LOG_STACK_USAGE +endif + + +################# +# Build targets # +################# + +# All tests +all: $(BUILD_DIR) $(TEST_ELFS) Makefile + +# Make build/output directory +$(BUILD_DIR): + mkdir $(BUILD_DIR) + +# Test ELF files (one application build for each test) +$(TEST_ELFS): %.elf: %.o $(ALL_OBJECTS) + $(CC) $(LFLAGS) $(BUILD_DIR)/$(notdir $<) $(BUILT_OBJECTS) --output $(BUILD_DIR)/$@ -Wl,-Map,$(BUILD_DIR)/$(basename $@).map + +# Kernel objects builder +$(KERNEL_OBJECTS): %.o: $(KERNEL_DIR)/%.c + $(CC) -c $(CFLAGS) -I. -I$(PORT_DIR) $< -o $(BUILD_DIR)/$(notdir $@) + +# Test objects builder +$(TEST_OBJECTS): %.o: $(TESTS_DIR)/%.c + $(CC) -c $(CFLAGS) -I. -I$(PORT_DIR) -I$(KERNEL_DIR) $< -o $(BUILD_DIR)/$(notdir $@) + +# Platform C objects builder +$(PLATFORM_OBJECTS): %.o: ./%.c + $(CC) -c $(CFLAGS) -I. -I$(PORT_DIR) -I$(KERNEL_DIR) -I$(TESTS_DIR) $< -o $(BUILD_DIR)/$(notdir $@) + +# Platform asm objects builder +$(PLATFORM_ASM_OBJECTS): %.o: ./%.s + $(CC) -c $(AFLAGS) -I. -I$(PORT_DIR) -I$(KERNEL_DIR) $< -o $(BUILD_DIR)/$(notdir $@) + +# Port C objects builder +$(PORT_OBJECTS): %.o: $(PORT_DIR)/%.c + $(CC) -c $(CFLAGS) -I. -I$(PORT_DIR) -I$(KERNEL_DIR) -I$(TESTS_DIR) $< -o $(BUILD_DIR)/$(notdir $@) + +# Port asm objects builder +$(PORT_ASM_OBJECTS): %.o: $(PORT_DIR)/%.s + $(CC) -c $(AFLAGS) -I. -I$(PORT_DIR) -I$(KERNEL_DIR) $< -o $(BUILD_DIR)/$(notdir $@) + +# .lst file builder +%.lst: %.c + $(CC) $(CFLAGS) -I. -I$(PORT_DIR) -I$(KERNEL_DIR) -I$(TESTS_DIR) -Wa,-al $< > $@ + +# Clean +clean: + rm -f *.o *.elf *.map *.lst + rm -rf doxygen-kernel + rm -rf doxygen-arm + rm -rf build + +# Generate Doxygen documentation +doxygen: + doxygen $(KERNEL_DIR)/Doxyfile + doxygen ./Doxyfile diff --git a/platforms/qemu_integratorcp/README b/ports/arm/platforms/qemu_integratorcp/README similarity index 100% rename from platforms/qemu_integratorcp/README rename to ports/arm/platforms/qemu_integratorcp/README diff --git a/platforms/qemu_integratorcp/main.c b/ports/arm/platforms/qemu_integratorcp/main.c similarity index 90% rename from platforms/qemu_integratorcp/main.c rename to ports/arm/platforms/qemu_integratorcp/main.c index 66d7279..3699c38 100644 --- a/platforms/qemu_integratorcp/main.c +++ b/ports/arm/platforms/qemu_integratorcp/main.c @@ -29,11 +29,8 @@ #include #include "modules.h" #include "atom.h" -#include "tests/atomtests.h" +#include "atomtests.h" -#ifndef ATOMTHREADS_TEST -#define ATOMTHREADS_TEST "kern1" -#endif #define TEST_STACK_BYTE_SIZE 1024 #define IDLE_STACK_BYTE_SIZE 512 @@ -55,7 +52,7 @@ test_thread (uint32_t param) uint32_t failures ; failures = test_start () ; - printf ("%s %s\r\n", ATOMTHREADS_TEST, failures ? "FAIL" : "PASS") ; + printf ("%s\r\n", failures ? "FAIL" : "PASS") ; return; } @@ -69,7 +66,7 @@ test_thread (uint32_t param) int main (void) { - printf ("atomthreads starting %s... ", ATOMTHREADS_TEST) ; + printf ("atomthreads starting... ") ; atomOSInit(&idle_stack[0], IDLE_STACK_BYTE_SIZE, TRUE) ; atomThreadCreate ((ATOM_TCB *)&test_tcb, TEST_THREAD_PRIO, test_thread, 0, &test_stack[0], TEST_STACK_BYTE_SIZE, TRUE); diff --git a/platforms/qemu_integratorcp/modules.c b/ports/arm/platforms/qemu_integratorcp/modules.c similarity index 100% rename from platforms/qemu_integratorcp/modules.c rename to ports/arm/platforms/qemu_integratorcp/modules.c diff --git a/platforms/qemu_integratorcp/modules.h b/ports/arm/platforms/qemu_integratorcp/modules.h similarity index 100% rename from platforms/qemu_integratorcp/modules.h rename to ports/arm/platforms/qemu_integratorcp/modules.h diff --git a/platforms/qemu_integratorcp/startup.s b/ports/arm/platforms/qemu_integratorcp/startup.s similarity index 100% rename from platforms/qemu_integratorcp/startup.s rename to ports/arm/platforms/qemu_integratorcp/startup.s diff --git a/platforms/qemu_integratorcp/syscalls.c b/ports/arm/platforms/qemu_integratorcp/syscalls.c similarity index 100% rename from platforms/qemu_integratorcp/syscalls.c rename to ports/arm/platforms/qemu_integratorcp/syscalls.c diff --git a/platforms/qemu_integratorcp/system.ld b/ports/arm/platforms/qemu_integratorcp/system.ld similarity index 100% rename from platforms/qemu_integratorcp/system.ld rename to ports/arm/platforms/qemu_integratorcp/system.ld diff --git a/tests/stress1.h b/tests/stress1.h index 303e867..3c4fe09 100644 --- a/tests/stress1.h +++ b/tests/stress1.h @@ -1,7 +1,7 @@ #ifndef __STRESS1_H__ #define __STRESS1_H__ -#include "types.h" +#include "atomport.h" #define TEST_STACK_BYTE_SIZE 0x200 #define IDLE_STACK_BYTE_SIZE 0x200