Просмотр исходного кода

add board_noos_millis() for blinky

hathach 7 лет назад
Родитель
Сommit
df1aac44b8

+ 4 - 3
examples/device/cdc_msc_hid/src/main.c

@@ -193,11 +193,12 @@ void tud_umount_cb(void)
 //--------------------------------------------------------------------+
 void led_blinking_task(void)
 {
-  static tu_timeout_t tm = { .start = 0, .interval = 1000 }; // Blink every 1000 ms
+  static uint32_t start_ms = 0;
   static bool led_state = false;
 
-  if ( !tu_timeout_expired(&tm) ) return; // not enough time
-  tu_timeout_reset(&tm);
+  // Blink every 1000 ms
+  if ( board_noos_millis() < start_ms + 1000) return; // not enough time
+  start_ms += 1000;
 
   board_led_control(led_state);
   led_state = 1 - led_state; // toggle

+ 3 - 0
hw/bsp/board.h

@@ -64,6 +64,9 @@ int board_uart_read(uint8_t* buf, int len);
 // Send characters to UART
 int board_uart_write(void const * buf, int len);
 
+// Get current milliseconds with no rtos configure (TUSB_CFG_OS = OPT_OS_NONE)
+uint32_t board_noos_millis(void);
+
 //--------------------------------------------------------------------+
 // Helper functions
 //--------------------------------------------------------------------+

+ 7 - 1
hw/bsp/ea4088qs/board_ea4088qs.c

@@ -81,7 +81,8 @@ void board_init(void)
   SystemCoreClockUpdate();
 
 #if CFG_TUSB_OS == OPT_OS_NONE
-  SysTick_Config(SystemCoreClock / BOARD_TICKS_HZ);
+  // 1ms tick timer
+  SysTick_Config(SystemCoreClock / 1000);
 #elif CFG_TUSB_OS == OPT_OS_FREERTOS
   // If freeRTOS is used, IRQ priority is limit by max syscall ( smaller is higher )
   NVIC_SetPriority(USB_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY );
@@ -174,6 +175,11 @@ uint32_t tusb_hal_millis(void)
   return board_tick2ms(system_ticks);
 }
 
+uint32_t board_noos_millis(void)
+{
+  return system_ticks;
+}
+
 #endif
 
 #endif

+ 7 - 1
hw/bsp/ea4357/board_ea4357.c

@@ -74,6 +74,11 @@ uint32_t tusb_hal_millis(void)
   return board_tick2ms(system_ticks);
 }
 
+uint32_t board_noos_millis(void)
+{
+  return system_ticks;
+}
+
 #endif
 
 /*------------------------------------------------------------------*/
@@ -126,7 +131,8 @@ void board_init(void)
   SystemCoreClockUpdate();
 
 #if CFG_TUSB_OS == OPT_OS_NONE
-  SysTick_Config( SystemCoreClock / BOARD_TICKS_HZ );
+  // 1ms tick timer
+  SysTick_Config(SystemCoreClock / 1000);
 #endif
 
   Chip_GPIO_Init(LPC_GPIO_PORT);

+ 10 - 1
hw/bsp/lpcxpresso11u68/board_lpcxpresso11u68.c

@@ -71,7 +71,11 @@ void board_init(void)
   SystemCoreClockUpdate();
 
 #if CFG_TUSB_OS == OPT_OS_NONE
-  SysTick_Config(SystemCoreClock / BOARD_TICKS_HZ); // 1 msec tick timer
+  // 1ms tick timer
+  SysTick_Config(SystemCoreClock / 1000);
+#elif CFG_TUSB_OS == OPT_OS_FREERTOS
+  // If freeRTOS is used, IRQ priority is limit by max syscall ( smaller is higher )
+  NVIC_SetPriority(USB0_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY );
 #endif
 
   Chip_GPIO_Init(LPC_GPIO);
@@ -106,6 +110,11 @@ uint32_t tusb_hal_millis(void)
   return board_tick2ms(system_ticks);
 }
 
+uint32_t board_noos_millis(void)
+{
+  return system_ticks;
+}
+
 #endif
 
 //--------------------------------------------------------------------+

