From 9f95ff5b6ba01db09552b84a0ab79607060a2666 Mon Sep 17 00:00:00 2001 From: Ali Labbene Date: Wed, 11 Dec 2019 08:59:21 +0100 Subject: Official ARM version: v5.4.0 Add CMSIS V5.4.0, please refer to index.html available under \docs folder. Note: content of \CMSIS\Core\Include has been copied under \Include to keep the same structure used in existing projects, and thus avoid projects mass update Note: the following components have been removed from ARM original delivery (as not used in ST packages) - CMSIS_EW2018.pdf - .gitattributes - .gitignore - \Device - \CMSIS - \CoreValidation - \DAP - \Documentation - \DoxyGen - \Driver - \Pack - \RTOS\CMSIS_RTOS_Tutorial.pdf - \RTOS\RTX - \RTOS\Template - \RTOS2\RTX - \Utilities - All ARM/GCC projects files are deleted from \DSP, \RTOS and \RTOS2 Change-Id: Ia026c3f0f0d016627a4fb5a9032852c33d24b4d3 --- docs/RTOS/html/dirstructfiles.html | 496 +++++++++++++++++++++++++++++++++++++ 1 file changed, 496 insertions(+) create mode 100644 docs/RTOS/html/dirstructfiles.html (limited to 'docs/RTOS/html/dirstructfiles.html') diff --git a/docs/RTOS/html/dirstructfiles.html b/docs/RTOS/html/dirstructfiles.html new file mode 100644 index 0000000..fd51c8c --- /dev/null +++ b/docs/RTOS/html/dirstructfiles.html @@ -0,0 +1,496 @@ + + + + + +Directory Structure and File Overview +CMSIS-RTOS: Directory Structure and File Overview + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-RTOS +  Version 1.03 +
+
Real-Time Operating System: API and RTX Reference Implementation.
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Directory Structure and File Overview
+
+
+

The following section provides an overview of the directory structure and the files that are relevant for the user's for CMSIS-RTOS RTX.

+

+CMSIS-RTOS RTX Directory Structure

+

The CMSIS-RTOS RTX is delivered in source code and several examples are provided.

+ + + + + + + + + + + + + +
Directory Content
INC The include files for CMSIS-RTOS RTX. cmsis_os.h is the central include file for user applications.
LIB CMSIS-RTOS RTX library files for ARMCC, GCC, and IAR Compiler.
SRC Source code of CMSIS-RTOS RTX library along with project files for ARMCC, GCC, and IAR Compiler.
Templates CMSIS-RTOS RTX configuration file (RTX_Conf_CM.c).
UserCode Templates Template files for creating application projects with CMSIS-RTOS RTX.
+

+CMSIS-RTOS RTX Library Files

+

The CMSIS-RTOS RTX Library is available pre-compiled for ARMCC, GCC, and IAR C/C++ Compilers and supports all Cortex-M processor variants in every configuration.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Library File Processor Configuration
LIB/ARM/RTX_CM0.lib CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M0 and M1, little-endian.
LIB/ARM/RTX_CM0_B.lib CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M0 and M1, big-endian.
LIB/ARM/RTX_CM3.lib CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M3, M4, and M7 without FPU, little-endian.
LIB/ARM/RTX_CM3_B.lib CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M3, M4, and M7 without FPU, big-endian.
LIB/ARM/RTX_CM4.lib CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M4 and M7 with FPU, little-endian.
LIB/ARM/RTX_CM4_B.lib CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M4 and M7 with FPU, big-endian.
LIB/GCC/libRTX_CM0.a CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M0 and M1, little-endian.
LIB/GCC/libRTX_CM0_B.a CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M0 and M1, big-endian.
LIB/GCC/libRTX_CM3.a CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M3, M4, and M7 without FPU, little-endian.
LIB/GCC/libRTX_CM3_B.a CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M3, M4, and M7 without FPU, big-endian.
LIB/GCC/libRTX_CM4.a CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M4 and M7 with FPU, little-endian.
LIB/GCC/libRTX_CM4_B.a CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M4 and M7 with FPU, big-endian.
LIB/IAR/RTX_CM0.lib CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M0 and M1, little-endian.
LIB/IAR/RTX_CM0_B.lib CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M0 and M1, big-endian.
LIB/IAR/RTX_CM3.lib CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M3, M4, and M7 without FPU, little-endian.
LIB/IAR/RTX_CM3_B.lib CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M3, M4, and M7 without FPU, big-endian.
LIB/IAR/RTX_CM4.lib CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M4 and M7 with FPU, little-endian.
LIB/IAR/RTX_CM4_B.lib CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M4 and M7 with FPU, big-endian.
+

