Difference: CmsisRtos (5 vs. 6)

Revision 62020-04-20 - PeterSchmid

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
%DASHBOARD{ section="banner"
Line: 6 to 6
  title="CMSIS-RTOS for Mecrisp-Cube" titlestyle="color:#F00000;" }%
Changed:
<
<
Intro
>
>
Intro
 

Why a Preemptive Real Time Operating System?

Forth systems traditionally make use of cooperative multitasking. It is very simple and clever. But it has its limits. If you write all your software by yourself, each software part can be cooperative. But if you want to benefit from middleware written by somebody else (and most probably not written in Forth), you can be sure that software is not cooperative (in the context of multitasking). Forth wants to rule your system. I would like to have a Forth system that is cooperative. It should extend the system, to make it interactive and easy to use. The Forth itself is only a thread and can be used as some sort of CLI for testing purposes or could be the main part of the application.

Changed:
<
<
Contents
>
>
Contents
 
Line: 69 to 69
  movs tos, 42 pop {r0-r3, pc}
Added:
>
>
 
Changed:
<
<
>
>
 

CMSIS-RTOS API

Added:
>
>
The C function prototype for osThreadNew looks like this:
osThreadId_t osThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr);

param[in]     func          thread function.
param[in]     argument      pointer that is passed to the thread function as start argument.
param[in]     attr          thread attributes; NULL: default values.

return        thread ID for reference by other functions or NULL in case of error.

The parameter order for the Forth Word is the same: a1 is func, a2 is argument, and a3 is attr.

osThreadNew  ( a1 a2 a3 -- u )   Create a thread and add it to Active Threads.

See also osThreadNew

RTOS Support Functions

 
  • osNewDataStack
  • xPortGetFreeHeapSize

Kernel Management Functions

Added:
>
>
Kernel Information and Control
 
  • osKernelGetTickCount
  • osKernelGetTickFreq
  • osKernelGetSysTimerCount
  • osKernelGetSysTimerFreq

Generic Wait Functions

Added:
>
>
Generic Wait Functions
 
  • osDelay
  • osDelayUntil

Thread Management

Added:
>
>
Thread Management
 
  • osThreadNew
  • osThreadGetId
  • osThreadGetState
Line: 102 to 126
 
  • osThreadEnumerate

Timer Management Functions

Added:
>
>
Timer Management
 
  • osTimerNew
  • osTimerGetName
  • osTimerStart
Line: 110 to 135
 
  • osTimerDelete

Event Flags Management Functions

Added:
>
>
Event Flags
 
  • osEventFlagsNew
  • osEventFlagsSet
  • osEventFlagsClear
Line: 118 to 144
 
  • osEventFlagsDelete

Mutex Management Functions

Added:
>
>
Mutex Management
 
  • osMutexNew
  • osMutexAcquire
  • osMutexRelease
Line: 125 to 152
 
  • osMutexDelete

Semaphore Management Functions

Added:
>
>
Semaphores
 
  • osSemaphoreNew
  • osSemaphoreAcquire
  • osSemaphoreRelease
Line: 132 to 160
 
  • osSemaphoreDelete

Message Queue Management Functions

Added:
>
>
Message Queue
 
  • osMessageQueueNew
  • osMessageQueuePut
  • osMessageQueueGet
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback