OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [libmisc/] [cpuuse/] [README] - Blame information for rev 173

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
#
2
#  $Id: README,v 1.2 2001-09-27 12:01:42 chris Exp $
3
#
4
 
5
This directory contains a stack bounds checker.  It provides two
6
primary features:
7
 
8
   + check for stack overflow at each context switch
9
   + provides an educated guess at each task's stack usage
10
 
11
The stack overflow check at context switch works by looking for
12
a 16 byte pattern at the logical end of the stack to be corrupted.
13
The "guesser" assumes that the entire stack was prefilled with a known
14
pattern and assumes that the pattern is still in place if the memory
15
has not been used as a stack.
16
 
17
Both of these can be fooled by pushing large holes onto the stack
18
and not writing to them... or (much more unlikely) writing the
19
magic patterns into memory.
20
 
21
This code has not been extensively tested.  It is provided as a tool
22
for RTEMS users to catch the most common mistake in multitasking
23
systems ... too little stack space.  Suggestions and comments are appreciated.
24
 
25
NOTES:
26
 
27
1.  Stack usage information is questionable on CPUs which push
28
    large holes on stack.
29
 
30
2.  The stack checker has a tendency to generate a fault when
31
    trying to print the helpful diagnostic message.  If it comes
32
    out, congratulations. If not, then the variable Stack_check_Blown_task
33
    contains a pointer to the TCB of the offending task.  This
34
    is usually enough to go on.
35
 
36
FUTURE:
37
 
38
1.  Determine how/if gcc will generate stack probe calls and support that.
39
 
40
2.  Get accurate stack usage numbers on i960.. it pushes very large
41
    holes on the stack.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.