+Configuration File RTX_Conf_CM.c

+
/*----------------------------------------------------------------------------
+
* CMSIS-RTOS - RTX
+
*----------------------------------------------------------------------------
+
* Name: RTX_Conf_CM.C
+
* Purpose: Configuration of CMSIS RTX Kernel for Cortex-M
+
* Rev.: V4.70.1
+
*----------------------------------------------------------------------------
+
*
+
* Copyright (c) 1999-2009 KEIL, 2009-2016 ARM Germany GmbH. All rights reserved.
+
*
+
* SPDX-License-Identifier: Apache-2.0
+
*
+
* Licensed under the Apache License, Version 2.0 (the License); you may
+
* not use this file except in compliance with the License.
+
* You may obtain a copy of the License at
+
*
+
* www.apache.org/licenses/LICENSE-2.0
+
*
+
* Unless required by applicable law or agreed to in writing, software
+
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
* See the License for the specific language governing permissions and
+
* limitations under the License.
+
*---------------------------------------------------------------------------*/
+
+
#include "cmsis_os.h"
+
+
+
/*----------------------------------------------------------------------------
+
* RTX User configuration part BEGIN
+
*---------------------------------------------------------------------------*/
+
+
//-------- <<< Use Configuration Wizard in Context Menu >>> -----------------
+
//
+
// <h>Thread Configuration
+
// =======================
+
//
+
// <o>Number of concurrent running user threads <1-250>
+
// <i> Defines max. number of user threads that will run at the same time.
+
// <i> Default: 6
+
#ifndef OS_TASKCNT
+
#define OS_TASKCNT 6
+
#endif
+
+
// <o>Default Thread stack size [bytes] <64-4096:8><#/4>
+
// <i> Defines default stack size for threads with osThreadDef stacksz = 0
+
// <i> Default: 200
+
#ifndef OS_STKSIZE
+
#define OS_STKSIZE 50 // this stack size value is in words
+
#endif
+
+
// <o>Main Thread stack size [bytes] <64-32768:8><#/4>
+
// <i> Defines stack size for main thread.
+
// <i> Default: 200
+
#ifndef OS_MAINSTKSIZE
+
#define OS_MAINSTKSIZE 50 // this stack size value is in words
+
#endif
+
+
// <o>Number of threads with user-provided stack size <0-250>
+
// <i> Defines the number of threads with user-provided stack size.
+
// <i> Default: 0
+
#ifndef OS_PRIVCNT
+
#define OS_PRIVCNT 0
+
#endif
+
+
// <o>Total stack size [bytes] for threads with user-provided stack size <0-1048576:8><#/4>
+
// <i> Defines the combined stack size for threads with user-provided stack size.
+
// <i> Default: 0
+
#ifndef OS_PRIVSTKSIZE
+
#define OS_PRIVSTKSIZE 0 // this stack size value is in words
+
#endif
+
+
// <q>Stack overflow checking
+
// <i> Enable stack overflow checks at thread switch.
+
// <i> Enabling this option increases slightly the execution time of a thread switch.
+
#ifndef OS_STKCHECK
+
#define OS_STKCHECK 1
+
#endif
+
+
// <q>Stack usage watermark
+
// <i> Initialize thread stack with watermark pattern for analyzing stack usage (current/maximum) in System and Thread Viewer.
+
// <i> Enabling this option increases significantly the execution time of osThreadCreate.
+
#ifndef OS_STKINIT
+
#define OS_STKINIT 0
+
#endif
+
+
// <o>Processor mode for thread execution
+
// <0=> Unprivileged mode
+
// <1=> Privileged mode
+
// <i> Default: Privileged mode
+
#ifndef OS_RUNPRIV
+
#define OS_RUNPRIV 1
+
#endif
+
+
// </h>
+
+
// <h>RTX Kernel Timer Tick Configuration
+
// ======================================
+
// <q> Use Cortex-M SysTick timer as RTX Kernel Timer
+
// <i> Cortex-M processors provide in most cases a SysTick timer that can be used as
+
// <i> as time-base for RTX.
+
#ifndef OS_SYSTICK
+
#define OS_SYSTICK 1
+
#endif
+
//
+
// <o>RTOS Kernel Timer input clock frequency [Hz] <1-1000000000>
+
// <i> Defines the input frequency of the RTOS Kernel Timer.
+
// <i> When the Cortex-M SysTick timer is used, the input clock
+
// <i> is on most systems identical with the core clock.
+
#ifndef OS_CLOCK
+
#define OS_CLOCK 12000000
+
#endif
+
+
// <o>RTX Timer tick interval value [us] <1-1000000>
+
// <i> The RTX Timer tick interval value is used to calculate timeout values.
+
// <i> When the Cortex-M SysTick timer is enabled, the value also configures the SysTick timer.
+
// <i> Default: 1000 (1ms)
+
#ifndef OS_TICK
+
#define OS_TICK 1000
+
#endif
+
+
// </h>
+
+
// <h>System Configuration
+
// =======================
+
//
+
// <e>Round-Robin Thread switching
+
// ===============================
+
//
+
// <i> Enables Round-Robin Thread switching.
+
#ifndef OS_ROBIN
+
#define OS_ROBIN 1
+
#endif
+
+
// <o>Round-Robin Timeout [ticks] <1-1000>
+
// <i> Defines how long a thread will execute before a thread switch.
+
// <i> Default: 5
+
#ifndef OS_ROBINTOUT
+
#define OS_ROBINTOUT 5
+
#endif
+
+
// </e>
+
+
// <e>User Timers
+
// ==============
+
// <i> Enables user Timers
+
#ifndef OS_TIMERS
+
#define OS_TIMERS 1
+
#endif
+
+
// <o>Timer Thread Priority
+
// <1=> Low
+
// <2=> Below Normal <3=> Normal <4=> Above Normal
+
// <5=> High
+
// <6=> Realtime (highest)
+
// <i> Defines priority for Timer Thread
+
// <i> Default: High
+
#ifndef OS_TIMERPRIO
+
#define OS_TIMERPRIO 5
+
#endif
+
+
// <o>Timer Thread stack size [bytes] <64-4096:8><#/4>
+
// <i> Defines stack size for Timer thread.
+
// <i> Default: 200
+
#ifndef OS_TIMERSTKSZ
+
#define OS_TIMERSTKSZ 50 // this stack size value is in words
+
#endif
+
+
// <o>Timer Callback Queue size <1-32>
+
// <i> Number of concurrent active timer callback functions.
+
// <i> Default: 4
+
#ifndef OS_TIMERCBQS
+
#define OS_TIMERCBQS 4
+
#endif
+
+
// </e>
+
+
// <o>ISR FIFO Queue size<4=> 4 entries <8=> 8 entries
+
// <12=> 12 entries <16=> 16 entries
+
// <24=> 24 entries <32=> 32 entries
+
// <48=> 48 entries <64=> 64 entries
+
// <96=> 96 entries
+
// <i> ISR functions store requests to this buffer,
+
// <i> when they are called from the interrupt handler.
+
// <i> Default: 16 entries
+
#ifndef OS_FIFOSZ
+
#define OS_FIFOSZ 16
+
#endif
+
+
// </h>
+
+
//------------- <<< end of configuration section >>> -----------------------
+
+
// Standard library system mutexes
+
// ===============================
+
// Define max. number system mutexes that are used to protect
+
// the arm standard runtime library. For microlib they are not used.
+
#ifndef OS_MUTEXCNT
+
#define OS_MUTEXCNT 8
+
#endif
+
+
/*----------------------------------------------------------------------------
+
* RTX User configuration part END
+
*---------------------------------------------------------------------------*/
+
+
#define OS_TRV ((uint32_t)(((double)OS_CLOCK*(double)OS_TICK)/1E6)-1)
+
+
+
/*----------------------------------------------------------------------------
+
* Global Functions
+
*---------------------------------------------------------------------------*/
+
+
/*--------------------------- os_idle_demon ---------------------------------*/
+
+
/// \brief The idle demon is running when no other thread is ready to run
+
void os_idle_demon (void) {
+
+
for (;;) {
+
/* HERE: include optional user code to be executed when no thread runs.*/
+
}
+
}
+
+
#if (OS_SYSTICK == 0) // Functions for alternative timer as RTX kernel timer
+
+
/*--------------------------- os_tick_init ----------------------------------*/
+
+
/// \brief Initializes an alternative hardware timer as RTX kernel timer
+
/// \return IRQ number of the alternative hardware timer
+
int os_tick_init (void) {
+
return (-1); /* Return IRQ number of timer (0..239) */
+
}
+
+
/*--------------------------- os_tick_val -----------------------------------*/
+
+
/// \brief Get alternative hardware timer's current value (0 .. OS_TRV)
+
/// \return Current value of the alternative hardware timer
+
uint32_t os_tick_val (void) {
+
return (0);
+
}
+
+
/*--------------------------- os_tick_ovf -----------------------------------*/
+
+
/// \brief Get alternative hardware timer's overflow flag
+
/// \return Overflow flag\n
+
/// - 1 : overflow
+
/// - 0 : no overflow
+
uint32_t os_tick_ovf (void) {
+
return (0);
+
}
+
+
/*--------------------------- os_tick_irqack --------------------------------*/
+
+
/// \brief Acknowledge alternative hardware timer interrupt
+
void os_tick_irqack (void) {
+
/* ... */
+
}
+
+
#endif // (OS_SYSTICK == 0)
+
+
/*--------------------------- os_error --------------------------------------*/
+
+
/* OS Error Codes */
+
#define OS_ERROR_STACK_OVF 1
+
#define OS_ERROR_FIFO_OVF 2
+
#define OS_ERROR_MBX_OVF 3
+
#define OS_ERROR_TIMER_OVF 4
+
+
extern osThreadId svcThreadGetId (void);
+
+
/// \brief Called when a runtime error is detected
+
/// \param[in] error_code actual error code that has been detected
+
void os_error (uint32_t error_code) {
+
+
/* HERE: include optional code to be executed on runtime error. */
+
switch (error_code) {
+ +
/* Stack overflow detected for the currently running task. */
+
/* Thread can be identified by calling svcThreadGetId(). */
+
break;
+ +
/* ISR FIFO Queue buffer overflow detected. */
+
break;
+ +
/* Mailbox overflow detected. */
+
break;
+ +
/* User Timer Callback Queue overflow detected. */
+
break;
+
default:
+
break;
+
}
+
for (;;);
+
}
+
+
+
/*----------------------------------------------------------------------------
+
* RTX Configuration Functions
+
*---------------------------------------------------------------------------*/
+
+
#include "RTX_CM_lib.h"
+
+
/*----------------------------------------------------------------------------
+
* end of file
+
*---------------------------------------------------------------------------*/
+
+
+ + + + -- cgit