From 73af1476a6750f702ac2838a60ad39ab24c6101b Mon Sep 17 00:00:00 2001 From: Oleg Borodin Date: Fri, 2 Sep 2022 09:51:36 +0200 Subject: [PATCH] moved g_* yo begin --- Makefile | 2 +- main.c | 14 +++++++------- scheduler.c | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 03db139..c2ca199 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ .SECONDARY: -CFLAGS+= -I. -O1 -DSTM32F4 -std=c99 +CFLAGS+= -I. -Os -DSTM32F4 -std=c99 #CFLAGS+= -mthumb #CFLAGS+= -march=armv7e-m CFLAGS+= -mfloat-abi=hard diff --git a/main.c b/main.c index 0f7a993..705bfca 100644 --- a/main.c +++ b/main.c @@ -1,3 +1,4 @@ + /* * Copyright 2022 Oleg Borodin */ @@ -10,7 +11,6 @@ #include #include - #include #include #include @@ -21,9 +21,12 @@ #include "atomic.h" #include "semaphore.h" +static int g_uptime; +static sem_t g_sem; +static scheduler_t g_scheduler; void delay(uint32_t n) { - for (volatile int i = 0; i < n * 800; i++) + for (int i = 0; i < n * 800; i++) __asm__("nop"); } @@ -59,9 +62,6 @@ static void systick_setup(void) { systick_counter_enable(); } -int g_uptime; -sem_t g_sem; - void task1(void) { while (true) { sem_wait(&g_sem); @@ -91,6 +91,7 @@ void task3(void) { void task4(void) { static volatile int32_t t4; + while (true) { atomic_inc32(&t4, (int32_t)1); sem_wait(&g_sem); @@ -105,14 +106,13 @@ void sys_tick_handler(void) { scheduler_yield(); } - int main(void) { g_uptime = 0; sem_init(&g_sem, 1); - static scheduler_t g_scheduler; clock_setup(); usart_setup(); + scheduler_init(&g_scheduler); scheduler_task(&g_scheduler, 0, task1); scheduler_task(&g_scheduler, 1, task2); diff --git a/scheduler.c b/scheduler.c index c0aae0d..d54c6f1 100644 --- a/scheduler.c +++ b/scheduler.c @@ -41,8 +41,8 @@ static void task_exit_func(void) { #define STACK_FILL 0xA5 void scheduler_init(scheduler_t *scheduler) { - - for (int i = 0; i < SCHEDULER_NUM_TASKS; i++) { + int i; + for (i = 0; i < SCHEDULER_NUM_TASKS; i++) { task_t *task = &(scheduler->tasks[i]); task->stack = NULL; task->stack_size = 0;