amiro-os / os / modules / DiWheelDrive_1-1 / chconf.h @ e545e620
History | View | Annotate | Download (17.943 KB)
| 1 | e545e620 | Thomas Schöpping | /*
 | 
      
|---|---|---|---|
| 2 | AMiRo-OS is an operating system designed for the Autonomous Mini Robot (AMiRo) platform.
 | 
      ||
| 3 | Copyright (C) 2016..2018  Thomas Schöpping et al.
 | 
      ||
| 4 | |||
| 5 | This program is free software: you can redistribute it and/or modify
 | 
      ||
| 6 | it under the terms of the GNU General Public License as published by
 | 
      ||
| 7 | the Free Software Foundation, either version 3 of the License, or
 | 
      ||
| 8 | (at your option) any later version.
 | 
      ||
| 9 | |||
| 10 | This program is distributed in the hope that it will be useful,
 | 
      ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
      ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
      ||
| 13 | GNU General Public License for more details.
 | 
      ||
| 14 | |||
| 15 | You should have received a copy of the GNU General Public License
 | 
      ||
| 16 | along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
      ||
| 17 | */
 | 
      ||
| 18 | |||
| 19 | 3f899f5d | Thomas Schöpping | /**
 | 
      
| 20 | e545e620 | Thomas Schöpping |  * @file    os/modules/DiWheelDrive/chconf.h
 | 
      
| 21 |  * @brief   ChibiOS Configuration file for the DiWheelDrive module.
 | 
      ||
| 22 |  * @details Contains the application specific kernel settings.
 | 
      ||
| 23 | 3f899f5d | Thomas Schöpping |  *
 | 
      
| 24 |  * @addtogroup config
 | 
      ||
| 25 |  * @details Kernel related settings and hooks.
 | 
      ||
| 26 |  * @{
 | 
      ||
| 27 |  */
 | 
      ||
| 28 | |||
| 29 | 58fe0e0b | Thomas Schöpping | #ifndef _CHCONF_H_
 | 
      
| 30 | #define _CHCONF_H_
 | 
      ||
| 31 | |||
| 32 | e545e620 | Thomas Schöpping | #define _CHIBIOS_RT_CONF_
 | 
      
| 33 | |||
| 34 | #include <aosconf.h>  | 
      ||
| 35 | |||
| 36 | 58fe0e0b | Thomas Schöpping | /*===========================================================================*/
 | 
      
| 37 | /**
 | 
      ||
| 38 | e545e620 | Thomas Schöpping |  * @name System timers settings
 | 
      
| 39 | 58fe0e0b | Thomas Schöpping |  * @{
 | 
      
| 40 |  */
 | 
      ||
| 41 | /*===========================================================================*/
 | 
      ||
| 42 | |||
| 43 | /**
 | 
      ||
| 44 | e545e620 | Thomas Schöpping |  * @brief   System time counter resolution.
 | 
      
| 45 |  * @note    Allowed values are 16 or 32 bits.
 | 
      ||
| 46 |  */
 | 
      ||
| 47 | #define CH_CFG_ST_RESOLUTION 16  | 
      ||
| 48 | |||
| 49 | /**
 | 
      ||
| 50 | 58fe0e0b | Thomas Schöpping |  * @brief   System tick frequency.
 | 
      
| 51 |  * @details Frequency of the system timer that drives the system ticks. This
 | 
      ||
| 52 |  *          setting also defines the system tick time unit.
 | 
      ||
| 53 |  */
 | 
      ||
| 54 | e545e620 | Thomas Schöpping | #if (AMIROOS_CFG_TESTS_ENABLE != true) || defined(__DOXYGEN__)  | 
      
| 55 | #define CH_CFG_ST_FREQUENCY 1000000UL  | 
      ||
| 56 | #else
 | 
      ||
| 57 | #define CH_CFG_ST_FREQUENCY 100000UL  | 
      ||
| 58 | 58fe0e0b | Thomas Schöpping | #endif
 | 
      
| 59 | |||
| 60 | /**
 | 
      ||
| 61 | e545e620 | Thomas Schöpping |  * @brief   Time delta constant for the tick-less mode.
 | 
      
| 62 |  * @note    If this value is zero then the system uses the classic
 | 
      ||
| 63 |  *          periodic tick. This value represents the minimum number
 | 
      ||
| 64 |  *          of ticks that is safe to specify in a timeout directive.
 | 
      ||
| 65 |  *          The value one is not valid, timeouts are rounded up to
 | 
      ||
| 66 |  *          this value.
 | 
      ||
| 67 |  */
 | 
      ||
| 68 | #if (AMIROOS_CFG_TESTS_ENABLE != true) || defined(__DOXYGEN__)  | 
      ||
| 69 | #define CH_CFG_ST_TIMEDELTA 10  | 
      ||
| 70 | #else
 | 
      ||
| 71 | #define CH_CFG_ST_TIMEDELTA 2  | 
      ||
| 72 | #endif
 | 
      ||
