Loading...
 

Zephyr project on STM32

   Zephyr Workbench, a VSCode extension to manage Zephyr on STM32.
It enables users to easily create, develop, and debug Zephyr applications.
Main features:
  • Install host dependencies.
  • Import toolchain and SDK.
  • Create, configure, build and manage apps.
  • Debug STM32.
You can directly download it from the VSCode marketplace
For more details, visit the Zephyr Workbench

System Workbench for STM32


use STM32F4 CCM memory for the stack and the heap

My changes in linker script and syscalls.c to solve this problem:
xxx.ld

++++++++++++++++++++++++++++++++++++++++++++++

/* Highest address of the user mode stack */
_estack = 0x10004000; /* pointer to stack, stack grows down and at address 0x10000000 we have hard fault exception*/
_Min_Stack_Size = 0x3F80; /* required amount of stack */
_Min_Stack_Ptr = _estack - _Min_Stack_Size; /* used to control out of bounds*/

_Max_Heap_Ptr = 0x20020000;
_Min_Heap_Size = 0; /* required amount of heap used only for error cheking*/

/* Memories definition */
MEMORY
{
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
CCRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K
ROM (rx) : ORIGIN = 0x8000000, LENGTH = 1024K
}

++++++++++++++++++++++++++++++++++++++++++++++

bottom of xxxx.ld:
._user_heap_stack :
{
. = ALIGN(8);
PROVIDE ( end = . );
PROVIDE ( _end = . );
. = . + _Min_Heap_Size;
. = ALIGN(8);
} >RAM
._user_heap_stack_ccm :
{
. = ALIGN(8);
. = . + _Min_Stack_Size;
. = ALIGN(8);
} >CCRAM

++++++++++++++++++++++++++++++++++++++++++++++

and syscalls.c:
caddr_t _sbrk(int incr)
{
extern char end asm(“end”);
extern char _Max_Heap_Ptr asm(“_Max_Heap_Ptr”);
static char *heap_end;
char *prev_heap_end;

if (heap_end == 0)
heap_end = &end;
prev_heap_end = heap_end;
// please check
char * addresToCheck =0;
if (heap_end + incr > &_Max_Heap_Ptr)
{
//Heap collision
while(1) {};
// comment one of this (up or two down lines)
//errno = ENOMEM;
//return (caddr_t) -1;
}

heap_end += incr;

return (caddr_t) prev_heap_end;
}

 

Newest Forum Posts

  1. Монтаж камина с грилем в Москве - установка и барбекю by KpddomErorb, 2025-05-10 18:28
  2. SPI on Nucleo_STMH533RE by royjamil, 2025-05-04 20:13
  3. SPI on Nucleo_STMH533RE by higginsa1, 2025-03-25 07:37
  4. SPI on Nucleo_STMH533RE by royjamil, 2025-03-23 11:31
  5. SPI on Nucleo_STMH533RE by higginsa1, 2025-03-23 09:33
  6. Configuring DMA for ADC in SW? by sam.hodgson, 2025-03-04 12:58
  7. Build a project in "release" mode by info@creosrl.it, 2025-02-20 18:12
  8. Build a project in "release" mode by info@creosrl.it, 2025-02-20 17:05
  9. Build a project in "release" mode by tang, 2025-02-20 10:36
  10. Build a project in "release" mode by info@creosrl.it, 2025-02-19 17:35

Last-Modified Blogs