11. Flash Loader
개요
이 단계에서는 외부 플래시에 데이터를 로딩하는 것을 다룹니다. 컴파일러는 프로젝트의 텍스트, 폰트 및 이미지를 컴파일하고 이러한 데이터를 이용해 binary 또는 hex 파일을 생성합니다. 이 데이터는 보통 외부 플래시로 로드됩니다. 한편 내부 플래시는 코드용으로 예약되어 있습니다.
개발 단계에서는 외부 플래시에 데이터를 기록할 수 있는 방법이 필요하지만, 플래시에서 데이터를 읽어오기만 하는 런타임 단계에서는 반드시 필요한 것이 아닙니다.
외부 플래시에 데이터를 기록하는 데는 다음의 두 가지 방법이 주로 사용됩니다:
- STM32CubeProgrammer를 위한 플래시 로더 작성
- 전용 애플리케이션 기반의 솔루션 사용
Note
목표
이 섹션의 목표는 외부 플래시에 데이터를 로드하기 위한 메커니즘을 선택 및 개발하는 것입니다.
확인
다음은 이 섹션에서 확인해야 할 사항입니다:
확인사항 | 확인근거 |
---|---|
데이터의 플래싱 가능 여부 | 외부 플래시를 이미지 스토리지에 사용할 수 있는지 여부 |
전제 조건
다음은 이 단계에 대한 전제 조건입니다:
- 플래시 정보(일반적으로 제조사 데이터 시트의 정보)
- MCU와 외부 플래시 간 연결 정보
실행
STM32CubeProgrammer를 위한 플래시 로더
STM32CubeProgrammer에는 다양한 STM32 평가 키트를 위한 플래시 로더가 함께 제공됩니다. 플래시 로더란 MCU의 RAM에 로드되어 플래시의 프로그래밍을 가능하게 하는 소규모 프로그램입니다.플래시 로더는 플래시와의 통신에 필요한 GPIO 및 플래시 인터페이스의 구성, 그리고 플래시에서 쓰기 작업에 필요한 명령 시퀀스를 알고 있는 플래싱 알고리즘, 이렇게 두 부분으로 이루어져 있습니다.
이 부분은 기존 플래시 로더를 토대로 사용할 수 있습니다. 사용 중인 플래시에 대한 플래시 로더를 찾을 수 있는 경우에는 이것을 시작점으로 해서 GPIO 부분을 수정하십시오. 평가 키트에서 플래시 회로를 복사하는 방법으로 하드웨어를 설계하는 경우에는 해당 키트에 대한 플래시 로더를 직접 사용할 수 있습니다. 이 방법을 권장하고 있습니다.
STM32CubeProgrammer를 통해 제공되는 플래시 로더 프로젝트는 설치 폴더(보통 C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\ExternalLoader)에 위치합니다.
IAR Embedded Workbench, Keil 및 TrueStudio를 위한 소스 코드 프로젝트로서 몇몇 플래시 로더가 제공되고 있습니다.
전용 애플리케이션 기반 솔루션
또 다른 해결책은 애플리케이션 자체에 플래시 로딩을 포함시키는 것입니다. 개발자가 애플리케이션 내에 플래시 구성을 이미 가지고 있고(여기에서 로드가 가능하도록), 이전 테스트를 통해 플래시에 블록을 기록하는 방법을 알고 있을 수 있기 때문입니다. 새로운 플래시 데이터를 애플리케이션에 전송하는 방법만 알면 됩니다. 한 가지 방법은 UART를 이용하는 것입니다. 애플리케이션은 데이터 스트림을 수신하고 플래시에 데이터를 블록 단위로 기록합니다.
이 애플리케이션이 실행되는 동안에는 플래시가 메모리 매핑 모드가 될 수 없으므로 보통 애플리케이션은 특별 모드에 들어가야 합니다.
바이트 전송을 위한 오픈 소스 솔루션을 인터넷에서 찾아볼 수 있습니다. 예를 들어 Y-모뎀 프로토콜은 데이터에 16비트 CRC를 제공합니다.
테스트
플래시에 데이터가 기록된 후에는 올바르게 읽기가 수행되는지 테스트합니다. 이전 단계에서 개발한 소규모 테스트 프로그램을 사용하십시오.
버그를 조기에 찾아내려면 플래시 전체를 면밀히 테스트하는 것이 좋습니다.