| 73 | |||
| 74 | /** @} */
 | 
      ||
| 75 | |||
| 76 | /*===========================================================================*/
 | 
      ||
| 77 | /**
 | 
      ||
| 78 |  * @name Kernel parameters and options
 | 
      ||
| 79 |  * @{
 | 
      ||
| 80 |  */
 | 
      ||
| 81 | /*===========================================================================*/
 | 
      ||
| 82 | |||
| 83 | /**
 | 
      ||
| 84 | 58fe0e0b | Thomas Schöpping |  * @brief   Round robin interval.
 | 
      
| 85 |  * @details This constant is the number of system ticks allowed for the
 | 
      ||
| 86 |  *          threads before preemption occurs. Setting this value to zero
 | 
      ||
| 87 |  *          disables the preemption for threads with equal priority and the
 | 
      ||
| 88 |  *          round robin becomes cooperative. Note that higher priority
 | 
      ||
| 89 |  *          threads can still preempt, the kernel is always preemptive.
 | 
      ||
| 90 |  * @note    Disabling the round robin preemption makes the kernel more compact
 | 
      ||
| 91 |  *          and generally faster.
 | 
      ||
| 92 | e545e620 | Thomas Schöpping |  * @note    The round robin preemption is not supported in tickless mode and
 | 
      
| 93 |  *          must be set to zero in that case.
 | 
      ||
| 94 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 95 | e545e620 | Thomas Schöpping | #define CH_CFG_TIME_QUANTUM 0  | 
      
| 96 | 58fe0e0b | Thomas Schöpping | |
| 97 | /**
 | 
      ||
| 98 |  * @brief   Managed RAM size.
 | 
      ||
| 99 |  * @details Size of the RAM area to be managed by the OS. If set to zero
 | 
      ||
| 100 |  *          then the whole available RAM is used. The core memory is made
 | 
      ||
| 101 |  *          available to the heap allocator and/or can be used directly through
 | 
      ||
| 102 |  *          the simplified core memory allocator.
 | 
      ||
| 103 |  *
 | 
      ||
| 104 |  * @note    In order to let the OS manage the whole RAM the linker script must
 | 
      ||
| 105 |  *          provide the @p __heap_base__ and @p __heap_end__ symbols.
 | 
      ||
| 106 | e545e620 | Thomas Schöpping |  * @note    Requires @p CH_CFG_USE_MEMCORE.
 | 
      
| 107 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 108 | e545e620 | Thomas Schöpping | #define CH_CFG_MEMCORE_SIZE 0  | 
      
| 109 | 58fe0e0b | Thomas Schöpping | |
| 110 | /**
 | 
      ||
| 111 |  * @brief   Idle thread automatic spawn suppression.
 | 
      ||
| 112 |  * @details When this option is activated the function @p chSysInit()
 | 
      ||
| 113 | e545e620 | Thomas Schöpping |  *          does not spawn the idle thread. The application @p main()
 | 
      
| 114 |  *          function becomes the idle thread and must implement an
 | 
      ||
| 115 |  *          infinite loop.
 | 
      ||
| 116 |  */
 | 
      ||
| 117 | #define CH_CFG_NO_IDLE_THREAD               FALSE
 | 
      ||
| 118 | 58fe0e0b | Thomas Schöpping | |
| 119 | /** @} */
 | 
      ||
| 120 | |||
| 121 | /*===========================================================================*/
 | 
      ||
| 122 | /**
 | 
      ||
| 123 |  * @name Performance options
 | 
      ||
| 124 |  * @{
 | 
      ||
| 125 |  */
 | 
      ||
| 126 | /*===========================================================================*/
 | 
      ||
| 127 | |||
| 128 | /**
 | 
      ||
| 129 |  * @brief   OS optimization.
 | 
      ||
| 130 |  * @details If enabled then time efficient rather than space efficient code
 | 
      ||
| 131 |  *          is used when two possible implementations exist.
 | 
      ||
| 132 |  *
 | 
      ||
| 133 |  * @note    This is not related to the compiler optimization options.
 | 
      ||
| 134 |  * @note    The default is @p TRUE.
 | 
      ||
| 135 |  */
 | 
      ||
| 136 | e545e620 | Thomas Schöpping | #define CH_CFG_OPTIMIZE_SPEED               TRUE
 | 
      
| 137 | 58fe0e0b | Thomas Schöpping | |
| 138 | /** @} */
 | 
      ||
| 139 | |||
| 140 | /*===========================================================================*/
 | 
      ||
| 141 | /**
 | 
      ||
| 142 |  * @name Subsystem options
 | 
      ||
| 143 |  * @{
 | 
      ||
| 144 |  */
 | 
      ||
| 145 | /*===========================================================================*/
 | 
      ||
