2013-02-18 15:32:11 +00:00
|
|
|
/*----------------------------------------------------------------------------
|
|
|
|
* RL-ARM - RTX
|
|
|
|
*----------------------------------------------------------------------------
|
|
|
|
* Name: RTX_Conf_CM.C
|
|
|
|
* Purpose: Configuration of CMSIS RTX Kernel for Cortex-M
|
|
|
|
* Rev.: V4.60
|
|
|
|
*----------------------------------------------------------------------------
|
|
|
|
*
|
|
|
|
* Copyright (c) 1999-2009 KEIL, 2009-2012 ARM Germany GmbH
|
|
|
|
* All rights reserved.
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions are met:
|
|
|
|
* - Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* - Redistributions in binary form must reproduce the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
|
|
* documentation and/or other materials provided with the distribution.
|
2014-05-29 13:36:51 +00:00
|
|
|
* - Neither the name of ARM nor the names of its contributors may be used
|
|
|
|
* to endorse or promote products derived from this software without
|
2013-02-18 15:32:11 +00:00
|
|
|
* specific prior written permission.
|
|
|
|
*
|
2014-05-29 13:36:51 +00:00
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
2013-02-18 15:32:11 +00:00
|
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
|
|
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
2014-05-29 13:36:51 +00:00
|
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
2013-02-18 15:32:11 +00:00
|
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
#include "cmsis_os.h"
|
|
|
|
|
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------
|
|
|
|
* RTX User configuration part BEGIN
|
|
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
//-------- <<< Use Configuration Wizard in Context Menu >>> -----------------
|
|
|
|
//
|
|
|
|
// <h>Thread Configuration
|
|
|
|
// =======================
|
|
|
|
//
|
|
|
|
// <o>Number of concurrent running threads <0-250>
|
|
|
|
// <i> Defines max. number of threads that will run at the same time.
|
|
|
|
// counting "main", but not counting "osTimerThread"
|
|
|
|
// <i> Default: 6
|
|
|
|
#ifndef OS_TASKCNT
|
2014-07-08 16:20:58 +00:00
|
|
|
# if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC4088) || defined(TARGET_LPC1347) || defined(TARGET_K64F) || defined(TARGET_STM32F401RE)\
|
2014-05-31 21:15:25 +00:00
|
|
|
|| defined(TARGET_KL46Z) || defined(TARGET_STM32F407) || defined(TARGET_F407VG) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) || defined(TARGET_NRF51822)
|
2013-02-18 15:32:11 +00:00
|
|
|
# define OS_TASKCNT 14
|
2014-06-20 07:50:37 +00:00
|
|
|
# elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) \
|
2014-05-25 09:03:50 +00:00
|
|
|
|| defined(TARGET_LPC812) || defined(TARGET_KL25Z) || defined(TARGET_KL05Z) || defined(TARGET_STM32F100RB) || defined(TARGET_STM32F051R8)
|
2013-02-18 15:32:11 +00:00
|
|
|
# define OS_TASKCNT 6
|
2014-03-20 15:06:24 +00:00
|
|
|
# else
|
|
|
|
# error "no target defined"
|
2013-02-18 15:32:11 +00:00
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// <o>Scheduler (+ interrupts) stack size [bytes] <64-4096:8><#/4>
|
|
|
|
#ifndef OS_SCHEDULERSTKSIZE
|
2014-07-08 16:20:58 +00:00
|
|
|
# if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC4088) || defined(TARGET_LPC1347) || defined(TARGET_K64F) || defined(TARGET_STM32F401RE)\
|
2014-05-31 21:15:25 +00:00
|
|
|
|| defined(TARGET_KL46Z) || defined(TARGET_STM32F407) || defined(TARGET_F407VG) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) || defined(TARGET_NRF51822)
|
2013-02-18 15:32:11 +00:00
|
|
|
# define OS_SCHEDULERSTKSIZE 256
|
2014-06-20 07:50:37 +00:00
|
|
|
# elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) \
|
2014-05-25 09:03:50 +00:00
|
|
|
|| defined(TARGET_LPC812) || defined(TARGET_KL25Z) || defined(TARGET_KL05Z) || defined(TARGET_STM32F100RB) || defined(TARGET_STM32F051R8)
|
2013-02-18 15:32:11 +00:00
|
|
|
# define OS_SCHEDULERSTKSIZE 128
|
2014-03-20 15:06:24 +00:00
|
|
|
# else
|
|
|
|
# error "no target defined"
|
2013-02-18 15:32:11 +00:00
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// <o>Idle stack size [bytes] <64-4096:8><#/4>
|
|
|
|
// <i> Defines default stack size for the Idle thread.
|
|
|
|
#ifndef OS_IDLESTKSIZE
|
|
|
|
#define OS_IDLESTKSIZE 128
|
|
|
|
#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 WORDS_STACK_SIZE
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// <q>Check for stack overflow
|
|
|
|
// <i> Includes the stack checking code for stack overflow.
|
|
|
|
// <i> Note that additional code reduces the Kernel performance.
|
|
|
|
#ifndef OS_STKCHECK
|
|
|
|
#define OS_STKCHECK 1
|
|
|
|
#endif
|
|
|
|
|
2014-05-29 13:36:51 +00:00
|
|
|
// <o>Processor mode for thread execution
|
|
|
|
// <0=> Unprivileged mode
|
2013-02-18 15:32:11 +00:00
|
|
|
// <1=> Privileged mode
|
|
|
|
// <i> Default: Privileged mode
|
|
|
|
#ifndef OS_RUNPRIV
|
|
|
|
#define OS_RUNPRIV 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// </h>
|
|
|
|
// <h>SysTick Timer Configuration
|
|
|
|
// ==============================
|
|
|
|
//
|
|
|
|
// <o>Timer clock value [Hz] <1-1000000000>
|
|
|
|
// <i> Defines the timer clock value.
|
|
|
|
// <i> Default: 6000000 (6MHz)
|
|
|
|
#ifndef OS_CLOCK
|
|
|
|
# if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
|
|
|
|
# define OS_CLOCK 96000000
|
2013-04-24 14:25:28 +00:00
|
|
|
|
2014-04-29 14:14:33 +00:00
|
|
|
# elif defined(TARGET_LPC1347) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549)
|
2013-07-17 12:28:34 +00:00
|
|
|
# define OS_CLOCK 72000000
|
|
|
|
|
2014-06-20 07:50:37 +00:00
|
|
|
# elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) || defined(TARGET_KL25Z) || defined(TARGET_KL05Z) || defined(TARGET_KL46Z) || defined(TARGET_STM32F051R8) || defined(TARGET_LPC11U68)
|
2013-02-18 15:32:11 +00:00
|
|
|
# define OS_CLOCK 48000000
|
2014-03-19 12:15:59 +00:00
|
|
|
|
2013-09-10 17:30:27 +00:00
|
|
|
# elif defined(TARGET_LPC812)
|
|
|
|
# define OS_CLOCK 36000000
|
2014-03-19 12:15:59 +00:00
|
|
|
|
|
|
|
# elif defined(TARGET_STM32F100RB)
|
|
|
|
# define OS_CLOCK 24000000
|
|
|
|
|
Target K64F addition.
Squashed commit of the following:
commit db3c9f7682083abeb291e01df31e67e4c50845b3
Author: 0xc0170 <c0170@rocketmail.com>
Date: Wed Apr 2 09:52:00 2014 +0200
K64F - KSDK - Warnings fixes
commit a639a5cdff889c13509c954b0a34ebac861c1361
Merge: 67a2c2a f3de345
Author: 0xc0170 <c0170@rocketmail.com>
Date: Tue Apr 1 12:48:35 2014 +0200
Merge branch latest 'master' into dev_target_k64f
Conflicts:
libraries/rtos/rtx/RTX_Conf_CM.c
workspace_tools/build_api.py
commit 67a2c2aeb976f264db52ea10d18fea9de0d7685f
Author: 0xc0170 <c0170@rocketmail.com>
Date: Sun Mar 30 13:19:51 2014 +0200
K64F - PinName for buttons (SW2, SW3)
commit 957573e2cd42d5c73ed99477abb98c8b883695b2
Author: 0xc0170 <c0170@rocketmail.com>
Date: Tue Mar 25 11:46:57 2014 +0100
K64F - pins addition to mbed HAL, uart - 4 instances, fix i2c instance which was not stored
commit 2347a6d03984e297190910a250f2771032ae6327
Author: sg- <sam.w.grove@gmail.com>
Date: Mon Mar 24 15:20:51 2014 -0500
Added wait to i2c stop
commit b7b4a9c72e8724087a44078c41a2cb33e4c8d5e3
Author: 0xc0170 <c0170@rocketmail.com>
Date: Mon Mar 24 19:28:16 2014 +0100
K64F - I2c - ack flag retreive correction (logic inverted in ksdk hal)
commit 46c875251263029e32463c3b48473b10496088d9
Author: sg- <sam.w.grove@gmail.com>
Date: Mon Mar 24 13:16:18 2014 -0500
Added I2C Pinnames
commit b71c7a0dfba7025662f9a9d176494ce4dc86273e
Author: 0xc0170 <c0170@rocketmail.com>
Date: Tue Mar 18 17:02:34 2014 +0100
K64F Arduino pinNames update
commit d41b0ee493263d1d80fcb72b3f0d4d788359c7c9
Merge: 9c0a982 e2574eb
Author: 0xc0170 <c0170@rocketmail.com>
Date: Tue Mar 18 14:57:57 2014 +0100
Merge remote-tracking branch 'upstream/master' into dev_target_k64f.
K64F gpio changed according to the latest mbed master.
Conflicts:
libraries/rtos/rtx/RTX_CM_lib.h
workspace_tools/export/uvision4.py
commit 9c0a9822ab14263fff5e3b6459b7c2b4a77ce30c
Author: 0xc0170 <c0170@rocketmail.com>
Date: Mon Mar 17 21:08:17 2014 +0100
K64F - sleep support
commit 5edcf3603d2e7b00eedbb377203a054b7a01e51d
Author: 0xc0170 <c0170@rocketmail.com>
Date: Sun Mar 16 18:19:55 2014 +0100
K64F - pullup/down corrections, LED1 - R, LED2 - G, LED3 - B
commit a2b3b53a1474d32779654765cd1ce2ba2c6b2186
Author: 0xc0170 <c0170@rocketmail.com>
Date: Thu Mar 13 20:55:39 2014 +0100
K64F - SPI - delays are set, pin definition for tests
commit 1f3b3abe16f4afaaf1b75cb4bf3e3a9d5b6e50a7
Author: 0xc0170 <c0170@rocketmail.com>
Date: Tue Mar 11 21:26:00 2014 +0100
K64F - DAC update - tested with test a8
- internal reference set to VDDA
- PinName DAC0_OUT
commit 26d8cf47f8c0786b290ae659beb022901029b313
Author: 0xc0170 <c0170@rocketmail.com>
Date: Tue Mar 11 08:31:44 2014 +0100
KSDK - drivers layer removal, mbed HAL using only KSDK HAL
- ADC corrections with channels, and clock configuration
commit 67ebe14f5c88725033ea0fb135d94b6bf9a00fdb
Author: 0xc0170 <c0170@rocketmail.com>
Date: Mon Mar 10 12:46:08 2014 +0100
K20 copy files removed, targets.py - vertical alignment for K64F definition
commit be5c562d513c808e5bd425195a4fb1c71f47a57e
Merge: 696a713 fe0aca9
Author: Emilio Monti <emilmont@gmail.com>
Date: Mon Mar 10 11:14:55 2014 +0000
Merge branch 'rtos_support' into dev_target_k64f
commit 696a713751194b4762f1cdf6c17c0786decd7808
Author: 0xc0170 <c0170@rocketmail.com>
Date: Mon Mar 10 12:05:30 2014 +0100
[FIX] K64F - adc, sgtl driver updates
commit fe0aca9940bbdd5ee70a1a7341a0a2ad2abf912b
Author: Emilio Monti <emilmont@gmail.com>
Date: Mon Mar 10 11:04:16 2014 +0000
Add RTOS support for K64F
commit 5c3edcbca6dbcce628c7cde51ac94a6fc6278ba5
Author: 0xc0170 <c0170@rocketmail.com>
Date: Sun Mar 9 20:43:38 2014 +0100
K64F - uvision templates update
- uvision 5.10 supports K64F
commit 33f18d11d0eadb9243f1be0ae96c5f82e2913d48
Merge: 26f7587 74e9b2e
Author: 0xc0170 <c0170@rocketmail.com>
Date: Sat Mar 8 10:34:25 2014 +0100
Update branch from mbed master
- merge branch 'master' into dev_target_k64f
Conflicts:
libraries/USBDevice/USBDevice/USBEndpoints.h
libraries/USBDevice/USBDevice/USBHAL_KL25Z.cpp
workspace_tools/export/uvision4.py
workspace_tools/targets.py
commit 26f75872b19a1db2a3abb34c6e773bac56acb32f
Author: 0xc0170 <c0170@rocketmail.com>
Date: Thu Mar 6 22:15:53 2014 +0100
K64F - USBDevice - MPU disable in init
commit e54d6bbaa68827bd63058fbf2428e289d15ac1f7
Author: 0xc0170 <c0170@rocketmail.com>
Date: Wed Feb 26 21:06:58 2014 +0100
K64F - clock setup 4 (usb clock enable)
commit c4165732b9520cb31ae3d649d50c353d09dc9932
Author: 0xc0170 <c0170@rocketmail.com>
Date: Wed Feb 26 20:01:47 2014 +0100
K64F - USBDevice addition
commit 9fcdbb8562b1415561b04e902fcdbb4724add5af
Author: 0xc0170 <c0170@rocketmail.com>
Date: Mon Feb 24 19:11:48 2014 +0100
K64F SPI HAL - initial version
commit 8093df58fa7d17fcb5ad04872c958d5254ee1d8a
Author: 0xc0170 <c0170@rocketmail.com>
Date: Sat Feb 22 13:14:44 2014 +0100
K64F - RTC and I2C implementation (using KPSDK HAL)
- instance correction in objects and peripherals names headers
commit 7ef3fbda605c2bd53a86f37d0676c0393b2e2949
Author: 0xc0170 <c0170@rocketmail.com>
Date: Fri Feb 14 09:45:27 2014 +0100
mbed RTC HAL for K64F
commit e40332fd2db8bf36b3e6cabac5729e013da40c28
Merge: e059f65 6bfcd87
Author: 0xc0170 <c0170@rocketmail.com>
Date: Thu Feb 13 14:20:20 2014 +0100
Merge branch 'master' into dev_target_k64f
Conflicts:
workspace_tools/build_api.py
workspace_tools/export/uvision4.py
workspace_tools/targets.py
workspace_tools/toolchains/__init__.py
commit e059f65fd09694418f9fa4f38da90954ab9decfe
Author: 0xc0170 <c0170@rocketmail.com>
Date: Wed Feb 5 21:35:49 2014 +0100
pwm mbed HAL
- using jusst ftm hal from KPSDK, not yet functional
commit b784278872b1d66ce2940f4988e0479971de8bc0
Author: 0xc0170 <c0170@rocketmail.com>
Date: Mon Feb 3 18:28:24 2014 +0100
uvision exporters for K64F, uticker - lptmr
- lptmr - no hal neiter driver, quick implementation using registers and internal clock
- exporters for K64F - using K60 1MB target, because K64F is not available in 4.7 yet
commit 7a030693e025c2bd456563f3e6f4456033d3f644
Author: Bogdan Marinescu <bogdan.marinescu@arm.com>
Date: Tue Jan 28 16:29:54 2014 +0200
Attempt to keep target's include directory structure
commit a2445b383224125abf4ee23bd17f1e685010a4a5
Author: 0xc0170 <c0170@rocketmail.com>
Date: Mon Jan 27 07:25:16 2014 +0100
Original KPSDK include directory structure for device
commit 9c07c58bb9cf5e9d8be4c3bec117ee87a5ea81c0
Author: 0xc0170 <c0170@rocketmail.com>
Date: Fri Jan 24 16:51:17 2014 +0000
K64F ADC - initial commit
- ADC using KPSDK driver
commit 88e03ef8c5855a57887bb36cddfa5ab1491d400c
Author: 0xc0170 <c0170@rocketmail.com>
Date: Fri Jan 24 12:18:14 2014 +0000
GPI IRQ
- nvic vectors number correction
- gpio irq HAL implementation
commit e83f1108ae9f779ce240d6cdfe23532bfa00a55e
Author: 0xc0170 <c0170@rocketmail.com>
Date: Fri Jan 24 10:06:44 2014 +0000
PORT HAL implementation
- using gpio hal port
commit 75c21943200c8240d1edaf0a67f84b9f3b43db7f
Author: 0xc0170 <c0170@rocketmail.com>
Date: Thu Jan 23 16:02:36 2014 +0000
Serial (only 8bit at the moment), using KPSDK HAL
commit 296e79def617f005918cd8e2aa574f2908a362ca
Author: 0xc0170 <c0170@rocketmail.com>
Date: Thu Jan 23 08:35:50 2014 +0000
Folder structure correction for K64F - KPSDK
- scripts reverted, only new macro is available
- K64F specific headers are in HAL in device folder
commit f236b1ffcb9c8b443ad8483bca8b0e564a63f004
Author: 0xc0170 <c0170@rocketmail.com>
Date: Wed Jan 22 16:07:30 2014 +0100
update KPSDK to RC1
- the update causes few more dependences which were reported. Will be removed later (usb, boards)
- pit timer - hal use , pit driver uses us period
commit f02c5353d4920e885f803ad235e5e82001e97b94
Author: 0xc0170 <c0170@rocketmail.com>
Date: Tue Jan 21 09:45:55 2014 +0100
KPSDK In/out declaration removal
commit 8c88e098b4dc4901753309f1e6db4adb8aca4384
Author: 0xc0170 <c0170@rocketmail.com>
Date: Tue Jan 21 09:12:41 2014 +0100
gpio_t struct only needs pinName
- gpio_init creates init objects on stack
commit 6b96d4ea2c5a6a2cb13571d740ffb679a62f8f3d
Author: 0xc0170 <c0170@rocketmail.com>
Date: Mon Jan 20 19:59:03 2014 +0100
us ticker - pit implementation (not functional yet)
- pit driver in KPSDK - added sdk prefix to needed functions
commit 098e60a3846abcd4c9c00bd199b01d4b1899807f
Author: 0xc0170 <c0170@rocketmail.com>
Date: Mon Jan 20 13:01:58 2014 +0100
GPIO HAL - gpio_set implementation
commit 2bfebbfc75dcd08c20297ba42dc0cc82e5381a40
Author: 0xc0170 <c0170@rocketmail.com>
Date: Sun Jan 19 20:46:55 2014 +0100
GPIO KPSDK changes
- gpio driver - sdk prefix, no lookuptable, input/output declaration, refactoring, set MUX to GPIO
- gpio api in mbed implementation, tested on blue led
commit d083733c485fbdd79ed9ce87100df9fee82294a7
Author: 0xc0170 <c0170@rocketmail.com>
Date: Sat Jan 18 17:14:09 2014 +0100
Update folder structure for KPSDK
- drivers addition
- usb (needed by drivers - needs to be fixed)
- utilities
- hal folder
- drivers/flash removed (needs to be fixed)
- usb host removed (needs to be fixed)
commit 9abcf3d94a2cc849cd6e586c1bad650b6a340a0c
Author: 0xc0170 <c0170@rocketmail.com>
Date: Thu Jan 16 11:06:16 2014 +0100
Initial commit for K64F
- KPSDK addition
- CMSIS + HAL for K64F
- HAL is not yet implemented
- scripts - target contain macros, ignore folders, cmsis copy folders
2014-04-02 12:39:01 +00:00
|
|
|
# elif defined(TARGET_LPC4088) || defined(TARGET_K64F)
|
2013-05-16 06:53:02 +00:00
|
|
|
# define OS_CLOCK 120000000
|
2014-03-20 15:06:24 +00:00
|
|
|
|
2014-03-24 14:56:58 +00:00
|
|
|
# elif defined(TARGET_STM32F407) || defined(TARGET_F407VG)
|
2014-03-21 12:16:52 +00:00
|
|
|
# define OS_CLOCK 168000000
|
|
|
|
|
2014-05-31 21:15:25 +00:00
|
|
|
# elif defined(TARGET_NRF51822)
|
2014-06-11 21:55:11 +00:00
|
|
|
# define OS_CLOCK 16000000
|
2014-07-08 16:20:58 +00:00
|
|
|
# elif defined(TARGET_STM32F401RE)
|
|
|
|
# define OS_CLOCK 84000000
|
2014-03-20 15:06:24 +00:00
|
|
|
# else
|
|
|
|
# error "no target defined"
|
2013-02-18 15:32:11 +00:00
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// <o>Timer tick value [us] <1-1000000>
|
|
|
|
// <i> Defines the timer tick value.
|
|
|
|
// <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 Callback Queue size <1-32>
|
|
|
|
// <i> Number of concurrent active timer callback functions.
|
|
|
|
// <i> Default: 4
|
|
|
|
#ifndef OS_TIMERCBQSZ
|
|
|
|
#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
|
|
|
|
// ===============================
|
2014-05-29 13:36:51 +00:00
|
|
|
// Define max. number system mutexes that are used to protect
|
2013-02-18 15:32:11 +00:00
|
|
|
// the arm standard runtime library. For microlib they are not used.
|
|
|
|
#ifndef OS_MUTEXCNT
|
|
|
|
#define OS_MUTEXCNT 12
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------
|
|
|
|
* RTX User configuration part END
|
|
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
#define OS_TRV ((uint32_t)(((double)OS_CLOCK*(double)OS_TICK)/1E6)-1)
|
|
|
|
|
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------
|
|
|
|
* OS Idle daemon
|
|
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
void os_idle_demon (void) {
|
|
|
|
/* The idle demon is a system thread, running when no other thread is */
|
|
|
|
/* ready to run. */
|
2014-05-29 13:36:51 +00:00
|
|
|
|
2013-02-18 15:32:11 +00:00
|
|
|
/* Sleep: ideally, we should put the chip to sleep.
|
|
|
|
Unfortunately, this usually requires disconnecting the interface chip (debugger).
|
|
|
|
This can be done, but it would break the local file system.
|
|
|
|
*/
|
|
|
|
for (;;) {
|
|
|
|
// sleep();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------
|
|
|
|
* RTX Errors
|
|
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
extern void mbed_die(void);
|
|
|
|
|
|
|
|
void os_error (uint32_t err_code) {
|
|
|
|
/* This function is called when a runtime error is detected. Parameter */
|
2013-04-30 10:58:51 +00:00
|
|
|
/* 'err_code' holds the runtime error code (defined in RTX_Conf.h). */
|
2013-02-18 15:32:11 +00:00
|
|
|
mbed_die();
|
|
|
|
}
|
|
|
|
|
|
|
|
void sysThreadError(osStatus status) {
|
|
|
|
if (status != osOK) {
|
|
|
|
mbed_die();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------
|
|
|
|
* RTX Configuration Functions
|
|
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
#include "RTX_CM_lib.h"
|
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------
|
|
|
|
* end of file
|
|
|
|
*---------------------------------------------------------------------------*/
|
2014-06-11 20:29:44 +00:00
|
|
|
|