|
|
|
@ -15,6 +15,7 @@ static char heap_mem[HEAP_SIZE];
@@ -15,6 +15,7 @@ static char heap_mem[HEAP_SIZE];
|
|
|
|
|
static struct sys_heap heap; |
|
|
|
|
|
|
|
|
|
static void print_sys_memory_stats(struct sys_heap *); |
|
|
|
|
static void print_static_heaps(void); |
|
|
|
|
static void print_all_heaps(void); |
|
|
|
|
|
|
|
|
|
int main(void) |
|
|
|
@ -35,7 +36,17 @@ int main(void)
@@ -35,7 +36,17 @@ int main(void)
|
|
|
|
|
sys_heap_free(&heap, p); |
|
|
|
|
print_sys_memory_stats(&heap); |
|
|
|
|
|
|
|
|
|
/* Allocate from our custom k_heap to make the output
|
|
|
|
|
* more interesting and prevent compiler optimisations from |
|
|
|
|
* discarding it. |
|
|
|
|
*/ |
|
|
|
|
p = k_heap_alloc(&my_kernel_heap, 10, K_FOREVER); |
|
|
|
|
|
|
|
|
|
print_static_heaps(); |
|
|
|
|
print_all_heaps(); |
|
|
|
|
|
|
|
|
|
/* Cleanup memory */ |
|
|
|
|
k_heap_free(&my_kernel_heap, p); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -50,16 +61,30 @@ static void print_sys_memory_stats(struct sys_heap *hp)
@@ -50,16 +61,30 @@ static void print_sys_memory_stats(struct sys_heap *hp)
|
|
|
|
|
stats.max_allocated_bytes, HEAP_SIZE); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void print_static_heaps(void) |
|
|
|
|
{ |
|
|
|
|
struct k_heap *ha; |
|
|
|
|
int n; |
|
|
|
|
|
|
|
|
|
n = k_heap_array_get(&ha); |
|
|
|
|
printk("%d static heap(s) allocated:\n", n); |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < n; i++) { |
|
|
|
|
printk("\t%d - address %p ", i, &ha[i]); |
|
|
|
|
print_sys_memory_stats(&ha[i].heap); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void print_all_heaps(void) |
|
|
|
|
{ |
|
|
|
|
struct sys_heap **ha; |
|
|
|
|
size_t i, n; |
|
|
|
|
int n; |
|
|
|
|
|
|
|
|
|
n = sys_heap_array_get(&ha); |
|
|
|
|
printk("There are %zu heaps allocated:\n", n); |
|
|
|
|
printk("%d heap(s) allocated (including static):\n", n); |
|
|
|
|
|
|
|
|
|
for (i = 0; i < n; i++) { |
|
|
|
|
printk("\t%zu - address %p ", i, ha[i]); |
|
|
|
|
for (int i = 0; i < n; i++) { |
|
|
|
|
printk("\t%d - address %p ", i, ha[i]); |
|
|
|
|
print_sys_memory_stats(ha[i]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|