translator: new build system, translator build options, external stdlib, translator and hardware integration
This commit is contained in:
@@ -1,2 +1,3 @@
|
|||||||
bin
|
bin
|
||||||
tags
|
tags
|
||||||
|
lib
|
||||||
|
|||||||
+47
-49
@@ -1,78 +1,78 @@
|
|||||||
BIN_DIR=$(PWD)/bin
|
BIN_DIR=$(PWD)/bin
|
||||||
SRC_DIR=$(PWD)/src
|
SRC_DIR=$(PWD)/src
|
||||||
LIB_DIR=$(SRC_DIR)/lib
|
LIB_DIR=$(PWD)/lib
|
||||||
|
TRANSLATOR_DIR=$(PWD)/../translator
|
||||||
|
KOTSTD_DIR=$(PWD)/../kotstd
|
||||||
|
CAR_HW_DIR=$(PWD)/../car_hw
|
||||||
|
|
||||||
OS_ARCH=linux-arm
|
OS_ARCH=linux-arm
|
||||||
|
|
||||||
LIB_CMSIS_DIR=$(LIB_DIR)/cmsis
|
|
||||||
LIB_STDPERIPH_DIR=$(LIB_DIR)/stdperiph
|
|
||||||
LIB_STM32F4D_DIR=$(LIB_DIR)/stm32f4d
|
|
||||||
LIB_USB_DEV_DIR=$(LIB_DIR)/usb_device
|
|
||||||
LIB_USB_OTG_DIR=$(LIB_DIR)/usb_otg
|
|
||||||
LIB_USB_VCP_DIR=$(LIB_DIR)/usb_vcp
|
|
||||||
|
|
||||||
LIB_CMSIS_OBJ=$(BIN_DIR)/libcmsis.o
|
|
||||||
LIB_STDPERIPH_OBJ=$(BIN_DIR)/libstdperiph.o
|
|
||||||
LIB_STM32F4D_OBJ=$(BIN_DIR)/libstm32f4d.o
|
|
||||||
LIB_USB_DEV_OBJ=$(BIN_DIR)/libusbdevice.o
|
|
||||||
LIB_USB_OTG_OBJ=$(BIN_DIR)/libusbotg.o
|
|
||||||
LIB_USB_VCP_OBJ=$(BIN_DIR)/libusbvcp.o
|
|
||||||
|
|
||||||
CAR_FMW_OBJ=$(BIN_DIR)/car_fmw.o
|
CAR_FMW_OBJ=$(BIN_DIR)/car_fmw.o
|
||||||
CAR_FMW_ELF=$(BIN_DIR)/car_fmw.elf
|
CAR_FMW_ELF=$(BIN_DIR)/car_fmw.elf
|
||||||
CAR_FMW_BIN=$(BIN_DIR)/car_fmw.bin
|
CAR_FMW_BIN=$(BIN_DIR)/car_fmw.bin
|
||||||
ST_DIR=$(SRC_DIR)/../../devloader/data/$(OS_ARCH)
|
ST_DIR=$(SRC_DIR)/../../devloader/data/$(OS_ARCH)
|
||||||
|
|
||||||
|
LIB_KOT=$(BIN_DIR)/kotlib.o
|
||||||
|
LIB_KOTSTD=$(KOTSTD_DIR)/build/stdlib_arm.ll
|
||||||
|
LIB_CAR_HW=$(CAR_HW_DIR)/bin/car_hw.o
|
||||||
|
|
||||||
CC=arm-none-eabi-gcc
|
CC=arm-none-eabi-gcc
|
||||||
AS=arm-none-eabi-as
|
AS=arm-none-eabi-as
|
||||||
|
KT=$(TRANSLATOR_DIR)/build/libs/translator-1.0.jar
|
||||||
LD=arm-none-eabi-ld
|
LD=arm-none-eabi-ld
|
||||||
OBJ_COPY=arm-none-eabi-objcopy
|
OBJ_COPY=arm-none-eabi-objcopy
|
||||||
GDB=arm-none-eabi-gdb
|
GDB=arm-none-eabi-gdb
|
||||||
|
|
||||||
USB_CONF_DIR=$(LIB_DIR)/usb_conf
|
LL=llc-3.6
|
||||||
INCLUDES=-I$(LIB_CMSIS_DIR) \
|
LLINK=llvm-link-3.6
|
||||||
-I$(LIB_STDPERIPH_DIR) \
|
|
||||||
-I$(LIB_STM32F4D_DIR) \
|
KTFLAGS=-I $(KOTSTD_DIR)/include --arm
|
||||||
-I$(LIB_USB_DEV_DIR) \
|
LLINK_FLAGS=-S
|
||||||
-I$(LIB_USB_OTG_DIR) \
|
ASMFLAGS=-g -mthumb
|
||||||
-I$(LIB_USB_VCP_DIR) \
|
|
||||||
-I$(USB_CONF_DIR) \
|
|
||||||
-I$(SRC_DIR)
|
|
||||||
DEFINES=-DUSE_STM32_DISCOVERY=1 -DUSE_STDPERIPH_DRIVER=1 -DSTM32F4XX=1 -DHSE_VALUE=8000000
|
DEFINES=-DUSE_STM32_DISCOVERY=1 -DUSE_STDPERIPH_DRIVER=1 -DSTM32F4XX=1 -DHSE_VALUE=8000000
|
||||||
CFLAGS=-g -nostdlib -ffreestanding -O0 \
|
CFLAGS=-g -nostdlib -ffreestanding -O0 \
|
||||||
-mcpu=cortex-m3 -mfloat-abi=soft -mthumb \
|
-mcpu=cortex-m3 -mfloat-abi=soft -mthumb \
|
||||||
$(DEFINES)
|
$(DEFINES)
|
||||||
ASMFLAGS=-g -mthumb
|
|
||||||
|
|
||||||
LD_ALL_DEPS=$(LD) -r $(filter %.o,$^) -o $@
|
LD_ALL_DEPS=$(LD) -r $(filter %.o,$^) -o $@
|
||||||
CC_ALL_DEPS=$(CC) $(CFLAGS) -c $(INCLUDES) $(filter %.c,$^) -o $@
|
|
||||||
AS_ALL_DEPS=$(AS) $(ASMFLAGS) $(filter %.s,$^) -o $@
|
AS_ALL_DEPS=$(AS) $(ASMFLAGS) $(filter %.s,$^) -o $@
|
||||||
|
LL_ALL_DEPS=$(LL) $(LLFLAGS) $(filter %.ll, $^) -o $@
|
||||||
|
KT_ALL_DEPS=java -jar $(KT) $(KTFLAGS) -o $@ $(filter %.kt, $^)
|
||||||
|
LLINK_ALL_DEPS=$(LLINK) $(LLINK_FLAGS) $(filter %.ll,$^) > $@
|
||||||
|
|
||||||
dirhs=$(wildcard $(1)/*.h)
|
all: $(KT) $(CAR_FMW_BIN)
|
||||||
dircs=$(wildcard $(1)/*.c)
|
|
||||||
dircs_to_prefxd_objs=\
|
|
||||||
$(patsubst $(1)/%.c,$(BIN_DIR)/$(2)%.o,$(call dircs,$1))
|
|
||||||
|
|
||||||
$(CAR_FMW_BIN): $(CAR_FMW_ELF) $(BIN_DIR)
|
$(CAR_FMW_BIN): $(CAR_FMW_ELF) $(BIN_DIR)
|
||||||
$(OBJ_COPY) -O binary $< $@
|
$(OBJ_COPY) -O binary $< $@
|
||||||
|
|
||||||
$(CAR_FMW_ELF): $(CAR_FMW_OBJ) $(LIB_STM32F4D_OBJ) \
|
$(CAR_FMW_ELF): $(LIB_CAR_HW) $(LIB_KOT)
|
||||||
$(LIB_CMSIS_OBJ) $(LIB_STDPERIPH_OBJ) \
|
$(CC) $(CFLAGS) $^ -T stm32_flash.ld -o $@
|
||||||
$(LIB_USB_DEV_OBJ) $(LIB_USB_OTG_OBJ) \
|
|
||||||
$(LIB_USB_VCP_OBJ)
|
|
||||||
$(CC) $(CFLAGS) $^ -T $(SRC_DIR)/stm32_flash.ld -o $@
|
|
||||||
|
|
||||||
CAR_OBJ_PREFIX=car_
|
$(LIB_CAR_HW):
|
||||||
$(CAR_FMW_OBJ): \
|
cd $(CAR_HW_DIR) && make
|
||||||
$(call dircs_to_prefxd_objs,$(SRC_DIR),$(CAR_OBJ_PREFIX))
|
|
||||||
$(LD_ALL_DEPS)
|
|
||||||
|
|
||||||
$(BIN_DIR)/$(CAR_OBJ_PREFIX)%.o: $(SRC_DIR)/%.c \
|
|
||||||
$(call dirhs,$(SRC_DIR))
|
|
||||||
$(CC_ALL_DEPS)
|
|
||||||
|
|
||||||
$(BIN_DIR):
|
$(BIN_DIR):
|
||||||
mkdir -p $(BIN_DIR)
|
mkdir -p $(BIN_DIR)
|
||||||
|
|
||||||
|
$(LIB_KOT): $(BIN_DIR)/kotlib.s
|
||||||
|
$(AS_ALL_DEPS)
|
||||||
|
|
||||||
|
$(BIN_DIR)/kotlib.s: $(BIN_DIR)/kotlib.ll
|
||||||
|
$(LL_ALL_DEPS)
|
||||||
|
|
||||||
|
$(BIN_DIR)/kotlib.ll: $(LIB_DIR)/app.ll $(LIB_KOTSTD)
|
||||||
|
$(LLINK_ALL_DEPS)
|
||||||
|
|
||||||
|
$(LIB_KOTSTD):
|
||||||
|
cd $(KOTSTD_DIR) && make
|
||||||
|
|
||||||
|
$(LIB_DIR)/app.ll: $(SRC_DIR)/*.kt
|
||||||
|
$(KT_ALL_DEPS)
|
||||||
|
|
||||||
|
$(KT):
|
||||||
|
cd $(TRANSLATOR_DIR) && ./gradlew jar
|
||||||
|
|
||||||
flash: $(CAR_FMW_BIN)
|
flash: $(CAR_FMW_BIN)
|
||||||
$(ST_DIR)/st-flash write $(CAR_FMW_BIN) 0x8000000
|
$(ST_DIR)/st-flash write $(CAR_FMW_BIN) 0x8000000
|
||||||
|
|
||||||
@@ -83,10 +83,8 @@ debug:
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf bin/*
|
rm -rf bin/*
|
||||||
|
rm -rf lib/*
|
||||||
|
cd $(CAR_HW_DIR) && make clean
|
||||||
|
cd $(KOTSTD_DIR) && make clean
|
||||||
|
|
||||||
tags:
|
.PHONY: clean debug flash
|
||||||
ctags -R *
|
|
||||||
|
|
||||||
include $(LIB_DIR)/**/Makefile
|
|
||||||
|
|
||||||
.PHONY: clean debug flash tags
|
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
#include <stddef.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
|
|
||||||
#include "car_leds.h"
|
|
||||||
#include "car_engine.h"
|
|
||||||
#include "time.h"
|
|
||||||
#include "car_user_btn.h"
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
CAR_MODE_PROGRAMMED,
|
|
||||||
CAR_MODE_REMOTE_CONTROL,
|
|
||||||
CAR_MODE_LAST
|
|
||||||
} CAR_MODE;
|
|
||||||
static CAR_MODE cur_mode = CAR_MODE_PROGRAMMED;
|
|
||||||
static __IO bool cur_mode_stop = false;
|
|
||||||
|
|
||||||
void stop_cur_mode(void)
|
|
||||||
{
|
|
||||||
cur_mode_stop = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
/*!< At this stage the microcontroller clock setting is already configured,
|
|
||||||
this is done through SystemInit() function which is called from startup
|
|
||||||
file (startup_stm32f4xx.s) before to branch to application main.
|
|
||||||
To reconfigure the default setting of SystemInit() function, refer to
|
|
||||||
system_stm32f4xx.c file
|
|
||||||
*/
|
|
||||||
|
|
||||||
time_init();
|
|
||||||
leds_init();
|
|
||||||
engine_init();
|
|
||||||
user_btn_init(stop_cur_mode);
|
|
||||||
VCP_init();
|
|
||||||
|
|
||||||
while(1) {
|
|
||||||
if (cur_mode == CAR_MODE_PROGRAMMED)
|
|
||||||
run_programmed_car(&cur_mode_stop);
|
|
||||||
else if(cur_mode == CAR_MODE_REMOTE_CONTROL)
|
|
||||||
run_rc_car(&cur_mode_stop);
|
|
||||||
|
|
||||||
cur_mode = (cur_mode + 1) % CAR_MODE_LAST;
|
|
||||||
cur_mode_stop = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
external fun time_init()
|
||||||
|
|
||||||
|
external fun leds_init()
|
||||||
|
|
||||||
|
external fun engine_init()
|
||||||
|
external fun engine_stop()
|
||||||
|
external fun engine_forward()
|
||||||
|
external fun engine_backward()
|
||||||
|
external fun engine_turn_left()
|
||||||
|
external fun engine_turn_right()
|
||||||
|
|
||||||
|
external fun user_brn_init(i: () -> Unit)
|
||||||
|
external fun run_programmed_car(i: () -> Unit)
|
||||||
|
external fun run_rc_car(i: () -> Unit)
|
||||||
|
|
||||||
|
external fun VCP_init()
|
||||||
|
|
||||||
|
external fun wait(i: Int)
|
||||||
|
|
||||||
|
val CAR_MODE_PROGRAMMED: Int = 0
|
||||||
|
val CAR_MODE_REMOTE_CONTROL: Int = 1
|
||||||
|
val CAR_MODE_LAST: Int = 2
|
||||||
|
|
||||||
|
val PROGRAM_DURATION: Int = 3000
|
||||||
|
|
||||||
|
annotation class Native(val type: String = "")
|
||||||
|
|
||||||
|
@Native
|
||||||
|
class MyClass(@Native("i32") val i: Int, @Native("i16") val j: Int, @Native("i8") val k: Int)
|
||||||
|
|
||||||
|
fun engine_program() {
|
||||||
|
engine_init()
|
||||||
|
|
||||||
|
while (2 < 3) {
|
||||||
|
engine_forward()
|
||||||
|
wait(PROGRAM_DURATION)
|
||||||
|
engine_stop()
|
||||||
|
|
||||||
|
engine_backward()
|
||||||
|
wait(PROGRAM_DURATION)
|
||||||
|
engine_stop()
|
||||||
|
|
||||||
|
engine_turn_right()
|
||||||
|
wait(PROGRAM_DURATION)
|
||||||
|
engine_stop()
|
||||||
|
|
||||||
|
engine_turn_right()
|
||||||
|
wait(PROGRAM_DURATION)
|
||||||
|
engine_stop()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun kotlin_main() {
|
||||||
|
time_init()
|
||||||
|
engine_program()
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
BIN_DIR=$(PWD)/bin
|
BIN_DIR=$(PWD)/bin
|
||||||
SRC_DIR=$(PWD)/src
|
SRC_DIR=src
|
||||||
SRC_KOT=$(PWD)/kotlib
|
|
||||||
LIB_DIR=$(SRC_DIR)/lib
|
LIB_DIR=$(SRC_DIR)/lib
|
||||||
OS_ARCH=linux-arm
|
OS_ARCH=linux-arm
|
||||||
|
|
||||||
@@ -19,23 +18,17 @@ LIB_USB_OTG_OBJ=$(BIN_DIR)/libusbotg.o
|
|||||||
LIB_USB_VCP_OBJ=$(BIN_DIR)/libusbvcp.o
|
LIB_USB_VCP_OBJ=$(BIN_DIR)/libusbvcp.o
|
||||||
|
|
||||||
CAR_FMW_OBJ=$(BIN_DIR)/car_fmw.o
|
CAR_FMW_OBJ=$(BIN_DIR)/car_fmw.o
|
||||||
CAR_FMW_ELF=$(BIN_DIR)/car_fmw.elf
|
CAR_FMW=$(BIN_DIR)/car_fmw.elf
|
||||||
CAR_FMW_BIN=$(BIN_DIR)/car_fmw.bin
|
CAR_FMW_BIN=$(BIN_DIR)/car_fmw.bin
|
||||||
ST_DIR=$(SRC_DIR)/../../devloader/data/$(OS_ARCH)
|
ST_DIR=$(SRC_DIR)/../../devloader/data/$(OS_ARCH)
|
||||||
|
|
||||||
LIB_KOT=$(BIN_DIR)/kotlib.o
|
|
||||||
|
|
||||||
CC=arm-none-eabi-gcc
|
CC=arm-none-eabi-gcc
|
||||||
AS=arm-none-eabi-as
|
AS=arm-none-eabi-as
|
||||||
LD=arm-none-eabi-ld
|
LD=arm-none-eabi-ld
|
||||||
OBJ_COPY=arm-none-eabi-objcopy
|
OBJ_COPY=arm-none-eabi-objcopy
|
||||||
GDB=arm-none-eabi-gdb
|
GDB=arm-none-eabi-gdb
|
||||||
|
|
||||||
LL=llc-3.6
|
|
||||||
LLINK=llvm-link-3.6
|
|
||||||
|
|
||||||
USB_CONF_DIR=$(LIB_DIR)/usb_conf
|
USB_CONF_DIR=$(LIB_DIR)/usb_conf
|
||||||
|
|
||||||
INCLUDES=-I$(LIB_CMSIS_DIR) \
|
INCLUDES=-I$(LIB_CMSIS_DIR) \
|
||||||
-I$(LIB_STDPERIPH_DIR) \
|
-I$(LIB_STDPERIPH_DIR) \
|
||||||
-I$(LIB_STM32F4D_DIR) \
|
-I$(LIB_STM32F4D_DIR) \
|
||||||
@@ -44,37 +37,31 @@ INCLUDES=-I$(LIB_CMSIS_DIR) \
|
|||||||
-I$(LIB_USB_VCP_DIR) \
|
-I$(LIB_USB_VCP_DIR) \
|
||||||
-I$(USB_CONF_DIR) \
|
-I$(USB_CONF_DIR) \
|
||||||
-I$(SRC_DIR)
|
-I$(SRC_DIR)
|
||||||
|
|
||||||
DEFINES=-DUSE_STM32_DISCOVERY=1 -DUSE_STDPERIPH_DRIVER=1 -DSTM32F4XX=1 -DHSE_VALUE=8000000
|
DEFINES=-DUSE_STM32_DISCOVERY=1 -DUSE_STDPERIPH_DRIVER=1 -DSTM32F4XX=1 -DHSE_VALUE=8000000
|
||||||
CFLAGS=-g -nostdlib -ffreestanding -O0 \
|
CFLAGS=-g -nostdlib -ffreestanding -O0 \
|
||||||
-mcpu=cortex-m3 -mfloat-abi=soft -mthumb \
|
-mcpu=cortex-m3 -mfloat-abi=soft -mthumb \
|
||||||
$(DEFINES)
|
$(DEFINES)
|
||||||
LLFLAGS=-march=thumb -mtriple=arm-none-eabi -mcpu=cortex-m3
|
|
||||||
LLINK_FLAGS=-S
|
|
||||||
ASMFLAGS=-g -mthumb
|
ASMFLAGS=-g -mthumb
|
||||||
|
|
||||||
LD_ALL_DEPS=$(LD) -r $(filter %.o,$^) -o $@
|
LD_ALL_DEPS=$(LD) -r $(filter %.o,$^) -o $@
|
||||||
CC_ALL_DEPS=$(CC) $(CFLAGS) -c $(INCLUDES) $(filter %.c,$^) -o $@
|
CC_ALL_DEPS=$(CC) $(CFLAGS) -c $(INCLUDES) $(filter %.c,$^) -o $@
|
||||||
AS_ALL_DEPS=$(AS) $(ASMFLAGS) $(filter %.s,$^) -o $@
|
AS_ALL_DEPS=$(AS) $(ASMFLAGS) $(filter %.s,$^) -o $@
|
||||||
LL_ALL_DEPS=$(LL) $(LLFLAGS) $(filter %.ll, $^) -o $@
|
|
||||||
LLINK_ALL_DEPS=$(LLINK) $(LLINK_FLAGS) $(filter %.ll,$^) > $@
|
CAR_OBJ_PREFIX=car_
|
||||||
|
|
||||||
dirhs=$(wildcard $(1)/*.h)
|
dirhs=$(wildcard $(1)/*.h)
|
||||||
dircs=$(wildcard $(1)/*.c)
|
dircs=$(wildcard $(1)/*.c)
|
||||||
dirls=$(wildcard $(1)/*.ll)
|
|
||||||
dircs_to_prefxd_objs=\
|
dircs_to_prefxd_objs=\
|
||||||
$(patsubst $(1)/%.c,$(BIN_DIR)/$(2)%.o,$(call dircs,$1))
|
$(patsubst $(1)/%.c,$(BIN_DIR)/$(2)%.o,$(call dircs,$1))
|
||||||
|
|
||||||
$(CAR_FMW_BIN): $(CAR_FMW_ELF) $(BIN_DIR)
|
all: $(BIN_DIR)/car_hw.o
|
||||||
$(OBJ_COPY) -O binary $< $@
|
|
||||||
|
|
||||||
$(CAR_FMW_ELF): $(CAR_FMW_OBJ) $(LIB_STM32F4D_OBJ) \
|
$(BIN_DIR)/car_hw.o: $(CAR_FMW_OBJ) $(LIB_STM32F4D_OBJ) \
|
||||||
$(LIB_CMSIS_OBJ) $(LIB_STDPERIPH_OBJ) \
|
$(LIB_CMSIS_OBJ) $(LIB_STDPERIPH_OBJ) \
|
||||||
$(LIB_USB_DEV_OBJ) $(LIB_USB_OTG_OBJ) \
|
$(LIB_USB_DEV_OBJ) $(LIB_USB_OTG_OBJ) \
|
||||||
$(LIB_USB_VCP_OBJ) $(LIB_KOT)
|
$(LIB_USB_VCP_OBJ)
|
||||||
$(CC) $(CFLAGS) $^ -T $(SRC_DIR)/stm32_flash.ld -o $@
|
$(LD) -r $^ -o $@
|
||||||
|
|
||||||
CAR_OBJ_PREFIX=car_
|
|
||||||
|
|
||||||
$(CAR_FMW_OBJ): \
|
$(CAR_FMW_OBJ): \
|
||||||
$(call dircs_to_prefxd_objs,$(SRC_DIR),$(CAR_OBJ_PREFIX))
|
$(call dircs_to_prefxd_objs,$(SRC_DIR),$(CAR_OBJ_PREFIX))
|
||||||
@@ -84,33 +71,12 @@ $(BIN_DIR)/$(CAR_OBJ_PREFIX)%.o: $(SRC_DIR)/%.c \
|
|||||||
$(call dirhs,$(SRC_DIR))
|
$(call dirhs,$(SRC_DIR))
|
||||||
$(CC_ALL_DEPS)
|
$(CC_ALL_DEPS)
|
||||||
|
|
||||||
$(BIN_DIR):
|
|
||||||
mkdir -p $(BIN_DIR)
|
|
||||||
|
|
||||||
|
|
||||||
$(LIB_KOT): $(BIN_DIR)/kotlib.s
|
|
||||||
$(AS_ALL_DEPS)
|
|
||||||
|
|
||||||
$(BIN_DIR)/kotlib.s: $(BIN_DIR)/kotlib.ll
|
|
||||||
$(LL_ALL_DEPS)
|
|
||||||
|
|
||||||
$(BIN_DIR)/kotlib.ll: $(call dirls,$(SRC_KOT))
|
|
||||||
$(LLINK_ALL_DEPS)
|
|
||||||
|
|
||||||
flash: $(CAR_FMW_BIN)
|
|
||||||
$(ST_DIR)/st-flash write $(CAR_FMW_BIN) 0x8000000
|
|
||||||
|
|
||||||
debug:
|
|
||||||
-killall st-util
|
|
||||||
(setsid $(ST_DIR)/st-util 2>/dev/null 1>&2)&
|
|
||||||
$(GDB) $(CAR_FMW_ELF) -x $(ST_DIR)/../gdb.cmds
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf bin/*
|
rm $(BIN_DIR)/*
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
ctags -R *
|
ctags -R *
|
||||||
|
|
||||||
include $(LIB_DIR)/**/Makefile
|
include $(LIB_DIR)/**/Makefile
|
||||||
|
|
||||||
.PHONY: clean debug flash tags
|
.PHONY: tags clean
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user