mbed(SerialHalfDuplex入り)
Fork of mbed by
stackheap.h@0:82220227f4fa, 2008-04-08 (annotated)
- Committer:
- simon.ford@mbed.co.uk
- Date:
- Tue Apr 08 14:12:21 2008 +0000
- Revision:
- 0:82220227f4fa
- Child:
- 1:6b7f447ca868
A first develoment release of the mbed libraries
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
simon.ford@mbed.co.uk | 0:82220227f4fa | 1 | /* mbed Microcontroller Library - stackheap |
simon.ford@mbed.co.uk | 0:82220227f4fa | 2 | * Copyright (c) 2007-2008, sford |
simon.ford@mbed.co.uk | 0:82220227f4fa | 3 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 4 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 5 | #ifndef MBED_STACKHEAP_H |
simon.ford@mbed.co.uk | 0:82220227f4fa | 6 | #define MBED_STACKHEAP_H |
simon.ford@mbed.co.uk | 0:82220227f4fa | 7 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 8 | namespace mbed { |
simon.ford@mbed.co.uk | 0:82220227f4fa | 9 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 10 | /* Section: stackheap |
simon.ford@mbed.co.uk | 0:82220227f4fa | 11 | * Useful functions for seeing what is going on with the stack and heap |
simon.ford@mbed.co.uk | 0:82220227f4fa | 12 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 13 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 14 | /* Function: code_base |
simon.ford@mbed.co.uk | 0:82220227f4fa | 15 | * Return the address of the fixed base of the code region |
simon.ford@mbed.co.uk | 0:82220227f4fa | 16 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 17 | int code_base(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 18 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 19 | /* Function: code_limit |
simon.ford@mbed.co.uk | 0:82220227f4fa | 20 | * Return the address of the top of the code region |
simon.ford@mbed.co.uk | 0:82220227f4fa | 21 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 22 | int code_limit(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 23 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 24 | /* Function: rw_base |
simon.ford@mbed.co.uk | 0:82220227f4fa | 25 | * Return the address of the fixed base of the rw region |
simon.ford@mbed.co.uk | 0:82220227f4fa | 26 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 27 | int rw_base(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 28 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 29 | /* Function: rw_limit |
simon.ford@mbed.co.uk | 0:82220227f4fa | 30 | * Return the address of the top of the rw region |
simon.ford@mbed.co.uk | 0:82220227f4fa | 31 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 32 | int rw_limit(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 33 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 34 | /* Function: heap_base |
simon.ford@mbed.co.uk | 0:82220227f4fa | 35 | * Return the address of the fixed base of the heap |
simon.ford@mbed.co.uk | 0:82220227f4fa | 36 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 37 | int heap_base(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 38 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 39 | /* Function: heap_limit |
simon.ford@mbed.co.uk | 0:82220227f4fa | 40 | * Return the address of the current top of the heap |
simon.ford@mbed.co.uk | 0:82220227f4fa | 41 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 42 | int heap_limit(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 43 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 44 | /* Function: stack_base |
simon.ford@mbed.co.uk | 0:82220227f4fa | 45 | * Return the address of the fixed base of the stack |
simon.ford@mbed.co.uk | 0:82220227f4fa | 46 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 47 | int stack_base(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 48 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 49 | /* Function: stack_limit |
simon.ford@mbed.co.uk | 0:82220227f4fa | 50 | * Return the address of the current top of the stack |
simon.ford@mbed.co.uk | 0:82220227f4fa | 51 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 52 | //int stack_limit(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 53 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 54 | /* Function: code_size |
simon.ford@mbed.co.uk | 0:82220227f4fa | 55 | * Return the size of the code region |
simon.ford@mbed.co.uk | 0:82220227f4fa | 56 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 57 | int code_size(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 58 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 59 | /* Function: rw_size |
simon.ford@mbed.co.uk | 0:82220227f4fa | 60 | * Return the size of the rw region |
simon.ford@mbed.co.uk | 0:82220227f4fa | 61 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 62 | int rw_size(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 63 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 64 | /* Function: heap_size |
simon.ford@mbed.co.uk | 0:82220227f4fa | 65 | * Return the current size of the heap pool allocated |
simon.ford@mbed.co.uk | 0:82220227f4fa | 66 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 67 | int heap_size(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 68 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 69 | /* Function: stack_size |
simon.ford@mbed.co.uk | 0:82220227f4fa | 70 | * Return the current size of the stack used |
simon.ford@mbed.co.uk | 0:82220227f4fa | 71 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 72 | //int stack_size(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 73 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 74 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 75 | inline int stack_limit() { |
simon.ford@mbed.co.uk | 0:82220227f4fa | 76 | return __current_sp(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 77 | } |
simon.ford@mbed.co.uk | 0:82220227f4fa | 78 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 79 | inline int stack_size() { |
simon.ford@mbed.co.uk | 0:82220227f4fa | 80 | return stack_base() - stack_limit(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 81 | } |
simon.ford@mbed.co.uk | 0:82220227f4fa | 82 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 83 | } // namespace mbed |
simon.ford@mbed.co.uk | 0:82220227f4fa | 84 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 85 | #endif |