| 146 | |||
| 147 | /**
 | 
      ||
| 148 | e545e620 | Thomas Schöpping |  * @brief   Time Measurement APIs.
 | 
      
| 149 |  * @details If enabled then the time measurement APIs are included in
 | 
      ||
| 150 |  *          the kernel.
 | 
      ||
| 151 |  *
 | 
      ||
| 152 |  * @note    The default is @p TRUE.
 | 
      ||
| 153 |  */
 | 
      ||
| 154 | #define CH_CFG_USE_TM                       FALSE
 | 
      ||
| 155 | |||
| 156 | /**
 | 
      ||
| 157 | 58fe0e0b | Thomas Schöpping |  * @brief   Threads registry APIs.
 | 
      
| 158 |  * @details If enabled then the registry APIs are included in the kernel.
 | 
      ||
| 159 |  *
 | 
      ||
| 160 |  * @note    The default is @p TRUE.
 | 
      ||
| 161 |  */
 | 
      ||
| 162 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_REGISTRY                 FALSE
 | 
      
| 163 | 58fe0e0b | Thomas Schöpping | |
| 164 | /**
 | 
      ||
| 165 |  * @brief   Threads synchronization APIs.
 | 
      ||
| 166 |  * @details If enabled then the @p chThdWait() function is included in
 | 
      ||
| 167 |  *          the kernel.
 | 
      ||
| 168 |  *
 | 
      ||
| 169 |  * @note    The default is @p TRUE.
 | 
      ||
| 170 |  */
 | 
      ||
| 171 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_WAITEXIT                 TRUE
 | 
      
| 172 | 58fe0e0b | Thomas Schöpping | |
| 173 | /**
 | 
      ||
| 174 |  * @brief   Semaphores APIs.
 | 
      ||
| 175 |  * @details If enabled then the Semaphores APIs are included in the kernel.
 | 
      ||
| 176 |  *
 | 
      ||
| 177 |  * @note    The default is @p TRUE.
 | 
      ||
| 178 |  */
 | 
      ||
| 179 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_SEMAPHORES               FALSE
 | 
      
| 180 | 58fe0e0b | Thomas Schöpping | |
| 181 | /**
 | 
      ||
| 182 |  * @brief   Semaphores queuing mode.
 | 
      ||
| 183 |  * @details If enabled then the threads are enqueued on semaphores by
 | 
      ||
| 184 |  *          priority rather than in FIFO order.
 | 
      ||
| 185 |  *
 | 
      ||
| 186 | e545e620 | Thomas Schöpping |  * @note    The default is @p FALSE. Enable this if you have special
 | 
      
| 187 |  *          requirements.
 | 
      ||
| 188 |  * @note    Requires @p CH_CFG_USE_SEMAPHORES.
 | 
      ||
| 189 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 190 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_SEMAPHORES_PRIORITY      FALSE
 | 
      
| 191 | 58fe0e0b | Thomas Schöpping | |
| 192 | /**
 | 
      ||
| 193 | e545e620 | Thomas Schöpping |  * @brief   Mutexes APIs.
 | 
      
| 194 |  * @details If enabled then the mutexes APIs are included in the kernel.
 | 
      ||
| 195 | 58fe0e0b | Thomas Schöpping |  *
 | 
      
| 196 |  * @note    The default is @p TRUE.
 | 
      ||
| 197 |  */
 | 
      ||
| 198 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_MUTEXES                  TRUE
 | 
      
| 199 | 58fe0e0b | Thomas Schöpping | |
| 200 | /**
 | 
      ||
| 201 | e545e620 | Thomas Schöpping |  * @brief   Enables recursive behavior on mutexes.
 | 
      
| 202 |  * @note    Recursive mutexes are heavier and have an increased
 | 
      ||
| 203 |  *          memory footprint.
 | 
      ||
| 204 | 58fe0e0b | Thomas Schöpping |  *
 | 
      
| 205 | e545e620 | Thomas Schöpping |  * @note    The default is @p FALSE.
 | 
      
| 206 |  * @note    Requires @p CH_CFG_USE_MUTEXES.
 | 
      ||
| 207 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 208 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_MUTEXES_RECURSIVE        FALSE
 | 
      
| 209 | 58fe0e0b | Thomas Schöpping | |
| 210 | /**
 | 
      ||
| 211 |  * @brief   Conditional Variables APIs.
 | 
      ||
| 212 |  * @details If enabled then the conditional variables APIs are included
 | 
      ||
| 213 |  *          in the kernel.
 | 
      ||
| 214 |  *
 | 
      ||
| 215 |  * @note    The default is @p TRUE.
 | 
      ||
| 216 | e545e620 | Thomas Schöpping |  * @note    Requires @p CH_CFG_USE_MUTEXES.
 | 
      
| 217 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 218 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_CONDVARS                 FALSE
 | 
      
| 219 | 58fe0e0b | Thomas Schöpping | |
| 220 | /**
 | 
      ||
| 221 |  * @brief   Conditional Variables APIs with timeout.
 | 
      ||
| 222 |  * @details If enabled then the conditional variables APIs with timeout
 | 
      ||
| 223 |  *          specification are included in the kernel.
 | 
      ||
| 224 |  *
 | 
      ||
| 225 |  * @note    The default is @p TRUE.
 | 
      ||
| 226 | e545e620 | Thomas Schöpping |  * @note    Requires @p CH_CFG_USE_CONDVARS.
 | 
      
| 227 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 228 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_CONDVARS_TIMEOUT         FALSE
 | 
      
| 229 | 58fe0e0b | Thomas Schöpping | |
| 230 | /**
 | 
      ||
| 231 |  * @brief   Events Flags APIs.
 | 
      ||
| 232 |  * @details If enabled then the event flags APIs are included in the kernel.
 | 
      ||
| 233 |  *
 | 
      ||
| 234 |  * @note    The default is @p TRUE.
 | 
      ||
| 235 |  */
 | 
      ||
