Exemplo n.º 1
0
// Check if Kernel has been started
static uint32_t os_kernel_is_active(void)
{
    static uint8_t os_kernel_active = 0U;

    if (os_kernel_active == 0U) {
        if (osKernelGetState() > osKernelReady) {
            os_kernel_active = 1U;
        }
    }
    return (uint32_t)os_kernel_active;
}
Exemplo n.º 2
0
int main (void) {

  SystemCoreClockUpdate();
  osKernelInitialize();                 // Initialize CMSIS-RTOS
  osThreadNew(app_main, NULL, NULL);    // Create application main thread
  if (osKernelGetState() == osKernelReady) {
    osKernelStart();                    // Start thread execution
  }

  for (;;) {};
}
Exemplo n.º 3
0
/// Start the RTOS Kernel scheduler.
osStatus_t osKernelStart (void) {
  osStatus_t status;

  EvrRtxKernelStart();
  if (IsIrqMode() || IsIrqMasked()) {
    EvrRtxKernelError((int32_t)osErrorISR);
    status = osErrorISR;
  } else {
    /* Call the pre-start event (from unprivileged mode) if the handler exists
    * and the kernel is not running. */
    /* FIXME osEventObs needs to be readable but not writable from unprivileged
    * code. */
    if (osKernelGetState() != osKernelRunning && osEventObs && osEventObs->pre_start) {
      osEventObs->pre_start();
    }
    status = __svcKernelStart();
  }
  return status;
}