STM32 마이크로 컨트롤러 용 사용자 정의 가능한 부트 로더. 이 프로젝트에는 FAT32 파일 시스템이있는 외부 SD 카드에있는 펌웨어를 적용하는 방법에 대한 다양한 하드웨어에 대한 데모가 포함되어 있습니다.
각 예제는 lib/stm32-bootloader 폴더에있는 동일한 부트 로더 라이브러리를 사용합니다. 예제는 projects 폴더에 있으며 해당 특정 구현과 관련된 설명이있는 별도의 전용 판독 파일이 제공됩니다.
업데이트 : STM32L496-Discovery 예제는 IAR Ewarm 외에도 GNU ARM 내장 도구 체인 (ARM GCC)을 사용하여 프로젝트를 컴파일하고 구축하는 것을 지원합니다. 자세한 내용은 Project ReadMe를 확인하십시오.
부트 로더 라이브러리 소스 코드의 전체 문서화는 https://akospasztor.github.io/stm32-bootloader를 참조하십시오.
Repository
├── docs
├── drivers
│ ├── CMSIS
│ └── STM32L4xx_HAL_Driver
├── lib
│ ├── fatfs
│ └── stm32-bootloader
└── projects
├── STM32L476-CustomHw
├── STM32L496-CustomHw
└── STM32L496-Discovery
docs 폴더에는 부트 로더 소스 코드 및 기타 문서 관련 정적 파일의 생성 된 문서가 포함되어 있습니다.
drivers 폴더에는 CMSIS (Cortex MicroController 소프트웨어 인터페이스 표준)와 ST의 HAL (하드웨어 추상화 레이어) 드라이버가 포함되어 있습니다.
부트 로더 소스 코드와 해당 헤더 파일은 lib/stm32-bootloader 폴더에서 찾을 수 있습니다. 또한 lib 폴더에는 FATFS 라이브러리도 포함되어 있습니다.
다양한 데모는 projects 폴더에 있습니다. 각 예제 프로젝트에는 헤더 및 소스 파일이 각각있는 include 및 source 폴더가 포함되어 있습니다. 컴파일러 및 SDK 특정 파일은 해당 하위 폴더에 있습니다. 또한 모든 예제 프로젝트에는 기능을 자세히 설명하는 전용 readme 파일이 있습니다.
이 저장소에는 다음 예제가 포함되어 있습니다.
| 마이크로 컨트롤러 | 하드웨어 | 프로젝트 경로 |
|---|---|---|
| STM32L476VG | 관습 | 프로젝트/STM32L476-CUSTOMHW |
| STM32L496VG | 관습 | 프로젝트/STM32L496-CUSTOMHW |
| STM32L496AG | 32L496GDSCOVERY | 프로젝트/STM32L496 발견 |
부트 로더는 필요한 하드웨어 및 환경에 쉽게 사용자 정의하고 맞춤화 할 수 있습니다. 즉, 다양한 인터페이스를 통해 펌웨어 업데이트를 수행하거나 하드웨어에 무선 통신 모듈을 통합 한 경우 OTA (Over-Air) 업데이트를 구현할 수 있습니다. 성공적인 응용 프로그램 내 프로그래밍을 수행하려면 다음 순서를 유지해야합니다.
Bootloader_Init() 로 플래시를 초기화하십시오.Bootloader_Erase() 로 응용 프로그램 공간을 지우십시오.Bootloader_FlashBegin() 호출하여 프로그래밍 준비하십시오.Bootloader_FlashNext() 함수를 반복적으로 호출하여 프로그래밍을 수행하십시오. 프로그래밍 절차에는 8 바이트의 데이터 (이중 단어)가 플래시에 한 번에 프로그래밍되어야합니다. 이 기능은 데이터가 작성되는 주소를 자동으로 증가시킵니다.Bootloader_FlashEnd() 호출하여 프로그래밍을 마무리하십시오.응용 프로그램 이미지는 이진 형식이어야합니다. 체크섬 검증이 활성화되면 이진에는 이미지 끝에 체크섬 값이 포함되어야합니다. 애플리케이션 이미지를 작성할 때 체크섬은 다음 매개 변수로 전체 이미지 (체크섬 영역 제외)를 통해 계산되어야합니다.
중요한 메모 :
system_stm32xxxx.c 파일에서 벡터 테이블 오프셋을 0x0000으로 설정합니다. 이는 비활성화되어야합니다 (부트 로더는 점프 전에 벡터 테이블 재배치를 수행하도록 구성 할 수 있음) 또는 벡터 테이블 오프셋 레지스터 (VTO)를 응용 프로그램 공간의 시작 주소 인 적절한 오프셋 값으로 수동으로 설정해야합니다. 자세한 내용은 [1]을 참조하십시오. 부트 로더는 bootloader.h 파일에서 널리 구성 될 수 있습니다. 이 파일에는 구성 가능한 매개 변수 및 정의와 관련된 자세한 설명 및 설명이 포함되어 있습니다.
[1] PM0214, "STM32F3 시리즈, STM32F4 시리즈, STM32L4 시리즈 및 STM32L4+ 시리즈 Cortex®-M4 프로그래밍 매뉴얼", http://www.st.com/resource/en/programming_manual/dm00046982.pdf