초보의 아웅다웅 설계하기/STM32

SW6STM에서 고정위치에 바이너리 라이팅하기

로망와니 2020. 5. 20. 18:05

 

고정할 바이너리 파일

unsigned char _FixedData[1024UL + 1] __attribute__ ((section(".mfc_array"))) = {
  0x8D, 0x43, 0xF2, 0x3D, 0x71, 0x3F, 0xF8, 0x12, 0x5D, 0x85, 0x96, 0x9F, 0x2A, 0x52, 0xE7, 0x50, 0xB4, 0x43, 0xDE, 0xE6, 0xBB, 0xC8, 0x6A, 0xC1, 0xD4, 0xBD, 0x83, 0xE6, 0x13, 0xAF, 0x5B, 0xE0, 0x06, 0x4B, 0x07, 0x4A, 0x1B, 0x68, 0x93, 0x42,

.... 중략 ....

 

};

 

 

STM32Fxxxx_FLASH.ld 파일

/* Entry Point */ 
ENTRY(Reset_Handler)

/* Highest address of the user mode stack */
_estack = 0x2003C000;    /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x1000;      /* required amount of heap  */
_Min_Stack_Size = 0x1200; /* required amount of stack */

/* Specify the memory areas */ 
MEMORY 
{ 
FLASH (rx)      : ORIGIN = 0x08000000, LENGTH = 1023K /* 1024 - 76 */ 
RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 240K /* 256 - 16 */ 
WRITE (rx)      : ORIGIN = 0x080FFC00, LENGTH = 1K

/* 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

 

.... 중략 ....

 

  .mfc_array : {
    PROVIDE_HIDDEN (__mfc_array_start = .);
    KEEP (*(SORT(.mfc_array.*)))
    KEEP (*(.mfc_array*))
    PROVIDE_HIDDEN (__mfc_array_end = .);   
  } >WRITE

 

.... 중략 ....

 

  /* Remove information from the standard libraries */
  /DISCARD/ :
  {
    libc.a ( * )
    libm.a ( * )
    libgcc.a ( * )
  }

  .ARM.attributes 0 : { *(.ARM.attributes) }

}

 

 

 

'초보의 아웅다웅 설계하기 > STM32' 카테고리의 다른 글

Demonstrator GUI V2.9.0 RC8  (0) 2020.05.22
STM32L496 Unique ID 확인하기  (0) 2020.05.21
인터럽트 벡터 위치 확인과 변경  (0) 2020.03.13
STM32L432 Write Protection  (0) 2020.03.04
STM32 PID 제어  (0) 2020.01.16