diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2017-05-26 09:14:26 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2017-05-26 12:39:34 -0400 |
commit | a82e949c00aceaedd9d9a76ddcc3c88c9cad3d80 (patch) | |
tree | 685af9ff540b0407cfb0f96664fc3dccbc160152 /src/pru | |
parent | ca9756413f2793279b5ba1c1ecf274ce734b2087 (diff) | |
download | kutter-a82e949c00aceaedd9d9a76ddcc3c88c9cad3d80.tar.gz kutter-a82e949c00aceaedd9d9a76ddcc3c88c9cad3d80.tar.xz kutter-a82e949c00aceaedd9d9a76ddcc3c88c9cad3d80.zip |
build: Use compile_time_request system for init, tasks, and shutdown
Avoid using linker magic to define the init, task, and shutdown
functions. Instead, use the compile_time_request system. This
simplifies the build and produces more efficient code.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/pru')
-rw-r--r-- | src/pru/Makefile | 11 | ||||
-rw-r--r-- | src/pru/main.c | 7 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/pru/Makefile b/src/pru/Makefile index 4e326955..5f5739b4 100644 --- a/src/pru/Makefile +++ b/src/pru/Makefile @@ -9,9 +9,10 @@ dirs-y += lib/pru_rpmsg CFLAGS += -Os -mmcu=am335x.pru1 CFLAGS += -Ilib/pru_rpmsg/include -Ilib/pru_rpmsg/include/am335x -CFLAGS_klipper.o := $(filter-out -mmcu=%, $(CFLAGS_klipper.o)) -CFLAGS_klipper.elf := $(CFLAGS) -minrt -T src/pru/pru.lds +CFLAGS_klipper.elf := $(filter-out -mmcu=%, $(CFLAGS)) +CFLAGS_klipper.elf += -Wl,-r -nostdlib -Wl,-T,src/pru/pru.lds CFLAGS_pru0.elf := $(filter-out -mmcu=%, $(CFLAGS)) -minrt -mmcu=am335x.pru0 +CFLAGS_pru1.elf := $(CFLAGS) -minrt # Add source files src-y := $(filter-out debugcmds.c, $(src-y)) @@ -22,8 +23,12 @@ pru0-y := pru/pru0.c pru0-y += ../lib/pru_rpmsg/pru_rpmsg.c ../lib/pru_rpmsg/pru_virtqueue.c # Build the additional PRU0 binary -target-y += $(OUT)pru0.elf +target-y += $(OUT)pru0.elf $(OUT)pru1.elf $(OUT)pru0.elf: $(patsubst %.c, $(OUT)src/%.o,$(pru0-y)) @echo " Linking $@" $(Q)$(CC) $(CFLAGS_pru0.elf) $^ -o $@ + +$(OUT)pru1.elf: $(OUT)klipper.elf + @echo " Linking $@" + $(Q)$(CC) $(CFLAGS_pru1.elf) $^ -o $@ diff --git a/src/pru/main.c b/src/pru/main.c index df69a01e..46722709 100644 --- a/src/pru/main.c +++ b/src/pru/main.c @@ -75,7 +75,7 @@ irq_poll(void) _irq_poll(); } -static void +void timer_shutdown(void) { // Reenable timer irq @@ -86,12 +86,13 @@ timer_shutdown(void) } DECL_SHUTDOWN(timer_shutdown); -static void +void timer_init(void) { CT_IEP.TMR_CNT = 0; timer_shutdown(); } +DECL_INIT(timer_init); /**************************************************************** @@ -211,8 +212,6 @@ main(void) ; writel(&SHARED_MEM->signal, SIGNAL_PRU1_READY); - timer_init(); - sched_main(); return 0; } |