embeded/Cortex-M7 STM2021. 7. 2. 16:31

STM32F746NGHx_FLASH.ld

/* Specify the memory areas */
MEMORY
{
FLASH (rx)      : ORIGIN = 0x08000000, LENGTH = 1024K
RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 320K
ITCMRAM (xrw)      : ORIGIN = 0x00000000, LENGTH = 16K
QSPI (rx)         : ORIGIN = 0x90000000, LENGTH = 16M
}

  .ARM.attributes 0 : { *(.ARM.attributes) }
  ExtFlashSection : { *(ExtFlashSection) } >QSPI
}

 

#include <touchgfx/hal/Config.hpp>

LOCATION_EXTFLASH_PRAGMA
KEEP extern const unsigned char _control_center_button_pressed[] LOCATION_EXTFLASH_ATTRIBUTE = { // 191x191 RGB565 pixels.
// ...
};

 

#elif defined(__ARMCC_VERSION)
#define LOCATION_EXTFLASH_PRAGMA
#define LOCATION_EXTFLASH_ATTRIBUTE __attribute__ ((section ("ExtFlashSection"))) __attribute__ ((aligned(4)))

#elif defined __ICCARM__
#define LOCATION_EXTFLASH_PRAGMA _Pragma("location=\"ExtFlashSection\"")

 

내장 플래시

 

외부 QSPI 플래시

'embeded > Cortex-M7 STM' 카테고리의 다른 글

stm32cubeide generate bin  (0) 2021.07.02
stm32cubeide gdb external flash  (0) 2021.07.02
TouchGFX on STM32F746G-DISCO  (4) 2021.07.02
st-link stm32 option bytes  (0) 2021.07.02
st-link util external module?  (0) 2021.07.02
cortex-M7 우와.. -_-  (0) 2021.07.02
Posted by 구차니

댓글을 달아 주세요

  1. Martin

    감사합니다.
    TouchGFX에서 생성된 이미지를 QSPI의 외부flash 저장 방법을 찾던 중 방문하게되었습니다.

    궁금한 점이 있어서 문의드립니다.
    첫 번째 블럭의
    ' STM32F746NGHx_FLASH.ld ' 에서 수정했습니다.

    2번째,3번째 블럭의 내용은 어딜 수정해야 하는건가요?

    미리 답변 감사합니다.

    2021.11.25 18:02 [ ADDR : EDIT/ DEL : REPLY ]
    • 한지 몇 달 안지났는데 기억이 잘 안나네요 ㅠㅠ

      가장 처음꺼는 어셈블러에서 프로그램 링크시 사용할 주소를 선언합니다.

      두번째는 LOCATION_EXTFLASH_PRAGMA를 이용해서 외부 메모리에 저장하도록 컴파일러에게 알려주는 부분입니다.

      세번째는 두번째의 선언부입니다.

      첫 이미지는
      실제 ST_LINK를 이용하여 플래시를 구울시 외부 데이터 영역에 쓰도록 주소를 0x08000000 으로 변경한 내용입니다.

      2021.11.25 18:26 신고 [ ADDR : EDIT/ DEL ]
  2. Martin

    답변 감사합니다.

    질문을 바꿔서 드릴께요..
    (이미지 부분은 이해했습니다.)
    첫번째 블럭은 STM32F746NGHx_FLASH.ld ' 에서 수정했습니다. (완료)
    2번째 블럭과 3번째 블럭은 어떤 파일인가요? ( Config.hpp 인가요? )
    (각각의 파일명이 무엇인지요?)

    (컴파일러는 STM32CubeIDE입니다)

    2021.11.26 09:40 [ ADDR : EDIT/ DEL : REPLY ]
    • 기억이 잘 안나는데..
      두번째는 이미지 파일의 일부분이었던걸로 기억합니다. 아마 프로젝트 전체 검색으로 해서 _control_center_button_pressed
      를 찾아 보시면 나올 것이고

      세번째는 LOCATION_EXTFLASH_PRAGMA로 검색해서 찾은 공용 헤더 파일이었던것으로 기억합니다. 역시 프로젝트 전체 검색으로 찾아 보시거나 define을 따라가보시기 바랍니다.

      2021.11.26 10:36 신고 [ ADDR : EDIT/ DEL ]