mirror of
https://github.com/tillitis/tillitis-key1.git
synced 2024-12-24 15:09:27 -05:00
072b204d3d
* ch552 firmware: add ch55x support files directly * Add sdcc compiler to docker image, for building CH552 firmware * Rework production test script * Add menu-based test runner * Rewrite production test flows as lists of individual tests * Add both production flows and manual tests to menu * Switch to using included binaries * production test: Update message format * test_txrx_touchpad: Retry if device communications fail * production test: put all binaries in binaries/ folder * binaries/top.bin: replace broken binary * flash_check: Check for explicit flash IDs * Document most test procedures * Test plan documentation * Sample udev rules * Production test: allow external references to be overridden * Remove outdated descriptions * Correct shebang * Update shebangs to comply with PEP 394 Change the python scripts to call python instead of python3, as this works cross platform. See: https://peps.python.org/pep-0394/#for-python-script-publishers * Move production test to higher-level directory * Clarify production test setup * Move USB C connector test to separate directory Co-authored-by: Michael Cardell Widerkrantz <mc@tillitis.se>
69 lines
1.5 KiB
Makefile
69 lines
1.5 KiB
Makefile
#######################################################
|
|
|
|
# toolchain
|
|
CC = sdcc
|
|
OBJCOPY = objcopy
|
|
PACK_HEX = packihx
|
|
WCHISP ?= wchisptool -g -f
|
|
|
|
#######################################################
|
|
|
|
FREQ_SYS ?= 24000000
|
|
|
|
XRAM_SIZE ?= 0x0400
|
|
|
|
XRAM_LOC ?= 0x0000
|
|
|
|
CODE_SIZE ?= 0x3800
|
|
|
|
ROOT_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
|
|
|
CFLAGS := -V -mmcs51 --model-small \
|
|
--xram-size $(XRAM_SIZE) --xram-loc $(XRAM_LOC) \
|
|
--code-size $(CODE_SIZE) \
|
|
-I$(ROOT_DIR)include -DFREQ_SYS=$(FREQ_SYS) \
|
|
$(EXTRA_FLAGS)
|
|
|
|
LFLAGS := $(CFLAGS)
|
|
|
|
RELS := $(C_FILES:.c=.rel)
|
|
|
|
print-% : ; @echo $* = $($*)
|
|
|
|
%.rel : %.c
|
|
$(CC) -c $(CFLAGS) $<
|
|
|
|
# Note: SDCC will dump all of the temporary files into this one, so strip the paths from RELS
|
|
# For now, get around this by stripping the paths off of the RELS list.
|
|
|
|
$(TARGET).ihx: $(RELS)
|
|
$(CC) $(notdir $(RELS)) $(LFLAGS) -o $(TARGET).ihx
|
|
|
|
$(TARGET).hex: $(TARGET).ihx
|
|
$(PACK_HEX) $(TARGET).ihx > $(TARGET).hex
|
|
|
|
$(TARGET).bin: $(TARGET).ihx
|
|
$(OBJCOPY) -I ihex -O binary $(TARGET).ihx $(TARGET).bin
|
|
|
|
flash: $(TARGET).bin pre-flash
|
|
$(WCHISP) $(TARGET).bin
|
|
|
|
.DEFAULT_GOAL := all
|
|
all: $(TARGET).bin $(TARGET).hex
|
|
|
|
clean:
|
|
rm -f \
|
|
$(notdir $(RELS:.rel=.asm)) \
|
|
$(notdir $(RELS:.rel=.lst)) \
|
|
$(notdir $(RELS:.rel=.mem)) \
|
|
$(notdir $(RELS:.rel=.rel)) \
|
|
$(notdir $(RELS:.rel=.rst)) \
|
|
$(notdir $(RELS:.rel=.sym)) \
|
|
$(notdir $(RELS:.rel=.adb)) \
|
|
$(TARGET).lk \
|
|
$(TARGET).map \
|
|
$(TARGET).mem \
|
|
$(TARGET).ihx \
|
|
$(TARGET).hex \
|
|
$(TARGET).bin
|