Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-rtos by
rtx/TARGET_CORTEX_M/RTX_Conf_CM.c@113:d9366c711a75, 2016-05-05 (annotated)
- Committer:
- mbed_official
- Date:
- Thu May 05 22:00:15 2016 +0100
- Revision:
- 113:d9366c711a75
- Parent:
- 112:53ace74b190c
- Child:
- 118:6635230e06ba
Synchronized with git revision 84fc61c94068d277a18b9e868e3e3cad4e876c28
Full URL: https://github.com/mbedmicro/mbed/commit/84fc61c94068d277a18b9e868e3e3cad4e876c28/
[RTOS] Improved Error Functions
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 49:77c8e4604045 | 1 | /*---------------------------------------------------------------------------- |
mbed_official | 112:53ace74b190c | 2 | * CMSIS-RTOS - RTX |
mbed_official | 49:77c8e4604045 | 3 | *---------------------------------------------------------------------------- |
mbed_official | 49:77c8e4604045 | 4 | * Name: RTX_Conf_CM.C |
mbed_official | 49:77c8e4604045 | 5 | * Purpose: Configuration of CMSIS RTX Kernel for Cortex-M |
mbed_official | 112:53ace74b190c | 6 | * Rev.: V4.70.1 |
mbed_official | 49:77c8e4604045 | 7 | *---------------------------------------------------------------------------- |
mbed_official | 49:77c8e4604045 | 8 | * |
mbed_official | 112:53ace74b190c | 9 | * Copyright (c) 1999-2009 KEIL, 2009-2015 ARM Germany GmbH |
mbed_official | 49:77c8e4604045 | 10 | * All rights reserved. |
mbed_official | 49:77c8e4604045 | 11 | * Redistribution and use in source and binary forms, with or without |
mbed_official | 49:77c8e4604045 | 12 | * modification, are permitted provided that the following conditions are met: |
mbed_official | 49:77c8e4604045 | 13 | * - Redistributions of source code must retain the above copyright |
mbed_official | 49:77c8e4604045 | 14 | * notice, this list of conditions and the following disclaimer. |
mbed_official | 49:77c8e4604045 | 15 | * - Redistributions in binary form must reproduce the above copyright |
mbed_official | 49:77c8e4604045 | 16 | * notice, this list of conditions and the following disclaimer in the |
mbed_official | 49:77c8e4604045 | 17 | * documentation and/or other materials provided with the distribution. |
mbed_official | 49:77c8e4604045 | 18 | * - Neither the name of ARM nor the names of its contributors may be used |
mbed_official | 49:77c8e4604045 | 19 | * to endorse or promote products derived from this software without |
mbed_official | 49:77c8e4604045 | 20 | * specific prior written permission. |
mbed_official | 49:77c8e4604045 | 21 | * |
mbed_official | 49:77c8e4604045 | 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
mbed_official | 49:77c8e4604045 | 23 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
mbed_official | 49:77c8e4604045 | 24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
mbed_official | 49:77c8e4604045 | 25 | * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE |
mbed_official | 49:77c8e4604045 | 26 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
mbed_official | 49:77c8e4604045 | 27 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
mbed_official | 49:77c8e4604045 | 28 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
mbed_official | 49:77c8e4604045 | 29 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
mbed_official | 49:77c8e4604045 | 30 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
mbed_official | 49:77c8e4604045 | 31 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
mbed_official | 49:77c8e4604045 | 32 | * POSSIBILITY OF SUCH DAMAGE. |
mbed_official | 49:77c8e4604045 | 33 | *---------------------------------------------------------------------------*/ |
mbed_official | 49:77c8e4604045 | 34 | |
mbed_official | 49:77c8e4604045 | 35 | #include "cmsis_os.h" |
mbed_official | 49:77c8e4604045 | 36 | |
mbed_official | 49:77c8e4604045 | 37 | |
mbed_official | 49:77c8e4604045 | 38 | /*---------------------------------------------------------------------------- |
mbed_official | 49:77c8e4604045 | 39 | * RTX User configuration part BEGIN |
mbed_official | 49:77c8e4604045 | 40 | *---------------------------------------------------------------------------*/ |
mbed_official | 49:77c8e4604045 | 41 | |
mbed_official | 49:77c8e4604045 | 42 | //-------- <<< Use Configuration Wizard in Context Menu >>> ----------------- |
mbed_official | 49:77c8e4604045 | 43 | // |
mbed_official | 49:77c8e4604045 | 44 | // <h>Thread Configuration |
mbed_official | 49:77c8e4604045 | 45 | // ======================= |
mbed_official | 49:77c8e4604045 | 46 | // |
mbed_official | 112:53ace74b190c | 47 | // <o>Number of concurrent running user threads <1-250> |
mbed_official | 112:53ace74b190c | 48 | // <i> Defines max. number of user threads that will run at the same time. |
mbed_official | 49:77c8e4604045 | 49 | // <i> Default: 6 |
mbed_official | 49:77c8e4604045 | 50 | #ifndef OS_TASKCNT |
mbed_official | 64:ab4200083b07 | 51 | # if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_LPC4330) || defined(TARGET_LPC4337) || defined(TARGET_LPC1347) || defined(TARGET_K64F) || defined(TARGET_STM32F401RE)\ |
mbed_official | 97:6c35e082773a | 52 | || defined(TARGET_STM32F410RB) || defined(TARGET_KL46Z) || defined(TARGET_KL43Z) || defined(TARGET_STM32F407) || defined(TARGET_F407VG) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) \ |
mbed_official | 79:c586ffeebfb4 | 53 | || defined(TARGET_STM32F411RE) || defined(TARGET_STM32F405RG) || defined(TARGET_K22F) || defined(TARGET_STM32F429ZI) || defined(TARGET_STM32F401VC) || defined(TARGET_MAX32610) || defined(TARGET_MAX32600) || defined(TARGET_TEENSY3_1) \ |
mbed_official | 105:b4c5542476ba | 54 | || defined(TARGET_STM32L152RE) || defined(TARGET_STM32F446RE) || defined(TARGET_STM32F446VE) || defined(TARGET_STM32L476VG) || defined(TARGET_STM32L476RG) || defined(TARGET_STM32F469NI) || defined(TARGET_STM32F746NG) || defined(TARGET_STM32F746ZG) || defined(TARGET_STM32L152RC) |
mbed_official | 49:77c8e4604045 | 55 | # define OS_TASKCNT 14 |
mbed_official | 95:12552ef4e980 | 56 | # elif defined(TARGET_LPC11U24) || defined(TARGET_STM32F303RE) || defined(TARGET_STM32F303K8) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) \ |
mbed_official | 111:162b12aea5f2 | 57 | || defined(TARGET_LPC812) || defined(TARGET_KL25Z) || defined(TARGET_KL26Z) || defined(TARGET_KL27Z) || defined(TARGET_KL05Z) || defined(TARGET_STM32F100RB) || defined(TARGET_STM32F051R8) \ |
mbed_official | 59:28712e303960 | 58 | || defined(TARGET_STM32F103RB) || defined(TARGET_LPC824) || defined(TARGET_STM32F302R8) || defined(TARGET_STM32F334R8) || defined(TARGET_STM32F334C8) \ |
mbed_official | 108:ac4f3830f9ff | 59 | || defined(TARGET_STM32L031K6) || defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8) || defined(TARGET_STM32L073RZ) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC) || defined(TARGET_NZ32_SC151) \ |
mbed_official | 87:e695cd34556b | 60 | || defined(TARGET_SSCI824) || defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB) |
mbed_official | 49:77c8e4604045 | 61 | # define OS_TASKCNT 6 |
mbed_official | 49:77c8e4604045 | 62 | # else |
mbed_official | 49:77c8e4604045 | 63 | # error "no target defined" |
mbed_official | 49:77c8e4604045 | 64 | # endif |
mbed_official | 49:77c8e4604045 | 65 | #endif |
mbed_official | 49:77c8e4604045 | 66 | |
mbed_official | 112:53ace74b190c | 67 | #ifdef __MBED_CMSIS_RTOS_CM |
mbed_official | 112:53ace74b190c | 68 | // <o>Idle stack size [bytes] <64-4096:8><#/4> |
mbed_official | 112:53ace74b190c | 69 | // <i> Defines default stack size for the Idle thread. |
mbed_official | 112:53ace74b190c | 70 | #ifndef OS_IDLESTKSIZE |
mbed_official | 112:53ace74b190c | 71 | #define OS_IDLESTKSIZE 128 |
mbed_official | 112:53ace74b190c | 72 | #endif |
mbed_official | 112:53ace74b190c | 73 | #else // __MBED_CMSIS_RTOS_CM |
mbed_official | 112:53ace74b190c | 74 | // <o>Default Thread stack size [bytes] <64-4096:8><#/4> |
mbed_official | 112:53ace74b190c | 75 | // <i> Defines default stack size for threads with osThreadDef stacksz = 0 |
mbed_official | 112:53ace74b190c | 76 | // <i> Default: 200 |
mbed_official | 112:53ace74b190c | 77 | #ifndef OS_STKSIZE |
mbed_official | 112:53ace74b190c | 78 | #define OS_STKSIZE 200 |
mbed_official | 112:53ace74b190c | 79 | #endif |
mbed_official | 112:53ace74b190c | 80 | #endif // __MBED_CMSIS_RTOS_CM |
mbed_official | 112:53ace74b190c | 81 | |
mbed_official | 112:53ace74b190c | 82 | // <o>Main Thread stack size [bytes] <64-32768:8><#/4> |
mbed_official | 112:53ace74b190c | 83 | #ifndef OS_MAINSTKSIZE |
mbed_official | 64:ab4200083b07 | 84 | # if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_LPC4330) || defined(TARGET_LPC4337) || defined(TARGET_LPC1347) || defined(TARGET_K64F) || defined(TARGET_STM32F401RE)\ |
mbed_official | 97:6c35e082773a | 85 | || defined(TARGET_STM32F410RB) || defined(TARGET_KL46Z) || defined(TARGET_KL43Z) || defined(TARGET_STM32F407) || defined(TARGET_F407VG) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) \ |
mbed_official | 79:c586ffeebfb4 | 86 | || defined(TARGET_STM32F411RE) || defined(TARGET_STM32F405RG) || defined(TARGET_K22F) || defined(TARGET_STM32F429ZI) || defined(TARGET_STM32F401VC) || defined(TARGET_MAX32610) || defined(TARGET_MAX32600) || defined(TARGET_TEENSY3_1) \ |
mbed_official | 105:b4c5542476ba | 87 | || defined(TARGET_STM32L152RE) || defined(TARGET_STM32F446RE) || defined(TARGET_STM32F446VE) || defined(TARGET_STM32L476VG) || defined(TARGET_STM32L476RG) || defined(TARGET_STM32F469NI) || defined(TARGET_STM32F746NG) || defined(TARGET_STM32F746ZG) || defined(TARGET_STM32L152RC) |
mbed_official | 112:53ace74b190c | 88 | # define OS_MAINSTKSIZE 256 |
mbed_official | 49:77c8e4604045 | 89 | # elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) \ |
mbed_official | 111:162b12aea5f2 | 90 | || defined(TARGET_LPC812) || defined(TARGET_KL25Z) || defined(TARGET_KL26Z) || defined(TARGET_KL27Z) || defined(TARGET_KL05Z) || defined(TARGET_STM32F100RB) || defined(TARGET_STM32F051R8) \ |
mbed_official | 104:07314541bd12 | 91 | || defined(TARGET_STM32F103RB) || defined(TARGET_LPC824) || defined(TARGET_STM32F302R8) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC) || defined(TARGET_NZ32_SC151) \ |
mbed_official | 87:e695cd34556b | 92 | || defined(TARGET_SSCI824) || defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB) |
mbed_official | 112:53ace74b190c | 93 | # define OS_MAINSTKSIZE 128 |
mbed_official | 108:ac4f3830f9ff | 94 | # elif defined(TARGET_STM32F334R8) || defined(TARGET_STM32F303RE) || defined(TARGET_STM32F303K8) || defined(TARGET_STM32F334C8) || defined(TARGET_STM32L031K6) || defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8) || defined(TARGET_STM32L073RZ) |
mbed_official | 112:53ace74b190c | 95 | # define OS_MAINSTKSIZE 112 |
mbed_official | 49:77c8e4604045 | 96 | # else |
mbed_official | 49:77c8e4604045 | 97 | # error "no target defined" |
mbed_official | 49:77c8e4604045 | 98 | # endif |
mbed_official | 49:77c8e4604045 | 99 | #endif |
mbed_official | 49:77c8e4604045 | 100 | |
mbed_official | 112:53ace74b190c | 101 | #ifndef __MBED_CMSIS_RTOS_CM |
mbed_official | 112:53ace74b190c | 102 | // <o>Number of threads with user-provided stack size <0-250> |
mbed_official | 112:53ace74b190c | 103 | // <i> Defines the number of threads with user-provided stack size. |
mbed_official | 112:53ace74b190c | 104 | // <i> Default: 0 |
mbed_official | 112:53ace74b190c | 105 | #ifndef OS_PRIVCNT |
mbed_official | 112:53ace74b190c | 106 | #define OS_PRIVCNT 0 |
mbed_official | 49:77c8e4604045 | 107 | #endif |
mbed_official | 112:53ace74b190c | 108 | |
mbed_official | 112:53ace74b190c | 109 | // <o>Total stack size [bytes] for threads with user-provided stack size <0-1048576:8><#/4> |
mbed_official | 112:53ace74b190c | 110 | // <i> Defines the combined stack size for threads with user-provided stack size. |
mbed_official | 112:53ace74b190c | 111 | // <i> Default: 0 |
mbed_official | 112:53ace74b190c | 112 | #ifndef OS_PRIVSTKSIZE |
mbed_official | 112:53ace74b190c | 113 | #define OS_PRIVSTKSIZE 0 // this stack size value is in words |
mbed_official | 112:53ace74b190c | 114 | #endif |
mbed_official | 112:53ace74b190c | 115 | #endif // __MBED_CMSIS_RTOS_CM |
mbed_official | 49:77c8e4604045 | 116 | |
mbed_official | 112:53ace74b190c | 117 | // <q>Stack overflow checking |
mbed_official | 112:53ace74b190c | 118 | // <i> Enable stack overflow checks at thread switch. |
mbed_official | 112:53ace74b190c | 119 | // <i> Enabling this option increases slightly the execution time of a thread switch. |
mbed_official | 49:77c8e4604045 | 120 | #ifndef OS_STKCHECK |
mbed_official | 49:77c8e4604045 | 121 | #define OS_STKCHECK 1 |
mbed_official | 49:77c8e4604045 | 122 | #endif |
mbed_official | 112:53ace74b190c | 123 | |
mbed_official | 112:53ace74b190c | 124 | // <q>Stack usage watermark |
mbed_official | 112:53ace74b190c | 125 | // <i> Initialize thread stack with watermark pattern for analyzing stack usage (current/maximum) in System and Thread Viewer. |
mbed_official | 112:53ace74b190c | 126 | // <i> Enabling this option increases significantly the execution time of osThreadCreate. |
mbed_official | 112:53ace74b190c | 127 | #ifndef OS_STKINIT |
mbed_official | 112:53ace74b190c | 128 | #define OS_STKINIT 0 |
mbed_official | 112:53ace74b190c | 129 | #endif |
mbed_official | 112:53ace74b190c | 130 | |
mbed_official | 112:53ace74b190c | 131 | // <o>Processor mode for thread execution |
mbed_official | 112:53ace74b190c | 132 | // <0=> Unprivileged mode |
mbed_official | 112:53ace74b190c | 133 | // <1=> Privileged mode |
mbed_official | 112:53ace74b190c | 134 | // <i> Default: Privileged mode |
mbed_official | 49:77c8e4604045 | 135 | #ifndef OS_RUNPRIV |
mbed_official | 49:77c8e4604045 | 136 | #define OS_RUNPRIV 1 |
mbed_official | 49:77c8e4604045 | 137 | #endif |
mbed_official | 49:77c8e4604045 | 138 | |
mbed_official | 49:77c8e4604045 | 139 | // </h> |
mbed_official | 112:53ace74b190c | 140 | |
mbed_official | 112:53ace74b190c | 141 | // <h>RTX Kernel Timer Tick Configuration |
mbed_official | 112:53ace74b190c | 142 | // ====================================== |
mbed_official | 112:53ace74b190c | 143 | // <q> Use Cortex-M SysTick timer as RTX Kernel Timer |
mbed_official | 112:53ace74b190c | 144 | // <i> Cortex-M processors provide in most cases a SysTick timer that can be used as |
mbed_official | 112:53ace74b190c | 145 | // <i> as time-base for RTX. |
mbed_official | 112:53ace74b190c | 146 | #ifndef OS_SYSTICK |
mbed_official | 112:53ace74b190c | 147 | #define OS_SYSTICK 1 |
mbed_official | 112:53ace74b190c | 148 | #endif |
mbed_official | 49:77c8e4604045 | 149 | // |
mbed_official | 112:53ace74b190c | 150 | // <o>RTOS Kernel Timer input clock frequency [Hz] <1-1000000000> |
mbed_official | 112:53ace74b190c | 151 | // <i> Defines the input frequency of the RTOS Kernel Timer. |
mbed_official | 112:53ace74b190c | 152 | // <i> When the Cortex-M SysTick timer is used, the input clock |
mbed_official | 112:53ace74b190c | 153 | // <i> is on most systems identical with the core clock. |
mbed_official | 49:77c8e4604045 | 154 | #ifndef OS_CLOCK |
mbed_official | 102:f62a48e9da94 | 155 | # if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_TEENSY3_1) |
mbed_official | 49:77c8e4604045 | 156 | # define OS_CLOCK 96000000 |
mbed_official | 49:77c8e4604045 | 157 | |
mbed_official | 102:f62a48e9da94 | 158 | # elif defined(TARGET_LPC1347) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_STM32F334R8) || defined(TARGET_STM32F334C8) || defined(TARGET_STM32F303RE) |
mbed_official | 49:77c8e4604045 | 159 | # define OS_CLOCK 72000000 |
mbed_official | 49:77c8e4604045 | 160 | |
mbed_official | 95:12552ef4e980 | 161 | # elif defined(TARGET_STM32F303K8) |
mbed_official | 95:12552ef4e980 | 162 | # define OS_CLOCK 64000000 |
mbed_official | 95:12552ef4e980 | 163 | |
mbed_official | 59:28712e303960 | 164 | # elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) || defined(TARGET_KL25Z) \ |
mbed_official | 111:162b12aea5f2 | 165 | || defined(TARGET_KL26Z) || defined(TARGET_KL27Z) || defined(TARGET_KL05Z) || defined(TARGET_KL46Z) || defined(TARGET_KL43Z) || defined(TARGET_STM32F051R8) || defined(TARGET_LPC11U68) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC) |
mbed_official | 49:77c8e4604045 | 166 | # define OS_CLOCK 48000000 |
mbed_official | 49:77c8e4604045 | 167 | |
mbed_official | 49:77c8e4604045 | 168 | # elif defined(TARGET_LPC812) |
mbed_official | 49:77c8e4604045 | 169 | # define OS_CLOCK 36000000 |
mbed_official | 49:77c8e4604045 | 170 | |
mbed_official | 81:e45e4ac7c3c8 | 171 | # elif defined(TARGET_LPC824) || defined(TARGET_SSCI824) |
mbed_official | 49:77c8e4604045 | 172 | # define OS_CLOCK 30000000 |
mbed_official | 49:77c8e4604045 | 173 | |
mbed_official | 49:77c8e4604045 | 174 | # elif defined(TARGET_STM32F100RB) |
mbed_official | 49:77c8e4604045 | 175 | # define OS_CLOCK 24000000 |
mbed_official | 49:77c8e4604045 | 176 | |
mbed_official | 64:ab4200083b07 | 177 | # elif defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_K64F) || defined(TARGET_K22F) |
mbed_official | 49:77c8e4604045 | 178 | # define OS_CLOCK 120000000 |
mbed_official | 49:77c8e4604045 | 179 | |
mbed_official | 63:5448826aa700 | 180 | # elif defined(TARGET_LPC4330) |
mbed_official | 63:5448826aa700 | 181 | # define OS_CLOCK 204000000 |
mbed_official | 63:5448826aa700 | 182 | |
mbed_official | 49:77c8e4604045 | 183 | # elif defined(TARGET_LPC4337) |
mbed_official | 49:77c8e4604045 | 184 | # define OS_CLOCK 204000000 |
mbed_official | 49:77c8e4604045 | 185 | |
mbed_official | 49:77c8e4604045 | 186 | # elif defined(TARGET_STM32F407) || defined(TARGET_F407VG) |
mbed_official | 49:77c8e4604045 | 187 | # define OS_CLOCK 168000000 |
mbed_official | 49:77c8e4604045 | 188 | |
mbed_official | 49:77c8e4604045 | 189 | # elif defined(TARGET_STM32F401RE) |
mbed_official | 49:77c8e4604045 | 190 | # define OS_CLOCK 84000000 |
mbed_official | 49:77c8e4604045 | 191 | |
mbed_official | 49:77c8e4604045 | 192 | # elif defined(TARGET_STM32F411RE) |
mbed_official | 49:77c8e4604045 | 193 | # define OS_CLOCK 100000000 |
mbed_official | 49:77c8e4604045 | 194 | |
mbed_official | 97:6c35e082773a | 195 | # elif defined(TARGET_STM32F410RB) |
mbed_official | 97:6c35e082773a | 196 | # define OS_CLOCK 100000000 |
mbed_official | 97:6c35e082773a | 197 | |
mbed_official | 78:2db19f47c2ba | 198 | #elif defined(TARGET_STM32F103RB) |
mbed_official | 49:77c8e4604045 | 199 | # define OS_CLOCK 72000000 |
mbed_official | 49:77c8e4604045 | 200 | |
mbed_official | 57:430de2831ec7 | 201 | #elif defined(TARGET_STM32F429ZI) |
mbed_official | 58:13a25134ac60 | 202 | # define OS_CLOCK 168000000 |
mbed_official | 57:430de2831ec7 | 203 | |
mbed_official | 59:28712e303960 | 204 | #elif defined(TARGET_STM32F302R8) |
mbed_official | 75:557d5b275f31 | 205 | # define OS_CLOCK 72000000 |
mbed_official | 59:28712e303960 | 206 | |
mbed_official | 108:ac4f3830f9ff | 207 | #elif defined(TARGET_STM32L031K6) || defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8) || defined(TARGET_STM32L073RZ) |
mbed_official | 59:28712e303960 | 208 | # define OS_CLOCK 32000000 |
mbed_official | 59:28712e303960 | 209 | |
mbed_official | 60:f4d3d8971bc3 | 210 | #elif defined(TARGET_STM32F401VC) |
mbed_official | 60:f4d3d8971bc3 | 211 | # define OS_CLOCK 84000000 |
mbed_official | 60:f4d3d8971bc3 | 212 | |
mbed_official | 105:b4c5542476ba | 213 | # elif defined(TARGET_STM32F746NG) || defined(TARGET_STM32F746ZG) |
mbed_official | 98:c825593ece39 | 214 | # define OS_CLOCK 216000000 |
mbed_official | 98:c825593ece39 | 215 | |
mbed_official | 73:34292fba723c | 216 | #elif defined(TARGET_MAX32610) || defined(TARGET_MAX32600) |
mbed_official | 71:570e569a5b59 | 217 | # define OS_CLOCK 24000000 |
mbed_official | 71:570e569a5b59 | 218 | |
mbed_official | 104:07314541bd12 | 219 | #elif defined(TARGET_NZ32_SC151) |
mbed_official | 78:2db19f47c2ba | 220 | # define OS_CLOCK 32000000 |
mbed_official | 78:2db19f47c2ba | 221 | |
mbed_official | 78:2db19f47c2ba | 222 | #elif defined(TARGET_STM32L152RE) |
mbed_official | 78:2db19f47c2ba | 223 | # define OS_CLOCK 24000000 |
mbed_official | 78:2db19f47c2ba | 224 | |
mbed_official | 100:c837dbc4020a | 225 | #elif (defined(TARGET_STM32F446RE) || defined(TARGET_STM32F446VE)) |
mbed_official | 79:c586ffeebfb4 | 226 | # define OS_CLOCK 180000000 |
mbed_official | 79:c586ffeebfb4 | 227 | |
mbed_official | 87:e695cd34556b | 228 | #elif defined(TARGET_STM32F030R8) |
mbed_official | 87:e695cd34556b | 229 | # define OS_CLOCK 48000000 |
mbed_official | 87:e695cd34556b | 230 | |
mbed_official | 87:e695cd34556b | 231 | #elif defined(TARGET_STM32F070RB) |
mbed_official | 87:e695cd34556b | 232 | # define OS_CLOCK 48000000 |
mbed_official | 79:c586ffeebfb4 | 233 | |
mbed_official | 91:9d001ed5feec | 234 | #elif defined(TARGET_STM32L476VG) || defined(TARGET_STM32L476RG) |
mbed_official | 91:9d001ed5feec | 235 | # define OS_CLOCK 80000000 |
mbed_official | 91:9d001ed5feec | 236 | |
mbed_official | 96:6d90423c236e | 237 | #elif defined(TARGET_STM32F469NI) |
mbed_official | 96:6d90423c236e | 238 | # define OS_CLOCK 168000000 |
mbed_official | 96:6d90423c236e | 239 | |
mbed_official | 99:79d2f32f753f | 240 | #elif defined(TARGET_STM32L152RC) |
mbed_official | 99:79d2f32f753f | 241 | # define OS_CLOCK 24000000 |
mbed_official | 99:79d2f32f753f | 242 | |
mbed_official | 49:77c8e4604045 | 243 | # else |
mbed_official | 49:77c8e4604045 | 244 | # error "no target defined" |
mbed_official | 49:77c8e4604045 | 245 | # endif |
mbed_official | 49:77c8e4604045 | 246 | #endif |
mbed_official | 112:53ace74b190c | 247 | |
mbed_official | 112:53ace74b190c | 248 | // <o>RTX Timer tick interval value [us] <1-1000000> |
mbed_official | 112:53ace74b190c | 249 | // <i> The RTX Timer tick interval value is used to calculate timeout values. |
mbed_official | 112:53ace74b190c | 250 | // <i> When the Cortex-M SysTick timer is enabled, the value also configures the SysTick timer. |
mbed_official | 49:77c8e4604045 | 251 | // <i> Default: 1000 (1ms) |
mbed_official | 49:77c8e4604045 | 252 | #ifndef OS_TICK |
mbed_official | 49:77c8e4604045 | 253 | #define OS_TICK 1000 |
mbed_official | 49:77c8e4604045 | 254 | #endif |
mbed_official | 49:77c8e4604045 | 255 | |
mbed_official | 49:77c8e4604045 | 256 | // </h> |
mbed_official | 49:77c8e4604045 | 257 | |
mbed_official | 49:77c8e4604045 | 258 | // <h>System Configuration |
mbed_official | 49:77c8e4604045 | 259 | // ======================= |
mbed_official | 49:77c8e4604045 | 260 | // |
mbed_official | 49:77c8e4604045 | 261 | // <e>Round-Robin Thread switching |
mbed_official | 49:77c8e4604045 | 262 | // =============================== |
mbed_official | 49:77c8e4604045 | 263 | // |
mbed_official | 49:77c8e4604045 | 264 | // <i> Enables Round-Robin Thread switching. |
mbed_official | 49:77c8e4604045 | 265 | #ifndef OS_ROBIN |
mbed_official | 49:77c8e4604045 | 266 | #define OS_ROBIN 1 |
mbed_official | 49:77c8e4604045 | 267 | #endif |
mbed_official | 49:77c8e4604045 | 268 | |
mbed_official | 49:77c8e4604045 | 269 | // <o>Round-Robin Timeout [ticks] <1-1000> |
mbed_official | 49:77c8e4604045 | 270 | // <i> Defines how long a thread will execute before a thread switch. |
mbed_official | 49:77c8e4604045 | 271 | // <i> Default: 5 |
mbed_official | 49:77c8e4604045 | 272 | #ifndef OS_ROBINTOUT |
mbed_official | 49:77c8e4604045 | 273 | #define OS_ROBINTOUT 5 |
mbed_official | 49:77c8e4604045 | 274 | #endif |
mbed_official | 49:77c8e4604045 | 275 | |
mbed_official | 49:77c8e4604045 | 276 | // </e> |
mbed_official | 49:77c8e4604045 | 277 | |
mbed_official | 49:77c8e4604045 | 278 | // <e>User Timers |
mbed_official | 49:77c8e4604045 | 279 | // ============== |
mbed_official | 49:77c8e4604045 | 280 | // <i> Enables user Timers |
mbed_official | 49:77c8e4604045 | 281 | #ifndef OS_TIMERS |
mbed_official | 49:77c8e4604045 | 282 | #define OS_TIMERS 1 |
mbed_official | 49:77c8e4604045 | 283 | #endif |
mbed_official | 49:77c8e4604045 | 284 | |
mbed_official | 49:77c8e4604045 | 285 | // <o>Timer Thread Priority |
mbed_official | 49:77c8e4604045 | 286 | // <1=> Low |
mbed_official | 112:53ace74b190c | 287 | // <2=> Below Normal <3=> Normal <4=> Above Normal |
mbed_official | 49:77c8e4604045 | 288 | // <5=> High |
mbed_official | 49:77c8e4604045 | 289 | // <6=> Realtime (highest) |
mbed_official | 49:77c8e4604045 | 290 | // <i> Defines priority for Timer Thread |
mbed_official | 49:77c8e4604045 | 291 | // <i> Default: High |
mbed_official | 49:77c8e4604045 | 292 | #ifndef OS_TIMERPRIO |
mbed_official | 49:77c8e4604045 | 293 | #define OS_TIMERPRIO 5 |
mbed_official | 49:77c8e4604045 | 294 | #endif |
mbed_official | 112:53ace74b190c | 295 | |
mbed_official | 112:53ace74b190c | 296 | // <o>Timer Thread stack size [bytes] <64-4096:8><#/4> |
mbed_official | 112:53ace74b190c | 297 | // <i> Defines stack size for Timer thread. |
mbed_official | 112:53ace74b190c | 298 | // <i> Default: 200 |
mbed_official | 112:53ace74b190c | 299 | #ifndef OS_TIMERSTKSZ |
mbed_official | 112:53ace74b190c | 300 | #define OS_TIMERSTKSZ 200 |
mbed_official | 112:53ace74b190c | 301 | #endif |
mbed_official | 112:53ace74b190c | 302 | |
mbed_official | 49:77c8e4604045 | 303 | // <o>Timer Callback Queue size <1-32> |
mbed_official | 49:77c8e4604045 | 304 | // <i> Number of concurrent active timer callback functions. |
mbed_official | 49:77c8e4604045 | 305 | // <i> Default: 4 |
mbed_official | 112:53ace74b190c | 306 | #ifndef OS_TIMERCBQS |
mbed_official | 49:77c8e4604045 | 307 | #define OS_TIMERCBQS 4 |
mbed_official | 49:77c8e4604045 | 308 | #endif |
mbed_official | 49:77c8e4604045 | 309 | |
mbed_official | 49:77c8e4604045 | 310 | // </e> |
mbed_official | 49:77c8e4604045 | 311 | |
mbed_official | 49:77c8e4604045 | 312 | // <o>ISR FIFO Queue size<4=> 4 entries <8=> 8 entries |
mbed_official | 49:77c8e4604045 | 313 | // <12=> 12 entries <16=> 16 entries |
mbed_official | 49:77c8e4604045 | 314 | // <24=> 24 entries <32=> 32 entries |
mbed_official | 49:77c8e4604045 | 315 | // <48=> 48 entries <64=> 64 entries |
mbed_official | 49:77c8e4604045 | 316 | // <96=> 96 entries |
mbed_official | 49:77c8e4604045 | 317 | // <i> ISR functions store requests to this buffer, |
mbed_official | 49:77c8e4604045 | 318 | // <i> when they are called from the interrupt handler. |
mbed_official | 49:77c8e4604045 | 319 | // <i> Default: 16 entries |
mbed_official | 49:77c8e4604045 | 320 | #ifndef OS_FIFOSZ |
mbed_official | 49:77c8e4604045 | 321 | #define OS_FIFOSZ 16 |
mbed_official | 49:77c8e4604045 | 322 | #endif |
mbed_official | 49:77c8e4604045 | 323 | |
mbed_official | 49:77c8e4604045 | 324 | // </h> |
mbed_official | 49:77c8e4604045 | 325 | |
mbed_official | 49:77c8e4604045 | 326 | //------------- <<< end of configuration section >>> ----------------------- |
mbed_official | 49:77c8e4604045 | 327 | |
mbed_official | 49:77c8e4604045 | 328 | // Standard library system mutexes |
mbed_official | 49:77c8e4604045 | 329 | // =============================== |
mbed_official | 49:77c8e4604045 | 330 | // Define max. number system mutexes that are used to protect |
mbed_official | 49:77c8e4604045 | 331 | // the arm standard runtime library. For microlib they are not used. |
mbed_official | 49:77c8e4604045 | 332 | #ifndef OS_MUTEXCNT |
mbed_official | 49:77c8e4604045 | 333 | #define OS_MUTEXCNT 12 |
mbed_official | 49:77c8e4604045 | 334 | #endif |
mbed_official | 49:77c8e4604045 | 335 | |
mbed_official | 49:77c8e4604045 | 336 | /*---------------------------------------------------------------------------- |
mbed_official | 49:77c8e4604045 | 337 | * RTX User configuration part END |
mbed_official | 49:77c8e4604045 | 338 | *---------------------------------------------------------------------------*/ |
mbed_official | 49:77c8e4604045 | 339 | |
mbed_official | 49:77c8e4604045 | 340 | #define OS_TRV ((uint32_t)(((double)OS_CLOCK*(double)OS_TICK)/1E6)-1) |
mbed_official | 49:77c8e4604045 | 341 | |
mbed_official | 49:77c8e4604045 | 342 | |
mbed_official | 49:77c8e4604045 | 343 | /*---------------------------------------------------------------------------- |
mbed_official | 49:77c8e4604045 | 344 | * OS Idle daemon |
mbed_official | 49:77c8e4604045 | 345 | *---------------------------------------------------------------------------*/ |
mbed_official | 107:bdd541595fc5 | 346 | extern void rtos_idle_loop(void); |
mbed_official | 49:77c8e4604045 | 347 | |
mbed_official | 107:bdd541595fc5 | 348 | void os_idle_demon (void) { |
mbed_official | 107:bdd541595fc5 | 349 | /* The idle demon is a system thread, running when no other thread is */ |
mbed_official | 107:bdd541595fc5 | 350 | /* ready to run. */ |
mbed_official | 107:bdd541595fc5 | 351 | rtos_idle_loop(); |
mbed_official | 49:77c8e4604045 | 352 | } |
mbed_official | 49:77c8e4604045 | 353 | |
mbed_official | 49:77c8e4604045 | 354 | /*---------------------------------------------------------------------------- |
mbed_official | 49:77c8e4604045 | 355 | * RTX Errors |
mbed_official | 49:77c8e4604045 | 356 | *---------------------------------------------------------------------------*/ |
mbed_official | 112:53ace74b190c | 357 | extern void error(const char* format, ...); |
mbed_official | 112:53ace74b190c | 358 | extern osThreadId svcThreadGetId (void); |
mbed_official | 112:53ace74b190c | 359 | |
mbed_official | 49:77c8e4604045 | 360 | void os_error (uint32_t err_code) { |
mbed_official | 49:77c8e4604045 | 361 | /* This function is called when a runtime error is detected. Parameter */ |
mbed_official | 112:53ace74b190c | 362 | /* 'err_code' holds the runtime error code (defined in RTX_Config.h). */ |
mbed_official | 112:53ace74b190c | 363 | osThreadId err_task = svcThreadGetId(); |
mbed_official | 113:d9366c711a75 | 364 | error("RTX error code: 0x%08X, task ID: 0x%08X\n", err_code, err_task); |
mbed_official | 49:77c8e4604045 | 365 | } |
mbed_official | 49:77c8e4604045 | 366 | |
mbed_official | 49:77c8e4604045 | 367 | void sysThreadError(osStatus status) { |
mbed_official | 49:77c8e4604045 | 368 | if (status != osOK) { |
mbed_official | 113:d9366c711a75 | 369 | osThreadId err_task = svcThreadGetId(); |
mbed_official | 113:d9366c711a75 | 370 | error("CMSIS-RTOS error status: 0x%08X, task ID: 0x%08X\n", status, err_task); |
mbed_official | 49:77c8e4604045 | 371 | } |
mbed_official | 49:77c8e4604045 | 372 | } |
mbed_official | 49:77c8e4604045 | 373 | |
mbed_official | 49:77c8e4604045 | 374 | /*---------------------------------------------------------------------------- |
mbed_official | 49:77c8e4604045 | 375 | * RTX Configuration Functions |
mbed_official | 49:77c8e4604045 | 376 | *---------------------------------------------------------------------------*/ |
mbed_official | 49:77c8e4604045 | 377 | |
mbed_official | 49:77c8e4604045 | 378 | #include "RTX_CM_lib.h" |
mbed_official | 49:77c8e4604045 | 379 | |
mbed_official | 49:77c8e4604045 | 380 | /*---------------------------------------------------------------------------- |
mbed_official | 49:77c8e4604045 | 381 | * end of file |
mbed_official | 49:77c8e4604045 | 382 | *---------------------------------------------------------------------------*/ |