CodeLite: add a small delay during the debugger initialization.
[bertos.git] / examples / stm32p103 / main.c
index 83481f8c00ac6ab037d663b2939531f00da78abf..483852e2148263abc988f5ca505c9402424687c0 100644 (file)
 
 #define LED_PIN                    (1 << 12)
 
-int main(void)
+static void led_init(void)
 {
-       IRQ_ENABLE;
-       timer_init();
-
-       /* Enable clocking on RCC APB2 */
-       RCC->AHBENR |= 1;
        /* Enable clocking on GPIOA and GPIOC */
-       RCC->APB2ENR |= RCC_APB2_GPIOA | RCC_APB2_GPIOC;
-
+       RCC->APB2ENR |= RCC_APB2_GPIOC;
+       /* Configure the LED pin as GPIO */
        stm32_gpioPinConfig((struct stm32_gpio *)GPIOC_BASE,
                        LED_PIN, GPIO_MODE_OUT_PP, GPIO_SPEED_50MHZ);
-       while(1)
+}
+
+static void NORETURN led_process(void)
+{
+       int i;
+
+       for (i = 0; ; i = !i)
        {
-               ticks_t clock = timer_clock_unlocked();
+               stm32_gpioPinWrite((struct stm32_gpio *)GPIOC_BASE, LED_PIN, i);
+               timer_delay(250);
+       }
+}
+
+int main(void)
+{
+       int i;
 
-               if (clock & 0x10)
-                       stm32_gpioPinWrite((struct stm32_gpio *)GPIOC_BASE, LED_PIN, 1);
-               else
-                       stm32_gpioPinWrite((struct stm32_gpio *)GPIOC_BASE, LED_PIN, 0);
+       IRQ_ENABLE;
+       kdbg_init();
+       timer_init();
+       proc_init();
+       led_init();
+
+       proc_new(led_process, NULL, KERN_MINSTACKSIZE, NULL);
+       for (i = 0; ; i = !i)
+       {
+               kputs("BeRTOS up & running!\n");
+               timer_delay(500);
        }
 }