cpu/fe310: use common names for heap markers

Other archs use `_sheap` and `_eheap` to mark the start and end of
the heap.

fe310 uses `_heap_start` and `_heap_end`, so platform independent
code that wants to make use of this will needlessly fail.

For compatibility with common code, name them the same on fe310.
This commit is contained in:
Benjamin Valentin 2019-09-29 00:52:52 +02:00 committed by Benjamin Valentin
parent db5070c772
commit 0ddca68de9
3 changed files with 9 additions and 9 deletions

View File

@ -166,11 +166,11 @@ SECTIONS
. = ALIGN(8); . = ALIGN(8);
PROVIDE( _end = . ); PROVIDE( _end = . );
PROVIDE( end = . ); PROVIDE( end = . );
PROVIDE( _heap_start = . ); PROVIDE( _sheap = . );
.stack ORIGIN(ram) + LENGTH(ram) - __stack_size : .stack ORIGIN(ram) + LENGTH(ram) - __stack_size :
{ {
PROVIDE( _heap_end = . ); PROVIDE( _eheap = . );
. = __stack_size; . = __stack_size;
PROVIDE( _sp = . ); PROVIDE( _sp = . );
} >ram AT>ram :ram } >ram AT>ram :ram

View File

@ -29,9 +29,9 @@
#include "cpu.h" #include "cpu.h"
#include "stdio_uart.h" #include "stdio_uart.h"
extern char _heap_start; /* Heap markers from fe310.ld file */ extern char _sheap; /* Heap markers from fe310.ld file */
extern char _heap_end; extern char _eheap;
char *heap_top = &_heap_start + 4; char *heap_top = &_sheap + 4;
/** /**
* @brief Initialize the Newlib-nano functions (also forces inclusion of stubs for linking) * @brief Initialize the Newlib-nano functions (also forces inclusion of stubs for linking)
@ -59,7 +59,7 @@ void *_sbrk(ptrdiff_t incr)
void *res = heap_top; void *res = heap_top;
/* Allocate memory from heap */ /* Allocate memory from heap */
if ((heap_top + incr > &_heap_end) || (heap_top + incr < &_heap_start)) { if ((heap_top + incr > &_eheap) || (heap_top + incr < &_sheap)) {
errno = ENOMEM; errno = ENOMEM;
res = (void *) -1; res = (void *) -1;
} }

View File

@ -187,10 +187,10 @@ void thread_yield_higher(void)
*/ */
void heap_stats(void) void heap_stats(void)
{ {
extern char _heap_start; /* defined in linker script */ extern char _sheap; /* defined in linker script */
extern char _heap_end; /* defined in linker script */ extern char _eheap; /* defined in linker script */
long int heap_size = &_heap_end - &_heap_start; long int heap_size = &_eheap - &_sheap;
struct mallinfo minfo = mallinfo(); struct mallinfo minfo = mallinfo();
printf("heap: %ld (used %u, free %ld) [bytes]\n", printf("heap: %ld (used %u, free %ld) [bytes]\n",
heap_size, minfo.uordblks, heap_size - minfo.uordblks); heap_size, minfo.uordblks, heap_size - minfo.uordblks);