DIY Electronic projects
STM32F30x + AC6, stack inicijalizacija - Printable Version

+- DIY Electronic projects (https://forum.yu3ma.net)
+-- Forum: Mikrokontroleri (https://forum.yu3ma.net/forumdisplay.php?fid=52)
+--- Forum: ARM (https://forum.yu3ma.net/forumdisplay.php?fid=54)
+--- Thread: STM32F30x + AC6, stack inicijalizacija (/showthread.php?tid=1910)



STM32F30x + AC6, stack inicijalizacija - 1van - 05-23-2018

Zdravo svima,

Pokusavam da podesim linker skript tj konkretno sekciju za inicijalizaciju steka ali izgleda da ne znam kako. Ovo su trenutne i zeljene vrednosti:

Quote:/* Entry Point */
ENTRY(Reset_Handler)

/* Highest address of the user mode stack */
_estack = 0x2000A000;    /* end of RAM */ <- Ovo zelim da promenim u 0x2001A000

/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200;      /* required amount of heap  */
_Min_Stack_Size = 0x400; /* required amount of stack */

/* Specify the memory areas */
MEMORY
{
FLASH (rx)      : ORIGIN = 0x8000000, LENGTH = 256K
RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 40K <- Ovo zelim da promenim u 0x20010000
CCMRAM (rw)      : ORIGIN = 0x10000000, LENGTH = 8K
}

/* Define output sections */
SECTIONS
{
  /* The startup code goes first into FLASH */
  .isr_vector :
  {
    . = ALIGN(4);
    KEEP(*(.isr_vector)) /* Startup code */
    . = ALIGN(4);
  } >FLASH

  /* The program code and other data goes into FLASH */
  .text :
  {
    . = ALIGN(4);
    *(.text)           /* .text sections (code) */
    *(.text*)          /* .text* sections (code) */
    *(.glue_7)         /* glue arm to thumb code */
    *(.glue_7t)        /* glue thumb to arm code */
    *(.eh_frame)

    KEEP (*(.init))
    KEEP (*(.fini))

    . = ALIGN(4);
    _etext = .;        /* define a global symbols at end of code */
  } >FLASH

Pretpostavio sam da Reset_Handler nije dobar i probao sam svasta sa njim (ldr r0/r1/sp, =_estack) ali bezuspesno. 

Quote:Reset_Handler:

/* Copy the data segment initializers from flash to SRAM */
  movs r1, #0
  b LoopCopyDataInit

Kao sto stoji u naslovu koristim AC6 System Workbench i STM32F303VCTx sa StdPeriph FW v1.1.0.
Da li imate neki savet kako ovo da resim?

Hvala,
Ivan



RE: STM32F30x + AC6, stack inicijalizacija - yugaja - 05-24-2018

Poz,



 taj kontrolercic ima 48k RAM-a? Glupo, pitanje ali da li imas fizicki memoriju na adresi  0x2001A000?


RE: STM32F30x + AC6, stack inicijalizacija - 1van - 05-24-2018

Izgleda da je to rezervisan deo memorije "0x2000 A000 - 3FFF FFFF Reserved", izvor: http://www.st.com/content/ccc/resource/technical/document/reference_manual/4a/19/6e/18/9d/92/43/32/DM00043574.pdf/files/DM00043574.pdf/jcr:content/translations/en.DM00043574.pdf

Btw probao sam i sa KEIL MDK i CubeMXF3.

Nije problem, workaround Smile


RE: STM32F30x + AC6, stack inicijalizacija - mikikg - 05-24-2018

Pogledaj ovu temu:
http://www.elitesecurity.org/p3794487

Za pocetak bih ti preporucio da zaobidjes CubeMX, bar dok ne pohvatas sta se stvarno u kontroleru desava, zato sam dao taj bazican primer i prosao kroz neke bitne detalje.