From 59c1b4b42773075690ae5a6c4262a18425e88cd7 Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 29 Jan 2019 19:39:34 +0700 Subject: [PATCH] zero init internal class/device data --- examples/device/cdc_msc_hid/Makefile | 8 +++++++- src/class/cdc/cdc_device.c | 2 +- src/class/hid/hid_device.c | 2 +- src/class/msc/msc_device.c | 2 +- src/device/usbd.c | 2 +- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/examples/device/cdc_msc_hid/Makefile b/examples/device/cdc_msc_hid/Makefile index 50a57d44..983365fc 100644 --- a/examples/device/cdc_msc_hid/Makefile +++ b/examples/device/cdc_msc_hid/Makefile @@ -20,6 +20,7 @@ CC = $(CROSS_COMPILE)gcc CXX = $(CROSS_COMPILE)g++ LD = $(CROSS_COMPILE)ld OBJCOPY = $(CROSS_COMPILE)objcopy +SIZE = $(CROSS_COMPILE)size MKDIR = mkdir SED = sed CP = cp @@ -87,7 +88,7 @@ SRC_C += $(LIB_SOURCE) OBJ += $(addprefix $(BUILD)/obj/, $(SRC_C:.c=.o)) OBJ += $(addprefix $(BUILD)/obj/, $(SRC_S:.S=.o)) -all: $(BUILD)/$(BOARD)-firmware.bin +all: $(BUILD)/$(BOARD)-firmware.bin size OBJ_DIRS = $(sort $(dir $(OBJ))) $(OBJ): | $(OBJ_DIRS) @@ -123,5 +124,10 @@ $(BUILD)/obj/%.o: %.S @echo AS $(notdir $@) @$(CC) -x assembler-with-cpp $(ASFLAGS) -c -o $@ $< +size: $(BUILD)/$(BOARD)-firmware.elf + -@echo '' + @$(SIZE) $< + -@echo '' + clean: rm -rf build-$(BOARD) diff --git a/src/class/cdc/cdc_device.c b/src/class/cdc/cdc_device.c index b8678c1c..0cfb2377 100644 --- a/src/class/cdc/cdc_device.c +++ b/src/class/cdc/cdc_device.c @@ -85,7 +85,7 @@ typedef struct //--------------------------------------------------------------------+ // INTERNAL OBJECT & FUNCTION DECLARATION //--------------------------------------------------------------------+ -CFG_TUSB_MEM_SECTION static cdcd_interface_t _cdcd_itf[CFG_TUD_CDC]; +CFG_TUSB_MEM_SECTION static cdcd_interface_t _cdcd_itf[CFG_TUD_CDC] = { { 0 } }; //--------------------------------------------------------------------+ // APPLICATION API diff --git a/src/class/hid/hid_device.c b/src/class/hid/hid_device.c index 3b882f70..5f6843d9 100644 --- a/src/class/hid/hid_device.c +++ b/src/class/hid/hid_device.c @@ -91,7 +91,7 @@ typedef struct hidd_interface_t* itf; } hidd_report_t ; -CFG_TUSB_MEM_SECTION static hidd_interface_t _hidd_itf[ITF_COUNT]; +CFG_TUSB_MEM_SECTION static hidd_interface_t _hidd_itf[ITF_COUNT] = { { 0 } }; #if CFG_TUD_HID_KEYBOARD diff --git a/src/class/msc/msc_device.c b/src/class/msc/msc_device.c index 5d275841..76d647dc 100644 --- a/src/class/msc/msc_device.c +++ b/src/class/msc/msc_device.c @@ -83,7 +83,7 @@ typedef struct { uint8_t add_sense_qualifier; }mscd_interface_t; -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN static mscd_interface_t _mscd_itf; +CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN static mscd_interface_t _mscd_itf = { 0 }; CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN static uint8_t _mscd_buf[CFG_TUD_MSC_BUFSIZE]; //--------------------------------------------------------------------+ diff --git a/src/device/usbd.c b/src/device/usbd.c index d4eccf0c..5baea846 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -61,7 +61,7 @@ typedef struct { }usbd_device_t; -static usbd_device_t _usbd_dev; +static usbd_device_t _usbd_dev = { 0 }; // Auto descriptor is enabled, descriptor set point to auto generated one #if CFG_TUD_DESC_AUTO