| 236 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_EVENTS                   TRUE
 | 
      
| 237 | 58fe0e0b | Thomas Schöpping | |
| 238 | /**
 | 
      ||
| 239 |  * @brief   Events Flags APIs with timeout.
 | 
      ||
| 240 |  * @details If enabled then the events APIs with timeout specification
 | 
      ||
| 241 |  *          are included in the kernel.
 | 
      ||
| 242 |  *
 | 
      ||
| 243 |  * @note    The default is @p TRUE.
 | 
      ||
| 244 | e545e620 | Thomas Schöpping |  * @note    Requires @p CH_CFG_USE_EVENTS.
 | 
      
| 245 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 246 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_EVENTS_TIMEOUT           TRUE
 | 
      
| 247 | 58fe0e0b | Thomas Schöpping | |
| 248 | /**
 | 
      ||
| 249 |  * @brief   Synchronous Messages APIs.
 | 
      ||
| 250 |  * @details If enabled then the synchronous messages APIs are included
 | 
      ||
| 251 |  *          in the kernel.
 | 
      ||
| 252 |  *
 | 
      ||
| 253 |  * @note    The default is @p TRUE.
 | 
      ||
| 254 |  */
 | 
      ||
| 255 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_MESSAGES                 FALSE
 | 
      
| 256 | 58fe0e0b | Thomas Schöpping | |
| 257 | /**
 | 
      ||
| 258 |  * @brief   Synchronous Messages queuing mode.
 | 
      ||
| 259 |  * @details If enabled then messages are served by priority rather than in
 | 
      ||
| 260 |  *          FIFO order.
 | 
      ||
| 261 |  *
 | 
      ||
| 262 | e545e620 | Thomas Schöpping |  * @note    The default is @p FALSE. Enable this if you have special
 | 
      
| 263 |  *          requirements.
 | 
      ||
| 264 |  * @note    Requires @p CH_CFG_USE_MESSAGES.
 | 
      ||
| 265 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 266 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_MESSAGES_PRIORITY        FALSE
 | 
      
| 267 | 58fe0e0b | Thomas Schöpping | |
| 268 | /**
 | 
      ||
| 269 |  * @brief   Mailboxes APIs.
 | 
      ||
| 270 |  * @details If enabled then the asynchronous messages (mailboxes) APIs are
 | 
      ||
| 271 |  *          included in the kernel.
 | 
      ||
| 272 |  *
 | 
      ||
| 273 |  * @note    The default is @p TRUE.
 | 
      ||
| 274 | e545e620 | Thomas Schöpping |  * @note    Requires @p CH_CFG_USE_SEMAPHORES.
 | 
      
| 275 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 276 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_MAILBOXES                FALSE
 | 
      
| 277 | 58fe0e0b | Thomas Schöpping | |
| 278 | /**
 | 
      ||
| 279 |  * @brief   I/O Queues APIs.
 | 
      ||
| 280 |  * @details If enabled then the I/O queues APIs are included in the kernel.
 | 
      ||
| 281 |  *
 | 
      ||
| 282 |  * @note    The default is @p TRUE.
 | 
      ||
| 283 |  */
 | 
      ||
| 284 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_QUEUES                   FALSE
 | 
      
| 285 | 58fe0e0b | Thomas Schöpping | |
| 286 | /**
 | 
      ||
| 287 |  * @brief   Core Memory Manager APIs.
 | 
      ||
| 288 |  * @details If enabled then the core memory manager APIs are included
 | 
      ||
| 289 |  *          in the kernel.
 | 
      ||
| 290 |  *
 | 
      ||
| 291 |  * @note    The default is @p TRUE.
 | 
      ||
| 292 |  */
 | 
      ||
| 293 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_MEMCORE                  FALSE
 | 
      
| 294 | 58fe0e0b | Thomas Schöpping | |
| 295 | /**
 | 
      ||
| 296 |  * @brief   Heap Allocator APIs.
 | 
      ||
| 297 |  * @details If enabled then the memory heap allocator APIs are included
 | 
      ||
| 298 |  *          in the kernel.
 | 
      ||
| 299 |  *
 | 
      ||
| 300 |  * @note    The default is @p TRUE.
 | 
      ||
| 301 | e545e620 | Thomas Schöpping |  * @note    Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
 | 
      
| 302 |  *          @p CH_CFG_USE_SEMAPHORES.
 | 
      ||
| 303 | 58fe0e0b | Thomas Schöpping |  * @note    Mutexes are recommended.
 | 
      
| 304 |  */
 | 
      ||
