summaryrefslogtreecommitdiff
path: root/core/cortex-m
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2014-03-07 19:06:54 -0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-03-22 06:24:16 +0000
commit60e47a730f9a0c0eb20ccd067954009c192418c9 (patch)
tree7c78a02d75a18f1715f09624bc7c415aee92ef7d /core/cortex-m
parent727b4e4e0d54e46e196d2d129ab432f537d2c301 (diff)
downloadchrome-ec-60e47a730f9a0c0eb20ccd067954009c192418c9.tar.gz
make the common runtime optional
In order to achieve really tiny firmwares, make our runtime (tasks, hooks, muxed timers, GPIO abstraction ...) optional. Add 2 new build options for it : CONFIG_COMMON_RUNTIME and CONFIG_COMMON_GPIO which are enabled by default, and ensure all the source files are built according to the right configuration variable. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=none BUG=none TEST=make buildall build a minimal board with no runtime. Change-Id: Icb621cbe0a75b3a320cb53c3267d6e578cd3c32f Reviewed-on: https://chromium-review.googlesource.com/189403 Reviewed-by: Vic Yang <victoryang@chromium.org> Commit-Queue: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'core/cortex-m')
-rw-r--r--core/cortex-m/build.mk4
-rw-r--r--core/cortex-m/init.S4
-rw-r--r--core/cortex-m/task.c2
3 files changed, 8 insertions, 2 deletions
diff --git a/core/cortex-m/build.mk b/core/cortex-m/build.mk
index 741ec005cc..5306865984 100644
--- a/core/cortex-m/build.mk
+++ b/core/cortex-m/build.mk
@@ -17,6 +17,8 @@ CFLAGS_CPU+=-mthumb -Os -mno-sched-prolog
CFLAGS_CPU+=-mno-unaligned-access
CFLAGS_CPU+=$(CFLAGS_FPU-y)
-core-y=cpu.o init.o panic.o switch.o task.o
+core-y=cpu.o init.o
+core-$(CONFIG_COMMON_PANIC_OUTPUT)+=panic.o
+core-$(CONFIG_COMMON_RUNTIME)+=switch.o task.o
core-$(CONFIG_WATCHDOG)+=watchdog.o
core-$(CONFIG_MPU)+=mpu.o
diff --git a/core/cortex-m/init.S b/core/cortex-m/init.S
index 78c2307545..00072c7f0f 100644
--- a/core/cortex-m/init.S
+++ b/core/cortex-m/init.S
@@ -374,8 +374,12 @@ fini_loop:
/* Default exception handler */
.thumb_func
default_handler:
+#ifdef CONFIG_COMMON_PANIC_OUTPUT
b exception_panic
+#endif
+ b reset
+.align 2
_bss_start:
.long __bss_start
_bss_end:
diff --git a/core/cortex-m/task.c b/core/cortex-m/task.c
index c0cbc84d59..5e309ef4cb 100644
--- a/core/cortex-m/task.c
+++ b/core/cortex-m/task.c
@@ -330,7 +330,7 @@ static uint32_t __wait_evt(int timeout_us, task_id_t resched)
task_ *tsk = current_task;
task_id_t me = tsk - tasks;
uint32_t evt;
- int ret;
+ int ret __attribute__((unused));
ASSERT(!in_interrupt_context());