|
| 1 | +CC := sdcc --verbose |
| 2 | +PACKIHX := packihx |
| 3 | +HEX2IMAGE := hex2image |
| 4 | +PROGRAMMER := nrf24le1flash |
| 5 | +MONITOR += gtkterm |
| 6 | + |
| 7 | + |
| 8 | +CFLAGS := --opt-code-speed --model-large |
| 9 | +LFLAGS := --code-loc 0x0000 --code-size 0x4000 --xram-loc 0x0000 --xram-size 0x400 |
| 10 | +FLASH_SIZE := 16384 |
| 11 | +MAIN := main |
| 12 | +BIN := main.img |
| 13 | +PORT := /dev/ttyUSB0 |
| 14 | + |
| 15 | +SDK_DIR := $(shell cd /opt/nrf24le1_sdk_v4.0 && pwd) |
| 16 | +INCLUDE += -I $(SDK_DIR)/include |
| 17 | +REL_EXTERNAL_DIR := $(SDK_DIR)/_target_sdcc_nrf24le1/obj |
| 18 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/delay/delay_ms.rel |
| 19 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/delay/delay_s.rel |
| 20 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/delay/delay_us.rel |
| 21 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/pwr_clk_mgmt/pwr_clk_mgmt_cclk_configure.rel |
| 22 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/timer1/timer1_configure.rel |
| 23 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/uart/uart_configure_manual_baud_calc.rel |
| 24 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/uart/uart_send_wait_for_complete.rel |
| 25 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/uart/uart_wait_for_rx_and_get.rel |
| 26 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/w2/w2_configure.rel |
| 27 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/w2/w2_master_cur_address_read.rel |
| 28 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/w2/w2_master_process_start_request.rel |
| 29 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/w2/w2_master_process_stop_request.rel |
| 30 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/w2/w2_master_random_address_read.rel |
| 31 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/w2/w2_master_rx_byte.rel |
| 32 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/w2/w2_master_software_reset.rel |
| 33 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/w2/w2_master_tx_byte.rel |
| 34 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/w2/w2_master_write_control_bytes.rel |
| 35 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/w2/w2_master_write_to.rel |
| 36 | +REL_EXTERNAL_FILES += $(REL_EXTERNAL_DIR)/w2/w2_wait_for_byte_tx_or_rx.rel |
| 37 | + |
| 38 | + |
| 39 | +REL_SRC := $(MAIN).c |
| 40 | +REL_OBJ := $(patsubst %.c,%.rel,$(REL_SRC)) |
| 41 | + |
| 42 | + |
| 43 | +all: rel build |
| 44 | + |
| 45 | +%.rel: %.c |
| 46 | + $(CC) -c $(INCLUDE) $(CFLAGS) $(LFLAGS) $< |
| 47 | + |
| 48 | +rel: $(REL_OBJ) |
| 49 | + |
| 50 | +build: |
| 51 | + $(CC) $(CFLAGS) $(LDFLAGS) $(REL_OBJ) $(REL_EXTERNAL_FILES) |
| 52 | + $(PACKIHX) $(MAIN).ihx > $(MAIN).hex |
| 53 | + $(HEX2IMAGE) -S $(FLASH_SIZE) < $(MAIN).hex > $(BIN) |
| 54 | + tail -n5 $(MAIN).mem |
| 55 | + |
| 56 | +clean: |
| 57 | + $(RM) *.asm *.cdb *.hex *.ihx *.lk *.lst *.map *.mem *.omf *.rel *.rst *.sym *.img |
| 58 | + |
| 59 | + |
| 60 | +test: all burn monitor |
| 61 | + |
| 62 | +burn: rel build |
| 63 | + $(PROGRAMMER) -f $(MAIN).hex -p $(PORT) -c FLASH |
| 64 | + |
| 65 | +monitor: |
| 66 | + $(MONITOR) -p $(PORT) -s 38400 |
0 commit comments