| 305 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_HEAP                     FALSE
 | 
      
| 306 | 58fe0e0b | Thomas Schöpping | |
| 307 | /**
 | 
      ||
| 308 |  * @brief   Memory Pools Allocator APIs.
 | 
      ||
| 309 |  * @details If enabled then the memory pools allocator APIs are included
 | 
      ||
| 310 |  *          in the kernel.
 | 
      ||
| 311 |  *
 | 
      ||
| 312 |  * @note    The default is @p TRUE.
 | 
      ||
| 313 |  */
 | 
      ||
| 314 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_MEMPOOLS                 FALSE
 | 
      
| 315 | 58fe0e0b | Thomas Schöpping | |
| 316 | /**
 | 
      ||
| 317 |  * @brief   Dynamic Threads APIs.
 | 
      ||
| 318 |  * @details If enabled then the dynamic threads creation APIs are included
 | 
      ||
| 319 |  *          in the kernel.
 | 
      ||
| 320 |  *
 | 
      ||
| 321 |  * @note    The default is @p TRUE.
 | 
      ||
| 322 | e545e620 | Thomas Schöpping |  * @note    Requires @p CH_CFG_USE_WAITEXIT.
 | 
      
| 323 |  * @note    Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
 | 
      ||
| 324 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 325 | e545e620 | Thomas Schöpping | #define CH_CFG_USE_DYNAMIC                  FALSE
 | 
      
| 326 | 58fe0e0b | Thomas Schöpping | |
| 327 | /** @} */
 | 
      ||
| 328 | |||
| 329 | /*===========================================================================*/
 | 
      ||
| 330 | /**
 | 
      ||
| 331 |  * @name Debug options
 | 
      ||
| 332 |  * @{
 | 
      ||
| 333 |  */
 | 
      ||
| 334 | /*===========================================================================*/
 | 
      ||
| 335 | |||
| 336 | /**
 | 
      ||
| 337 | e545e620 | Thomas Schöpping |  * @brief   Debug option, kernel statistics.
 | 
      
| 338 |  *
 | 
      ||
| 339 |  * @note    The default is @p FALSE.
 | 
      ||
| 340 |  */
 | 
      ||
| 341 | #define CH_DBG_STATISTICS                   FALSE
 | 
      ||
| 342 | |||
| 343 | /**
 | 
      ||
| 344 | 58fe0e0b | Thomas Schöpping |  * @brief   Debug option, system state check.
 | 
      
| 345 |  * @details If enabled the correct call protocol for system APIs is checked
 | 
      ||
| 346 |  *          at runtime.
 | 
      ||
| 347 |  *
 | 
      ||
| 348 |  * @note    The default is @p FALSE.
 | 
      ||
| 349 |  */
 | 
      ||
| 350 | e545e620 | Thomas Schöpping | #if (AMIROOS_CFG_DBG == true) || defined(__DOXYGEN__)  | 
      
| 351 | #define CH_DBG_SYSTEM_STATE_CHECK           TRUE
 | 
      ||
| 352 | #else
 | 
      ||
| 353 | #define CH_DBG_SYSTEM_STATE_CHECK           FALSE
 | 
      ||
| 354 | 58fe0e0b | Thomas Schöpping | #endif
 | 
      
| 355 | |||
| 356 | /**
 | 
      ||
| 357 |  * @brief   Debug option, parameters checks.
 | 
      ||
| 358 |  * @details If enabled then the checks on the API functions input
 | 
      ||
| 359 |  *          parameters are activated.
 | 
      ||
| 360 |  *
 | 
      ||
| 361 |  * @note    The default is @p FALSE.
 | 
      ||
| 362 |  */
 | 
      ||
| 363 | e545e620 | Thomas Schöpping | #if (AMIROOS_CFG_DBG == true) || defined(__DOXYGEN__)  | 
      
| 364 | #define CH_DBG_ENABLE_CHECKS                TRUE
 | 
      ||
| 365 | #else
 | 
      ||
| 366 | #define CH_DBG_ENABLE_CHECKS                FALSE
 | 
      ||
| 367 | 58fe0e0b | Thomas Schöpping | #endif
 | 
      
| 368 | |||
| 369 | /**
 | 
      ||
| 370 |  * @brief   Debug option, consistency checks.
 | 
      ||
| 371 |  * @details If enabled then all the assertions in the kernel code are
 | 
      ||
| 372 |  *          activated. This includes consistency checks inside the kernel,
 | 
      ||
| 373 |  *          runtime anomalies and port-defined checks.
 | 
      ||
| 374 |  *
 | 
      ||
| 375 |  * @note    The default is @p FALSE.
 | 
      ||
| 376 |  */
 | 
      ||
