고정할 바이너리 파일
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 |