Display and UI implementation (#169)
* Menu app. Lib: add mlib submodule. * Menu: new startup lib dependency definition * Menu: hierarchy in menu. Cube: fix heap1/4 inconsistency, stack protection. * GUI: rendering pipeline initial version. * GUI: layered widget composing, FURI record. Menu: FURI record, api. * GUI: input dispatching. Menu: switch to input from GUI. * GUI, MENU: code style cleanup, fix type conversion warnings. * GUI, Menu: syntax check. * Makefile: check and reinit submodules, format. * Menu: lock on event processing. Makefile: proper submodule initialization. * Menu: fix stack corruption by queue. * GUI: refactor. * Makefile: format rule fix, st-util pid. * GUI, Menu, FURI: format with clang-format. * GUI, MENU: locks in critical sections, fix stack corruption, ready signaling. * Makefile: clang format rule cleanup. * GUI,MENU: migrate to new API. * Applications: PRODUCTION_HW variable, skip drivers build on local target. * refactor production build * add git to dockerfile * GUI: uncomment lock block Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
This commit is contained in:
@@ -14,12 +14,19 @@ DEPS = $(OBJECTS:.o=.d)
|
||||
$(shell mkdir -p $(OBJ_DIR))
|
||||
|
||||
BUILD_FLAGS_SHELL=\
|
||||
echo -n "$(CFLAGS)" > $(OBJ_DIR)/BUILD_FLAGS.tmp; \
|
||||
diff $(OBJ_DIR)/BUILD_FLAGS $(OBJ_DIR)/BUILD_FLAGS.tmp > /dev/null \
|
||||
echo "$(CFLAGS)" > $(OBJ_DIR)/BUILD_FLAGS.tmp; \
|
||||
diff $(OBJ_DIR)/BUILD_FLAGS $(OBJ_DIR)/BUILD_FLAGS.tmp 2>/dev/null \
|
||||
&& ( echo "CFLAGS ok"; rm $(OBJ_DIR)/BUILD_FLAGS.tmp) \
|
||||
|| ( echo "CFLAGS has been changed"; mv $(OBJ_DIR)/BUILD_FLAGS.tmp $(OBJ_DIR)/BUILD_FLAGS )
|
||||
$(info $(shell $(BUILD_FLAGS_SHELL)))
|
||||
|
||||
CHECK_AND_REINIT_SUBMODULES_SHELL=\
|
||||
if git submodule status | egrep -q '^[-]|^[+]' ; then \
|
||||
echo "INFO: Need to reinitialize git submodules"; \
|
||||
git submodule update --init; \
|
||||
fi
|
||||
$(info $(shell $(CHECK_AND_REINIT_SUBMODULES_SHELL)))
|
||||
|
||||
all: $(OBJ_DIR)/$(PROJECT).elf $(OBJ_DIR)/$(PROJECT).hex $(OBJ_DIR)/$(PROJECT).bin
|
||||
|
||||
$(OBJ_DIR)/$(PROJECT).elf: $(OBJECTS)
|
||||
@@ -60,25 +67,18 @@ flash: $(OBJ_DIR)/flash
|
||||
upload: $(OBJ_DIR)/upload
|
||||
|
||||
debug: flash
|
||||
set -m; st-util -n --semihosting & echo $$! > st-util.PID
|
||||
arm-none-eabi-gdb \
|
||||
set -m; st-util -n --semihosting & echo $$! > $(OBJ_DIR)/st-util.PID
|
||||
arm-none-eabi-gdb-py \
|
||||
-ex "target extended-remote 127.0.0.1:4242" \
|
||||
-ex "set confirm off" \
|
||||
$(OBJ_DIR)/$(PROJECT).elf; \
|
||||
kill `cat st-util.PID`; \
|
||||
rm st-util.PID
|
||||
kill `cat $(OBJ_DIR)/st-util.PID`; \
|
||||
rm $(OBJ_DIR)/st-util.PID
|
||||
|
||||
clean:
|
||||
@echo "\tCLEAN\t"
|
||||
@$(RM) $(OBJ_DIR)/*
|
||||
|
||||
.PHONY: check-and-reinit-submodules
|
||||
check-and-reinit-submodules:
|
||||
@if git submodule status | egrep -q '^[-]|^[+]' ; then \
|
||||
echo "INFO: Need to reinitialize git submodules"; \
|
||||
git submodule update --init; \
|
||||
fi
|
||||
|
||||
z: clean
|
||||
$(MAKE) all
|
||||
|
||||
@@ -88,4 +88,11 @@ zz: clean
|
||||
zzz: clean
|
||||
$(MAKE) debug
|
||||
|
||||
FORMAT_SOURCES := $(shell find ../applications -iname "*.h" -o -iname "*.c" -o -iname "*.cpp")
|
||||
FORMAT_SOURCES += $(shell find ../core -iname "*.h" -o -iname "*.c" -o -iname "*.cpp")
|
||||
|
||||
format:
|
||||
@echo "Formatting sources with clang-format"
|
||||
@clang-format -style=file -i $(FORMAT_SOURCES)
|
||||
|
||||
-include $(DEPS)
|
||||
|
Reference in New Issue
Block a user