/*
* FreeRTOS Kernel V10.0.1
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* http://www.FreeRTOS.org
* http://aws.amazon.com/freertos
*
* 1 tab == 4 spaces!
*/
/* Standard includes. */
#include <stdlib.h>
#include <string.h>
/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
all the API functions to use the MPU wrappers. That should only be done when
task.h is included from an application file. */
#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
/* FreeRTOS includes. */
#include "FreeRTOS.h"
#include "task.h"
#include "timers.h"
#include "stack_macros.h"
/* Lint e961 and e750 are suppressed as a MISRA exception justified because the
MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the
header files above, but not in this file, in order to generate the correct
privileged Vs unprivileged linkage and placement. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */
/* Set configUSE_STATS_FORMATTING_FUNCTIONS to 2 to include the stats formatting
functions but without including stdio.h here. */
#if ( configUSE_STATS_FORMATTING_FUNCTIONS == 1 )
/* At the bottom of this file are two optional functions that can be used
to generate human readable text from the raw data generated by the
uxTaskGetSystemState() function. Note the formatting functions are provided
for convenience only, and are NOT considered part of the kernel. */
#include <stdio.h>
#endif /* configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) */
#if( configUSE_PREEMPTION == 0 )
/* If the cooperative scheduler is being used then a yield should not be
performed just because a higher priority task has been woken. */
#define taskYIELD_IF_USING_PREEMPTION()
#else
#define taskYIELD_IF_USING_PREEMPTION() portYIELD_WITHIN_API()
#endif
/* Values that can be assigned to the ucNotifyState member of the TCB. */
#define taskNOT_WAITING_NOTIFICATION ( ( uint8_t ) 0 )
#define taskWAITING_NOTIFICATION ( ( uint8_t ) 1 )
#define taskNOTIFICATION_RECEIVED ( ( uint8_t ) 2 )
/*
* The value used to fill the stack of a task when the task is created. This
* is used purely for checking the high water mark for tasks.
*/
#define tskSTACK_FILL_BYTE ( 0xa5U )
/* Sometimes the FreeRTOSConfig.h settings only allow a task to be created using
dynamically allocated RAM, in which case when any task is deleted it is known
that both the task's stack and TCB need to be freed. Sometimes the
FreeRTOSConfig.h settings only allow a task to be created using statically
allocated RAM, in which case when any task is deleted it is known that neither
the task's stack or TCB should be freed. Sometimes the FreeRTOSConfig.h
settings allow a task to be created using either statically or dynamically
allocated RAM, in which case a member of the TCB is used to record whether the
stack and/or TCB were allocated statically or dynamically, so when a task is
deleted the RAM that was allocated dynamically is freed again and no attempt is
made to free the RAM that was allocated statically.
tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is only true if it is possible for a
task to be created using either statically or dynamically allocated RAM. Note
that if portUSING_MPU_WRAPPERS is 1 then a protected task can be created with
a statically allocated stack and a dynamically allocated TCB.
!!!NOTE!!! If the definition of tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is
changed then the definition of StaticTask_t must also be updated. */
#define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
#define tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 0 )
#define tskSTATICALLY_ALLOCATED_STACK_ONLY ( ( uint8_t ) 1 )
#define tskSTATICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 2 )
/* If any of the following are set then task stacks are filled with a known
value so the high water mark can be determined. If none of the following are
set then don't fill the stack so there is no unnecessary dependency on memset. */
#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) )
#define tskSET_NEW_STACKS_TO_KNOWN_VALUE 1
#else
#define tskSET_NEW_STACKS_TO_KNOWN_VALUE 0
#endif
/*
* Macros used by vListTask to indicate which state a task is in.
*/
#define tskRUNNING_CHAR ( 'X' )
#define tskBLOCKED_CHAR ( 'B' )
#define tskREADY_CHAR ( 'R' )
#define tskDELETED_CHAR ( 'D' )
#define tskSUSPENDED_CHAR ( 'S' )
/*
* Some kernel aware debuggers require the data the debugger needs access to be
* global, rather than file scope.
*/
#ifdef portREMOVE_STATIC_QUALIFIER
#define static
#endif
/* The name allocated to the Idle task. This can be overridden by defining
configIDLE_TASK_NAME in FreeRTOSConfig.h. */
#ifndef configIDLE_TASK_NAME
#define configIDLE_TASK_NAME "IDLE"
#endif
#if ( configUSE_PORT_OPTIMISED_TASK_SELECTION == 0 )
/* If configUSE_PORT_OPTIMISED_TASK_SELECTION is 0 then task selection is
performed in a generic way that is not optimised to any particular
microcontroller architecture. */
/* uxTopReadyPriority holds the priority of the highest priority ready
state task. */
#define taskRECORD_READY_PRIORITY( uxPriority ) \
{ \
if( ( uxPriority ) > uxTopReadyPriority ) \
{ \
uxTopReadyPriority = ( uxPriority ); \
} \
} /* taskRECORD_READY_PRIORITY */
/*-----------------------------------------------------------*/
#define taskSELECT_HIGHEST_PRIORITY_TASK() \
{ \
UBaseType_t uxTopPriority = uxTopReadyPriority; \
\
/* Find the highest priority queue that contains ready tasks. */ \
while( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxTopPriority ] ) ) ) \
{ \
configASSERT( uxTopPriority ); \
--uxTopPriority; \
} \
\
/* listGET_OWNER_OF_NEXT_ENTRY indexes through the list, so the tasks of \
the same priority get an equal share of the processor time. */ \
listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopPriority ] ) ); \
uxTopReadyPriority = uxTopPriority; \
} /* taskSELECT_HIGHEST_PRIORITY_TASK */
/*-----------------------------------------------------------*/
/* Define away taskRESET_READY_PRIORITY() and portRESET_READY_PRIORITY() as
they are only required when a port optimised method of task selection is
being used. */
#define taskRESET_READY_PRIORITY( uxPriority )
#d
没有合适的资源?快使用搜索试试~ 我知道了~
S32K144_RTOS_Keil_Dma_Irq
共339个文件
h:149个
c:120个
dox:47个
需积分: 1 31 下载量 114 浏览量
2018-09-16
20:45:43
上传
评论 1
收藏 1.82MB RAR 举报
温馨提示
分享给大家内部含有FreeRtos组件和 周期任务时机 并附带函数升级说明 操作注意请见内部版本升级记录---keil的参考工程可以直接使用 主要需要底层支持编译库
资源推荐
资源详情
资源评论
收起资源包目录
S32K144_RTOS_Keil_Dma_Irq (339个子文件)
tasks.c 162KB
clock_S32K1xx.c 128KB
clock_S32K1xx.c 128KB
sai_driver.c 107KB
queue.c 92KB
lin_lpuart_driver.c 85KB
lpi2c_driver.c 85KB
flash_driver.c 76KB
edma_driver.c 69KB
csec_driver.c 64KB
flexio_i2s_driver.c 64KB
flexio_i2c_driver.c 63KB
flexcan_driver.c 59KB
flexio_uart_driver.c 56KB
lpuart_driver.c 55KB
flexio_spi_driver.c 53KB
flexcan_hw_access.c 51KB
flash_mx25l6433f_driver.c 48KB
rtc_driver.c 40KB
timers.c 39KB
lpspi_master_driver.c 38KB
enet_driver.c 38KB
lptmr_driver.c 38KB
quadspi_driver.c 33KB
ftm_pwm_driver.c 31KB
ftm_common.c 31KB
port.c 29KB
lpspi_hw_access.c 29KB
port.c 28KB
adc_driver.c 28KB
port.c 27KB
lpit_driver.c 27KB
cmp_driver.c 26KB
port.c 26KB
ftm_ic_driver.c 25KB
BSW_CAN.c 25KB
event_groups.c 24KB
power_manager_S32K1xx.c 23KB
pins_driver.c 22KB
flexcan_irq.c 21KB
edma_hw_access.c 20KB
power_manager.c 19KB
lin_driver.c 19KB
lpspi_slave_driver.c 19KB
port.c 19KB
interrupt_manager.c 19KB
phy_tja110x.c 19KB
pdb_driver.c 17KB
phy_generic.c 17KB
lpuart_hw_access.c 16KB
heap_5.c 16KB
enet_hw_access.c 16KB
flexio_common.c 15KB
BSW_SystemService_OS.c 15KB
power_rcm_hw_access.c 14KB
heap_4.c 14KB
power_smc_hw_access.c 14KB
wdog_driver.c 14KB
croutine.c 13KB
osif_baremetal.c 13KB
crc_driver.c 12KB
edma_irq.c 12KB
mpu_driver.c 12KB
phy.c 11KB
lpspi_shared_function.c 11KB
port.c 10KB
port.c 10KB
heap_2.c 10KB
csec_hw_access.c 10KB
mpu_hw_access.c 9KB
rtc_hw_access.c 9KB
pins_port_hw_access.c 9KB
BSW_SystemService_OS_User.c 9KB
trgmux_driver.c 9KB
clock_manager.c 9KB
pdb_hw_access.c 9KB
BSW_SPI.c 8KB
list.c 8KB
erm_driver.c 8KB
BSW_IIC.c 8KB
ewm_driver.c 8KB
ftm_oc_driver.c 8KB
system_S32K144.c 8KB
eim_driver.c 8KB
trgmux_hw_access.c 8KB
startup.c 8KB
cmp_hw_access.c 7KB
BSW_UART.c 7KB
ftm_hw_access.c 7KB
ftm_mc_driver.c 6KB
ftm_qd_driver.c 6KB
BSW_SystemService_OSCallout.c 6KB
power_pmc_hw_access.c 5KB
wdog_hw_access.c 5KB
lin_common.c 5KB
BSW_MCU.c 5KB
BSW_DMA.c 5KB
heap_1.c 5KB
enet_irq.c 5KB
BSW_SystemService_OSCfg.c 5KB
共 339 条
- 1
- 2
- 3
- 4
资源评论
滴水的风
- 粉丝: 22
- 资源: 48
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功