+ 13 - 0
hw/bsp/lpcxpresso1347/board_lpcxpresso1347.c

@@ -87,6 +87,14 @@ void board_init(void)
   SysTick_Config(SystemCoreClock / BOARD_TICKS_HZ); // 1 msec tick timer
 #endif
 
+#if CFG_TUSB_OS == OPT_OS_NONE
+  // 1ms tick timer
+  SysTick_Config(SystemCoreClock / 1000);
+#elif CFG_TUSB_OS == OPT_OS_FREERTOS
+  // If freeRTOS is used, IRQ priority is limit by max syscall ( smaller is higher )
+  NVIC_SetPriority(USB0_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY );
+#endif
+
   Chip_GPIO_Init(LPC_GPIO_PORT);
 
   //------------- LED -------------//
@@ -119,6 +127,11 @@ uint32_t tusb_hal_millis(void)
   return board_tick2ms(system_ticks);
 }
 
+uint32_t board_noos_millis(void)
+{
+  return system_ticks;
+}
+
 #endif
 
 //--------------------------------------------------------------------+

+ 7 - 1
hw/bsp/lpcxpresso1769/board_lpcxpresso1769.c

@@ -85,7 +85,8 @@ void board_init(void)
   SystemCoreClockUpdate();
 
 #if CFG_TUSB_OS == OPT_OS_NONE
-  SysTick_Config(SystemCoreClock / BOARD_TICKS_HZ);
+  // 1ms tick timer
+  SysTick_Config(SystemCoreClock / 1000);
 #elif CFG_TUSB_OS == OPT_OS_FREERTOS
   // If freeRTOS is used, IRQ priority is limit by max syscall ( smaller is higher )
   NVIC_SetPriority(USB_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY );
@@ -162,6 +163,11 @@ uint32_t tusb_hal_millis(void)
   return board_tick2ms(system_ticks);
 }
 
+uint32_t board_noos_millis(void)
+{
+  return system_ticks;
+}
+
 #endif
 
 //--------------------------------------------------------------------+

+ 7 - 1
hw/bsp/mcb1800/board_mcb1800.c

@@ -95,7 +95,8 @@ void board_init(void)
   SystemCoreClockUpdate();
 
 #if CFG_TUSB_OS == OPT_OS_NONE
-  SysTick_Config( SystemCoreClock / BOARD_TICKS_HZ );
+  // 1ms tick timer
+  SysTick_Config(SystemCoreClock / 1000);
 #endif
 
   Chip_GPIO_Init(LPC_GPIO_PORT);
@@ -240,6 +241,11 @@ uint32_t tusb_hal_millis(void)
   return board_tick2ms(system_ticks);
 }
 
+uint32_t board_noos_millis(void)
+{
+  return system_ticks;
+}
+
 #endif
 
 #endif

+ 9 - 2
hw/bsp/metro_m0_express/board_metro_m0_express.c

@@ -66,8 +66,8 @@ void board_init(void)
   gpio_set_pin_level(LED_PIN, 0);
 
 #if CFG_TUSB_OS  == OPT_OS_NONE
-  // Tick init, samd SystemCoreClock may not correct
-  SysTick_Config(CONF_CPU_FREQUENCY/1000);
+  // 1ms tick timer (samd SystemCoreClock may not correct)
+  SysTick_Config(CONF_CPU_FREQUENCY / 1000);
 #endif
 
   /* USB Clock init
@@ -119,4 +119,11 @@ uint32_t tusb_hal_millis(void)
 {
   return board_tick2ms(system_ticks);
 }
+
+uint32_t board_noos_millis(void)
+{
+  return system_ticks;
+}
+
+
 #endif

+ 7 - 3
hw/bsp/metro_m4_express/board_metro_m4_express.c

@@ -63,10 +63,9 @@ void board_init(void)
   gpio_set_pin_direction(LED_PIN, GPIO_DIRECTION_OUT);
   gpio_set_pin_level(LED_PIN, 0);
 
-  // Systick init
 #if CFG_TUSB_OS  == OPT_OS_NONE
-  // Tick init, samd SystemCoreClock may not correct
-  SysTick_Config(SystemCoreClock / 1000);
+  // 1ms tick timer (samd SystemCoreClock may not correct)
+  SysTick_Config(CONF_CPU_FREQUENCY / 1000);
 #endif
 
   /* USB Clock init
@@ -109,4 +108,9 @@ uint32_t tusb_hal_millis(void)
 {
   return board_tick2ms(system_ticks);
 }
+
+uint32_t board_noos_millis(void)
+{
+  return system_ticks;
+}
 #endif

+ 7 - 1
hw/bsp/pca10056/board_pca10056.c

@@ -65,6 +65,12 @@ uint32_t tusb_hal_millis(void)
 {
   return board_tick2ms(system_ticks);
 }
+
+uint32_t board_noos_millis(void)
+{
+  return system_ticks;
+}
+
 #endif
 
 /*------------------------------------------------------------------*/
