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:
coreglitch
2020-10-14 16:21:55 +06:00
committed by GitHub
parent 1b85fa69af
commit b2a12d091a
28 changed files with 1122 additions and 28 deletions

View File

@@ -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)