This PR introduces two fixes to the Snitch runtime that are required for Deeploy.
The first issue is related to the location of the snrt_l1_allocator() which is calculated via the cls() function. This function uses the _cls_ptr which is placed at the beginning of the .cbss section. However, if the .cbss section is empty, this location is invalid.
The second fix statically allocated the buffers for multicore compatible printf() function. Without this fix, the buffers overlap with the L3 allocator, causing printf() call to overwrite the allocation structure.
This PR introduces two fixes to the Snitch runtime that are required for Deeploy.
The first issue is related to the location of the
snrt_l1_allocator()
which is calculated via thecls()
function. This function uses the_cls_ptr
which is placed at the beginning of the.cbss
section. However, if the.cbss
section is empty, this location is invalid.The second fix statically allocated the buffers for multicore compatible
printf()
function. Without this fix, the buffers overlap with the L3 allocator, causingprintf()
call to overwrite the allocation structure.Fixed
.cbss
section is not optimized away.printf()
buffers