From 9a1d12ae2edfd5bbf7db7e9269deb337553345e4 Mon Sep 17 00:00:00 2001 From: t-moe Date: Fri, 3 Apr 2015 22:16:02 +0200 Subject: [PATCH] Refactored discovery, to use new project structure. Almost ready. --- common/lowlevel/ll_system.h | 1 + common/lowlevel/ll_tft.h | 1 + discovery/Makefile | 17 ++++++++--- discovery/src/ll_system.c | 60 +++++++++++++++++++++++++++++++++++++ discovery/src/ll_tft.c | 33 ++++++++++++++++++++ discovery/src/main.c | 48 ++++------------------------- discovery/src/main.h | 12 -------- discovery/src/usbh_usr.c | 7 +++-- emulator/Makefile | 2 +- 9 files changed, 118 insertions(+), 63 deletions(-) create mode 100644 discovery/src/ll_system.c create mode 100644 discovery/src/ll_tft.c delete mode 100644 discovery/src/main.h diff --git a/common/lowlevel/ll_system.h b/common/lowlevel/ll_system.h index 3f427da..b845260 100644 --- a/common/lowlevel/ll_system.h +++ b/common/lowlevel/ll_system.h @@ -1,3 +1,4 @@ +#include #include bool ll_system_init(); diff --git a/common/lowlevel/ll_tft.h b/common/lowlevel/ll_tft.h index 84ea107..94a0990 100644 --- a/common/lowlevel/ll_tft.h +++ b/common/lowlevel/ll_tft.h @@ -1,4 +1,5 @@ #include +#include bool ll_tft_init(); void ll_tft_clear(uint16_t color); diff --git a/discovery/Makefile b/discovery/Makefile index 60f2e88..08b4fd3 100644 --- a/discovery/Makefile +++ b/discovery/Makefile @@ -56,18 +56,21 @@ LDFLAGS+=$(addprefix -l,$(LIBS)) #Finding Input files CFILES=$(shell find $(SRC_DIR) -name '*.c') SFILES=$(SRC_DIR)/startup.s +COMMON_CFILES=$(shell find $(COMMON_DIR) -name '*.c') + #Generate corresponding obj names SOBJS=$(SFILES:.s=.o) COBJS=$(CFILES:.c=.o) OBJS=$(patsubst $(SRC_DIR)/%,$(OBJ_DIR)/%,$(SOBJS) $(COBJS)) - -#Keep the objects files -.SECONDARY: $(OBJS) +COMMON_OBJS=$(patsubst $(COMMON_DIR)/%,$(OBJ_DIR)/%,$(COMMON_CFILES:.c=.o)) #Mark targets which are not "file-targets" .PHONY: all debug flash start stop backup clean +#keep objs files +.SECONDARY: $(OBJS) $(COMMON_OBJS) + # List of all binaries to build all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).bin @@ -78,7 +81,7 @@ stop: $(STUTIL) stop #objects to elf -%.elf : $(OBJS) +%.elf : $(OBJS) $(COMMON_OBJS) @echo Linking... $(MKDIR) $(BUILD_DIR) $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -T./utils/stm32_flash.ld -Wl,-Map,$(BUILD_DIR)/$(TARGET).map $^ $(LDFLAGS) @@ -100,6 +103,12 @@ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(MKDIR) $(OBJ_DIR) $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< +#common C files to objects +$(OBJ_DIR)/%.o: $(COMMON_DIR)/%.c + @echo Compiling Common file $<... + $(MKDIR) $(dir $(patsubst $(COMMON_DIR)/%,$(OBJ_DIR)/%, $<)) + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< + #Clean Obj files and builded stuff clean: $(RMDIR) $(BUILD_DIR) $(OBJ_DIR) diff --git a/discovery/src/ll_system.c b/discovery/src/ll_system.c new file mode 100644 index 0000000..db5307e --- /dev/null +++ b/discovery/src/ll_system.c @@ -0,0 +1,60 @@ +#include "ll_system.h" +#include "stm32f4xx.h" +#include "stm32f4_discovery.h" +#include + +#include "usb_hcd_int.h" +#include "usbh_usr.h" +#include "usbh_core.h" +#include "usbh_msc_core.h" + + + + +USB_OTG_CORE_HANDLE USB_OTG_Core; +USBH_HOST USB_Host; +RCC_ClocksTypeDef RCC_Clocks; + + +void SysTick_Handler(void) +{ + USBH_LL_systick(); +} + +void TIM2_IRQHandler(void) +{ + USB_OTG_BSP_TimerIRQ(); +} + + +void OTG_FS_IRQHandler(void) +{ + USBH_OTG_ISR_Handler(&USB_OTG_Core); +} + + +bool ll_system_init(void) +{ + /* Initialize LEDS */ + STM_EVAL_LEDInit(LED3); + STM_EVAL_LEDInit(LED4); + STM_EVAL_LEDInit(LED5); + STM_EVAL_LEDInit(LED6); + STM_EVAL_PBInit(BUTTON_USER, BUTTON_MODE_GPIO); + + /* Blue Led On: start of application */ + STM_EVAL_LEDOn(LED6); + + /* SysTick end of count event each 1ms */ + RCC_GetClocksFreq(&RCC_Clocks); //we run at 168mhz :) + SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000); + + /* Init Host Library */ + USBH_Init(&USB_OTG_Core, USB_OTG_FS_CORE_ID, &USB_Host, &USBH_MSC_cb, &USR_Callbacks); + + return true; +} + +void ll_system_delay(uint32_t msec) { + USB_OTG_BSP_mDelay(msec); +} diff --git a/discovery/src/ll_tft.c b/discovery/src/ll_tft.c new file mode 100644 index 0000000..ae36ace --- /dev/null +++ b/discovery/src/ll_tft.c @@ -0,0 +1,33 @@ +#include "ll_tft.h" + +bool ll_tft_init() { + return false; +} + +void ll_tft_clear(uint16_t color) { + +} + +void ll_tft_draw_line(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color) { + +} + +void ll_tft_draw_pixel(uint16_t x,uint16_t y,uint16_t color) { + +} + +void ll_tft_draw_rectangle(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2, uint16_t color) { + +} + +void ll_tft_fill_rectangle(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2, uint16_t color) { + +} + +void ll_tft_draw_bitmap_unscaled(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint8_t* dat) { + +} + + + + diff --git a/discovery/src/main.c b/discovery/src/main.c index e8e950c..4703ec0 100644 --- a/discovery/src/main.c +++ b/discovery/src/main.c @@ -1,51 +1,13 @@ -#include "main.h" -#include "pixy.h" - - USB_OTG_CORE_HANDLE USB_OTG_Core; - USBH_HOST USB_Host; -RCC_ClocksTypeDef RCC_Clocks; - - -void SysTick_Handler(void) -{ - USBH_LL_systick(); -} - -void TIM2_IRQHandler(void) -{ - USB_OTG_BSP_TimerIRQ(); -} - - -void OTG_FS_IRQHandler(void) -{ - USBH_OTG_ISR_Handler(&USB_OTG_Core); -} - +#include "app.h" int main(void) { - /* Initialize LEDS */ - STM_EVAL_LEDInit(LED3); - STM_EVAL_LEDInit(LED4); - STM_EVAL_LEDInit(LED5); - STM_EVAL_LEDInit(LED6); - STM_EVAL_PBInit(BUTTON_USER, BUTTON_MODE_GPIO); - - /* Blue Led On: start of application */ - STM_EVAL_LEDOn(LED6); - - /* SysTick end of count event each 1ms */ - RCC_GetClocksFreq(&RCC_Clocks); //we run at 168mhz :) - SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000); - - /* Init Host Library */ - USBH_Init(&USB_OTG_Core, USB_OTG_FS_CORE_ID, &USB_Host, &USBH_MSC_cb, &USR_Callbacks); - + app_init(); + while (1) { - /* Host Task handler */ - USBH_Process(&USB_OTG_Core, &USB_Host); + app_process(); + //USBH_Process(&USB_OTG_Core, &USB_Host); } } diff --git a/discovery/src/main.h b/discovery/src/main.h deleted file mode 100644 index 616b730..0000000 --- a/discovery/src/main.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __MAIN_H -#define __MAIN_H - -#include "stm32f4xx.h" -#include "stm32f4_discovery.h" -#include - - #include "usb_hcd_int.h" - #include "usbh_usr.h" - #include "usbh_core.h" - #include "usbh_msc_core.h" -#endif diff --git a/discovery/src/usbh_usr.c b/discovery/src/usbh_usr.c index 2cec86f..909a876 100644 --- a/discovery/src/usbh_usr.c +++ b/discovery/src/usbh_usr.c @@ -221,14 +221,15 @@ void USBH_USR_OverCurrentDetected (void) * @retval Staus */ -int colorind; +/*int colorind; const uint32_t colors [] = {0xFF0000, 0x00FF00,0x0000FF,0xFFFF00,0x00FFFF,0xFF00FF,0xFFFFFF,0x000000}; const int num_colors = sizeof(colors)/sizeof(uint32_t); +*/ int USBH_USR_MSC_Application(void) { - if(colorind==0) { +/* if(colorind==0) { pixy_led_set_max_current(5); } @@ -237,7 +238,7 @@ int USBH_USR_MSC_Application(void) return_value = pixy_command("led_set", INT32(colors[colorind++]), END_OUT_ARGS, &response, END_IN_ARGS); colorind%=num_colors; USB_OTG_BSP_mDelay(500); - +*/ return 0; } diff --git a/emulator/Makefile b/emulator/Makefile index d3c1965..5917112 100644 --- a/emulator/Makefile +++ b/emulator/Makefile @@ -49,7 +49,7 @@ COMMON_OBJS=$(patsubst $(COMMON_DIR)/%,$(OBJ_DIR)/%,$(COMMON_CFILES:.c=.o)) .PHONY: all clean run debug # List of all binaries to build -all: $(BUILD_DIR)/$(TARGET) $(OBJS) $(QT_LIB) +all: $(BUILD_DIR)/$(TARGET) run: all ./build/emulator