@@ -89,7 +95,7 @@ void board_init(void)
   for(uint8_t i=0; i<BOARD_BUTTON_COUNT; i++) nrf_gpio_cfg_input(_button_pins[i], NRF_GPIO_PIN_PULLUP);
 
 #if CFG_TUSB_OS  == OPT_OS_NONE
-  // Tick init
+  // 1ms tick timer
   SysTick_Config(SystemCoreClock/1000);
 #endif
 

+ 8 - 2
hw/bsp/stm32f303disc/board_stm32f303disc.c

@@ -55,9 +55,10 @@ void board_init(void)
 
   // Notify runtime of frequency change.
   SystemCoreClockUpdate();
-  // Systick init
+
   #if CFG_TUSB_OS  == OPT_OS_NONE
-    SysTick_Config(SystemCoreClock / 1000);
+  // 1ms tick timer
+  SysTick_Config(SystemCoreClock / 1000);
   #endif
 
   /* -1- Enable GPIOE Clock (to be able to program the configuration registers) */
@@ -112,6 +113,11 @@ uint32_t tusb_hal_millis(void)
 {
   return board_tick2ms(system_ticks);
 }
+
+uint32_t board_noos_millis(void)
+{
+  return system_ticks;
+}
 #endif
 
 void HardFault_Handler (void)

+ 8 - 2
hw/bsp/stm32f407g_disc1/board_stm32f407g_disc1.c

@@ -60,9 +60,10 @@ void board_init(void)
 
   // Notify runtime of frequency change.
   SystemCoreClockUpdate();
-  // Systick init
+
   #if CFG_TUSB_OS  == OPT_OS_NONE
-    SysTick_Config(SystemCoreClock / 1000);
+  // 1ms tick timer
+  SysTick_Config(SystemCoreClock / 1000);
   #endif
 
   RCC->AHB2ENR |= RCC_AHB2ENR_OTGFSEN;
@@ -108,6 +109,11 @@ uint32_t tusb_hal_millis(void)
 {
   return board_tick2ms(system_ticks);
 }
+
+uint32_t board_noos_millis(void)
+{
+  return system_ticks;
+}
 #endif
 
 void HardFault_Handler (void)

+ 2 - 2
src/common/tusb_timeout.h

@@ -28,11 +28,11 @@
  *  \defgroup Group_TimeoutTimer timeout timer
  *  @{ */
 
-
 #ifndef _TUSB_TIMEOUT_H_
 #define _TUSB_TIMEOUT_H_
 
-#include "tusb_compiler.h"
+#include <stdbool.h>
+#include <stdint.h>
 
 #ifdef __cplusplus
 extern "C" {

+ 11 - 0
tools/build_all.py

@@ -0,0 +1,11 @@
+import os
+import shutil
+import sys
+import subprocess
+import time
+
+all_boards = ["metro_m0_express", "metro_m4_express", "pca10056", "stm32f407g_disc1"]
+
+for board in all_boards:
+    subprocess.run("make -j2 -C examples/device/cdc_msc_hid BOARD={} clean".format(board), shell=True)
+    subprocess.run("make -j2 -C examples/device/cdc_msc_hid BOARD={} all".format(board), shell=True)