| 377 | e545e620 | Thomas Schöpping | #if (AMIROOS_CFG_DBG == true) || defined(__DOXYGEN__)  | 
      
| 378 | #define CH_DBG_ENABLE_ASSERTS               TRUE
 | 
      ||
| 379 | #else
 | 
      ||
| 380 | #define CH_DBG_ENABLE_ASSERTS               FALSE
 | 
      ||
| 381 | 58fe0e0b | Thomas Schöpping | #endif
 | 
      
| 382 | |||
| 383 | /**
 | 
      ||
| 384 |  * @brief   Debug option, trace buffer.
 | 
      ||
| 385 | e545e620 | Thomas Schöpping |  * @details If enabled then the trace buffer is activated.
 | 
      
| 386 | 58fe0e0b | Thomas Schöpping |  *
 | 
      
| 387 | e545e620 | Thomas Schöpping |  * @note    The default is @p CH_DBG_TRACE_MASK_DISABLED.
 | 
      
| 388 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 389 | e545e620 | Thomas Schöpping | #define CH_DBG_TRACE_MASK                   CH_DBG_TRACE_MASK_DISABLED
 | 
      
| 390 | |||
| 391 | /**
 | 
      ||
| 392 |  * @brief   Trace buffer entries.
 | 
      ||
| 393 |  * @note    The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
 | 
      ||
| 394 |  *          different from @p CH_DBG_TRACE_MASK_DISABLED.
 | 
      ||
| 395 |  */
 | 
      ||
| 396 | #define CH_DBG_TRACE_BUFFER_SIZE 128  | 
      ||
| 397 | 58fe0e0b | Thomas Schöpping | |
| 398 | /**
 | 
      ||
| 399 |  * @brief   Debug option, stack checks.
 | 
      ||
| 400 |  * @details If enabled then a runtime stack check is performed.
 | 
      ||
| 401 |  *
 | 
      ||
| 402 |  * @note    The default is @p FALSE.
 | 
      ||
| 403 |  * @note    The stack check is performed in a architecture/port dependent way.
 | 
      ||
| 404 |  *          It may not be implemented or some ports.
 | 
      ||
| 405 |  * @note    The default failure mode is to halt the system with the global
 | 
      ||
| 406 |  *          @p panic_msg variable set to @p NULL.
 | 
      ||
| 407 |  */
 | 
      ||
| 408 | e545e620 | Thomas Schöpping | #if (AMIROOS_CFG_DBG == true) || defined(__DOXYGEN__)  | 
      
| 409 | #define CH_DBG_ENABLE_STACK_CHECK           TRUE
 | 
      ||
| 410 | #else
 | 
      ||
| 411 | #define CH_DBG_ENABLE_STACK_CHECK           FALSE
 | 
      ||
| 412 | 58fe0e0b | Thomas Schöpping | #endif
 | 
      
| 413 | |||
| 414 | /**
 | 
      ||
| 415 |  * @brief   Debug option, stacks initialization.
 | 
      ||
| 416 |  * @details If enabled then the threads working area is filled with a byte
 | 
      ||
| 417 |  *          value when a thread is created. This can be useful for the
 | 
      ||
| 418 |  *          runtime measurement of the used stack.
 | 
      ||
| 419 |  *
 | 
      ||
| 420 |  * @note    The default is @p FALSE.
 | 
      ||
| 421 |  */
 | 
      ||
| 422 | e545e620 | Thomas Schöpping | #if (AMIROOS_CFG_PROFILE == true) || defined(__DOXYGEN__)  | 
      
| 423 | #define CH_DBG_FILL_THREADS                 TRUE
 | 
      ||
| 424 | #else
 | 
      ||
| 425 | #define CH_DBG_FILL_THREADS                 FALSE
 | 
      ||
| 426 | 58fe0e0b | Thomas Schöpping | #endif
 | 
      
| 427 | |||
| 428 | /**
 | 
      ||
| 429 |  * @brief   Debug option, threads profiling.
 | 
      ||
| 430 | e545e620 | Thomas Schöpping |  * @details If enabled then a field is added to the @p thread_t structure that
 | 
      
| 431 | 58fe0e0b | Thomas Schöpping |  *          counts the system ticks occurred while executing the thread.
 | 
      
| 432 |  *
 | 
      ||
| 433 | e545e620 | Thomas Schöpping |  * @note    The default is @p FALSE.
 | 
      
| 434 |  * @note    This debug option is not currently compatible with the
 | 
      ||
| 435 |  *          tickless mode.
 | 
      ||
| 436 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 437 | e545e620 | Thomas Schöpping | #if ((CH_CFG_ST_TIMEDELTA == 0) && (AMIROOS_CFG_PROFILE == true)) || defined(__DOXYGEN__)  | 
      
| 438 |   #define CH_DBG_THREADS_PROFILING          TRUE
 | 
      ||
| 439 | #else
 | 
      ||
| 440 |   #define CH_DBG_THREADS_PROFILING          FALSE
 | 
      ||
| 441 | 58fe0e0b | Thomas Schöpping | #endif
 | 
      
| 442 | |||
| 443 | /** @} */
 | 
      ||
