瀏覽代碼

freertos cdc_msc_hid makefile compile

hathach 6 年之前
父節點
當前提交
8a5bd30fa6

+ 2 - 2
examples/device/cdc_msc_hid/src/main.c

@@ -49,8 +49,8 @@ static uint32_t blink_interval_ms = BLINK_NOT_MOUNTED;
 
 
 void led_blinking_task(void);
 void led_blinking_task(void);
 
 
-extern void cdc_task(void);
-extern void hid_task(void);
+void cdc_task(void);
+void hid_task(void);
 
 
 /*------------- MAIN -------------*/
 /*------------- MAIN -------------*/
 int main(void)
 int main(void)

+ 4 - 1
examples/device/cdc_msc_hid_freertos/Makefile

@@ -20,7 +20,10 @@ SRC_C += \
 	lib/FreeRTOS/Source/queue.c \
 	lib/FreeRTOS/Source/queue.c \
 	lib/FreeRTOS/Source/tasks.c \
 	lib/FreeRTOS/Source/tasks.c \
 	lib/FreeRTOS/Source/timers.c \
 	lib/FreeRTOS/Source/timers.c \
-	lib/FreeRTOS/Source/portable/GCC/$(FREERTOS_PORT)/port.c \
 	lib/FreeRTOS/Source/portable/MemMang/heap_4.c \
 	lib/FreeRTOS/Source/portable/MemMang/heap_4.c \
+	lib/FreeRTOS/Source/portable/GCC/$(FREERTOS_PORT)/port.c \
+
+# FreeRTOS (lto + Os) linker issue
+LDFLAGS += -Wl,--undefined=vTaskSwitchContext
 
 
 include ../../rules.mk
 include ../../rules.mk

+ 0 - 1
examples/device/cdc_msc_hid_freertos/ses/nrf5x/nrf5x.emProject

@@ -141,7 +141,6 @@
           <file file_name="../../../../../lib/FreeRTOS/Source/tasks.c" />
           <file file_name="../../../../../lib/FreeRTOS/Source/tasks.c" />
           <file file_name="../../../../../lib/FreeRTOS/Source/timers.c" />
           <file file_name="../../../../../lib/FreeRTOS/Source/timers.c" />
         </folder>
         </folder>
-        <file file_name="../../../../../lib/FreeRTOS/freertos_hook.c" />
       </folder>
       </folder>
     </folder>
     </folder>
     <configuration
     <configuration

+ 0 - 0
lib/FreeRTOS/freertos_hook.c → examples/device/cdc_msc_hid_freertos/src/freertos_hook.c


+ 2 - 2
examples/device/cdc_msc_hid_freertos/src/main.c

@@ -55,6 +55,8 @@ TimerHandle_t blink_tm;
 
 
 void led_blinky_cb(TimerHandle_t xTimer);
 void led_blinky_cb(TimerHandle_t xTimer);
 void usb_device_task(void* param);
 void usb_device_task(void* param);
+void cdc_task(void* params);
+void hid_task(void* params);
 
 
 /*------------- MAIN -------------*/
 /*------------- MAIN -------------*/
 int main(void)
 int main(void)
@@ -72,12 +74,10 @@ int main(void)
 
 
   // Create task
   // Create task
 #if CFG_TUD_CDC
 #if CFG_TUD_CDC
-  extern void cdc_task(void* params);
   xTaskCreate( cdc_task, "cdc", 128, NULL, configMAX_PRIORITIES-2, NULL);
   xTaskCreate( cdc_task, "cdc", 128, NULL, configMAX_PRIORITIES-2, NULL);
 #endif
 #endif
 
 
 #if CFG_TUD_HID
 #if CFG_TUD_HID
-  extern void hid_task(void* params);
   xTaskCreate( hid_task, "hid", 128, NULL, configMAX_PRIORITIES-2, NULL);
   xTaskCreate( hid_task, "hid", 128, NULL, configMAX_PRIORITIES-2, NULL);
 #endif
 #endif
 
 

+ 1 - 1
examples/device/cdc_msc_hid_freertos/ses/nrf5x/FreeRTOSConfig.h → hw/mcu/nordic/FreeRTOSConfig.h

@@ -69,7 +69,7 @@
 /* Hook function related definitions. */
 /* Hook function related definitions. */
 #define configUSE_IDLE_HOOK                    0
 #define configUSE_IDLE_HOOK                    0
 #define configUSE_TICK_HOOK                    0
 #define configUSE_TICK_HOOK                    0
-#define configUSE_MALLOC_FAILED_HOOK           1
+#define configUSE_MALLOC_FAILED_HOOK           0 // cause nested extern warning
 #define configCHECK_FOR_STACK_OVERFLOW         2
 #define configCHECK_FOR_STACK_OVERFLOW         2
 
 
 /* Run time and task stats gathering related definitions. */
 /* Run time and task stats gathering related definitions. */