Task Management
cannot detect the stack overflow “as soon” as the stack pointer exceeds the value of
.StkLimitPtr, it is important to position the value of .StkLimitPtr in the stack fairly far from
&MyTaskStk[0] , as shown in Figure 5-4. A software implementation such as this is not as
reliable as a hardware-based detection mechanism but still prevents a possible stack
overflow. Of course, the .StkLimitPtr field would be set using OSTaskCreate() as shown
above but this time, with a location further away from &MyTaskStk[0] .
6WDFN
 5$0 
/RZ 0HPRU
0\7DVN6WN> @
 6WN/LPLW3WU
63
&XUUHQW
6WDFN
8VDJH
6WDFN *URZWK
0\7DVN6WN>1  @
+LJK 0HPRU
&38B67.
Figure 5-4 Software detection of stack overflows, monitoring .StkLimitPtr
4) Counting the amount of free stack space
Another way to check for stack overflows is to allocate more stack space than is anticipated
to be used for the stack, then, monitor and possibly display actual maximum stack usage at
run-time. This is fairly easy to do. First, the task stack needs to be cleared (i.e., filled with
zeros) when the task is created. Next, a low priority task walks the stack of each task
created, from the bottom ( &MyTaskStk[0] ) towards the top, counting the number of zero
entries. When the task finds a non-zero value, the process is stopped and the usage of the
stack can be computed (in number of bytes used or as a percentage). Then, adjust the size
of the stacks (by recompiling the code) to allocate a more reasonable value (either increase
or decrease the amount of stack space for each task). For this to be effective, however, run
89
相关PDF资料
AD-UCUSBD-SPRD PRD LIC UCUSB DEV CORE CCES SGL
AD637-EVALZ BOARD EVALUATION FOR AD637
AD736-EVALZ BOARD EVALUATION FOR AD736
AD737-EVALZ BOARD EVALUATION FOR AD737
AD8007AKS-EBZ BOARD EVAL FOR AD8007AKS
AD8018ARU-EVAL BOARD EVAL FOR AD8018
AD8034ART-EBZ BOARD EVAL FOR AD8034ART
AD8040AR-EBZ BOARD EVAL FOR AD8040AR
相关代理商/技术参数
ADUCOSC100 制造商:Analog Devices 功能描述:ADC - Rail/Tube
ADUCOSC100-REEL 功能描述:DAC MICROCONVERTER DUAL TSSOP 制造商:analog devices inc. 系列:* 零件状态:上次购买时间 标准包装:1
ADUCOSC100-REEL7 功能描述:DAC MICROCONVERTER DUAL TSSOP 制造商:analog devices inc. 系列:* 零件状态:上次购买时间 标准包装:1
ADUCOSCZ100 制造商:Analog Devices 功能描述:
ADUCOSCZ100-REEL7 制造商:Analog Devices 功能描述:ANAADUCOSCZ100-REEL7 12 BIT ADC WITH EMB
ADuC-P7026 功能描述:开发板和工具包 - ARM PROTOTYPE BRD FOR ADUC7026 ARM7 RoHS:否 制造商:Arduino 产品:Development Boards 工具用于评估:ATSAM3X8EA-AU 核心:ARM Cortex M3 接口类型:DAC, ICSP, JTAG, UART, USB 工作电源电压:3.3 V
ADUCRF101 制造商:Analog Devices 功能描述:PRECISION ANALOG MICRCONTROLLER - Tape and Reel
ADUCRF101BCPZ128 制造商:Analog Devices 功能描述:PRECISION ANALOG MICROCONTROLLER WITH RF TRANSCEIVER, ARM CO - Trays