| 444 | |||
| 445 | /*===========================================================================*/
 | 
      ||
| 446 | /**
 | 
      ||
| 447 |  * @name Kernel hooks
 | 
      ||
| 448 |  * @{
 | 
      ||
| 449 |  */
 | 
      ||
| 450 | /*===========================================================================*/
 | 
      ||
| 451 | |||
| 452 | /**
 | 
      ||
| 453 |  * @brief   Threads descriptor structure extension.
 | 
      ||
| 454 | e545e620 | Thomas Schöpping |  * @details User fields added to the end of the @p thread_t structure.
 | 
      
| 455 | 58fe0e0b | Thomas Schöpping |  */
 | 
      
| 456 | e545e620 | Thomas Schöpping | #define CH_CFG_THREAD_EXTRA_FIELDS                                          \
 | 
      
| 457 | 58fe0e0b | Thomas Schöpping |   /* Add threads custom fields here.*/
 | 
      
| 458 | |||
| 459 | /**
 | 
      ||
| 460 |  * @brief   Threads initialization hook.
 | 
      ||
| 461 |  * @details User initialization code added to the @p chThdInit() API.
 | 
      ||
| 462 |  *
 | 
      ||
| 463 |  * @note    It is invoked from within @p chThdInit() and implicitly from all
 | 
      ||
| 464 |  *          the threads creation APIs.
 | 
      ||
| 465 |  */
 | 
      ||
| 466 | e545e620 | Thomas Schöpping | #define CH_CFG_THREAD_INIT_HOOK(tp) {                                       \
 | 
      
| 467 | 58fe0e0b | Thomas Schöpping |   /* Add threads initialization code here.*/                                \
 | 
      
| 468 | }  | 
      ||
| 469 | |||
| 470 | /**
 | 
      ||
| 471 |  * @brief   Threads finalization hook.
 | 
      ||
| 472 |  * @details User finalization code added to the @p chThdExit() API.
 | 
      ||
| 473 |  *
 | 
      ||
| 474 |  * @note    It is inserted into lock zone.
 | 
      ||
| 475 |  * @note    It is also invoked when the threads simply return in order to
 | 
      ||
| 476 |  *          terminate.
 | 
      ||
| 477 |  */
 | 
      ||
| 478 | e545e620 | Thomas Schöpping | #define CH_CFG_THREAD_EXIT_HOOK(tp) {                                       \
 | 
      
| 479 | 58fe0e0b | Thomas Schöpping |   /* Add threads finalization code here.*/                                  \
 | 
      
| 480 | }  | 
      ||
| 481 | |||
| 482 | /**
 | 
      ||
| 483 |  * @brief   Context switch hook.
 | 
      ||
| 484 |  * @details This hook is invoked just before switching between threads.
 | 
      ||
| 485 |  */
 | 
      ||
| 486 | e545e620 | Thomas Schöpping | #define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) {                              \
 | 
      
| 487 | 58fe0e0b | Thomas Schöpping |   /* Context switch code here.*/                                            \
 | 
      
| 488 | }  | 
      ||
| 489 | e545e620 | Thomas Schöpping | |
| 490 | /**
 | 
      ||
| 491 |  * @brief   ISR enter hook.
 | 
      ||
| 492 |  */
 | 
      ||
| 493 | #define CH_CFG_IRQ_PROLOGUE_HOOK() {                                        \
 | 
      ||
| 494 |   /* IRQ prologue code here.*/                                              \
 | 
      ||
| 495 | }  | 
      ||
| 496 | |||
| 497 | /**
 | 
      ||
| 498 |  * @brief   ISR exit hook.
 | 
      ||
| 499 |  */
 | 
      ||
| 500 | #define CH_CFG_IRQ_EPILOGUE_HOOK() {                                        \
 | 
      ||
| 501 |   /* IRQ epilogue code here.*/                                              \
 | 
      ||
| 502 | }  | 
      ||
| 503 | |||
| 504 | /**
 | 
      ||
| 505 |  * @brief   Idle thread enter hook.
 | 
      ||
| 506 |  * @note    This hook is invoked within a critical zone, no OS functions
 | 
      ||
| 507 |  *          should be invoked from here.
 | 
      ||
| 508 |  * @note    This macro can be used to activate a power saving mode.
 | 
      ||
| 509 |  */
 | 
      ||
| 510 | #define CH_CFG_IDLE_ENTER_HOOK() {                                          \
 | 
      ||
| 511 |   /* Idle-enter code here.*/                                                \
 | 
      ||
| 512 | }  | 
      ||
| 513 | |||
| 514 | /**
 | 
      ||
| 515 |  * @brief   Idle thread leave hook.
 | 
      ||
| 516 |  * @note    This hook is invoked within a critical zone, no OS functions
 | 
      ||
| 517 |  *          should be invoked from here.
 | 
      ||
| 518 |  * @note    This macro can be used to deactivate a power saving mode.
 | 
      ||
| 519 |  */
 | 
      ||
| 520 | #define CH_CFG_IDLE_LEAVE_HOOK() {                                          \
 | 
      ||
| 521 |   /* Idle-leave code here.*/                                                \
 | 
      ||
| 522 | }  | 
      ||
| 523 | 58fe0e0b | Thomas Schöpping | |
| 524 | /**
 | 
      ||
| 525 |  * @brief   Idle Loop hook.
 | 
      ||
| 526 |  * @details This hook is continuously invoked by the idle thread loop.
 | 
      ||
| 527 |  */
 | 
      ||
| 528 | e545e620 | Thomas Schöpping | #define CH_CFG_IDLE_LOOP_HOOK() {                                           \
 | 
      
| 529 | 58fe0e0b | Thomas Schöpping |   /* Idle loop code here.*/                                                 \
 | 
      
| 530 | }  | 
      ||
| 531 | |||
| 532 | /**
 | 
      ||
| 533 |  * @brief   System tick event hook.
 | 
      ||
| 534 |  * @details This hook is invoked in the system tick handler immediately
 | 
      ||
| 535 |  *          after processing the virtual timers queue.
 | 
      ||
| 536 |  */
 | 
      ||
| 537 | e545e620 | Thomas Schöpping | #define CH_CFG_SYSTEM_TICK_HOOK() {                                         \
 | 
      
| 538 | 58fe0e0b | Thomas Schöpping |   /* System tick event code here.*/                                         \
 | 
      
| 539 | }  | 
      ||
| 540 | |||
| 541 | /**
 | 
      ||
| 542 |  * @brief   System halt hook.
 | 
      ||
| 543 |  * @details This hook is invoked in case to a system halting error before
 | 
      ||
| 544 |  *          the system is halted.
 | 
      ||
| 545 |  */
 | 
      ||
| 546 | e545e620 | Thomas Schöpping | #define CH_CFG_SYSTEM_HALT_HOOK(reason) {                                   \
 | 
      
| 547 | extern void aosPrintHaltErrorCode(const char* reason); \  | 
      ||
| 548 | aosPrintHaltErrorCode(reason); \  | 
      ||
| 549 | 58fe0e0b | Thomas Schöpping | }  | 
      
| 550 | e545e620 | Thomas Schöpping | |
| 551 | /**
 | 
      ||
| 552 |  * @brief   Trace hook.
 | 
      ||
| 553 |  * @details This hook is invoked each time a new record is written in the
 | 
      ||
| 554 |  *          trace buffer.
 | 
      ||
| 555 |  */
 | 
      ||
| 556 | #define CH_CFG_TRACE_HOOK(tep) {                                            \
 | 
      ||
| 557 |   /* Trace code here.*/                                                     \
 | 
      ||
| 558 | }  | 
      ||
| 559 | |||
| 560 | /** @} */
 | 
      ||
| 561 | |||
| 562 | /*===========================================================================*/
 | 
      ||
| 563 | /**
 | 
      ||
| 564 |  * @name Port specific settings
 | 
      ||
| 565 |  * @{
 | 
      ||
| 566 |  */
 | 
      ||
| 567 | /*===========================================================================*/
 | 
      ||
| 568 | |||
| 569 | /**
 | 
      ||
| 570 |  * @brief   NVIC VTOR initialization offset.
 | 
      ||
| 571 |  * @details On initialization, the code at this address in the flash memory will be executed.
 | 
      ||
| 572 |  */
 | 
      ||
| 573 | #define CORTEX_VTOR_INIT 0x00006000U  | 
      ||
| 574 | 58fe0e0b | Thomas Schöpping | |
| 575 | /** @} */
 | 
      ||
| 576 | |||
| 577 | /*===========================================================================*/
 | 
      ||
| 578 | e545e620 | Thomas Schöpping | /**
 | 
      
| 579 |  * @name other
 | 
      ||
| 580 |  * @{
 | 
      ||
| 581 |  */
 | 
      ||
| 582 | 58fe0e0b | Thomas Schöpping | /*===========================================================================*/
 | 
      
| 583 | |||
| 584 | e545e620 | Thomas Schöpping | /**
 | 
      
| 585 |  * @brief   Flag to enable/disable floating point support in chprinf()
 | 
      ||
| 586 |  */
 | 
      ||
| 587 | #define CHPRINTF_USE_FLOAT                  TRUE
 | 
      ||
| 588 | |||
| 589 | /** @} */
 | 
      ||
| 590 | 58fe0e0b | Thomas Schöpping | |
| 591 | #endif /* _CHCONF_H_ */  | 
      ||
| 592 | 3f899f5d | Thomas Schöpping | |
| 593 | /** @} */ |