개요 | |
DA14580 의 부팅 방법 중 Secondary Bootloader 가 제공되고 있으며 DA14580에 연결된 SPI 플래시 메모리에 2개의 펌웨어 데이터를 기록해 둘 수 있고, 부팅시에 Secondary Bootloader 가 2개 중에서 1개의 펌웨어 데이터를 DA14580 내장 SysRAM에 이전하여 실행되게 된다. 본 글에서는 Secondary Bootloader 의 작동방식 , SPI 플래시 메모리맵 구성, 필수 준수 규격이 정리된다.
필수참조정보. 1. UM-B-012 : Creation of Secondary Boot Loader pdf 보기 : http://support.dialog-semiconductor.com/download/file/fid/949
| |
|
SPI 메모리 맵 | |
Secondary Bootloader 는 DA14580 내부 ROM에 기록될 수 도 있고, 외부 SPI 플래시에 기록될 수 도 있다. 아래 그림은 SPI플래시의 첫부분에 Secondary Bootloader가 기록된 상태에서 이후 2개의 펌웨어데이터와 마지막에 Product Header 라는 부분이 배치된 것을 보이고 있다.(DA14580의 ROM 에 Secondary Bootloader 가 기록될때는 아래 그림의 Offset #0 으로 시작하는 영역이 전부 빠지고 Offset #1이후 나머지는 동일하다.)
Product Header의 시작주소는 Secondary Bootloader 코드내에서 0x1F000 으로 되어있다. - 0x1F000 은 십진수 126976이며 메모리사이즈 0x2000(십진수 131072 ) 인 경우 product header 부분에 기록가능한 최대 용량은 4096바이트임.
Product Header에 펌웨어 이미지1의 주소 Offset#1 과 펌웨어 이미지2의 주소 Offset #2가 기록되어있다. Secondary Bootloader 는 Product Header 영역을 읽어서 각각의 이미지의 시작주소에 접근하게 된다.
| |
|
Product Header, Image Header 포맷. | |
Product Header
Image Header
| |
|
Booting Sequence | |
Secondary Bootloader 는 부팅중에 아래 시퀀스로 진행된다.
1. Product Header 를 읽어서, 2개의 이미지의 메모리 주소 확보한다.
2. 2개의 이미지 헤드를 읽어서, imageid 가 더 큰 것의 이미지 영역을 읽어서 System RAM 으로 데이터를 복사처리한다. - 만일 데이터가 encrypted 된 경우 Decrypt 처리수행한다. - CRC32 계산하여 이 값이 헤더에 기록된 CRC값과 동일한지 검사한다.
3.System RAM 에 이전된 것을 실행시킨다.
| |
|
///432.
'임베디드.일렉트로닉스' 카테고리의 다른 글
Dialog 사. DA14580 외부 핀 인터럽트, wakeup 시키기. (0) | 2015.09.07 |
---|---|
Dialog 사. DA14580에서 I2C Master 구현방법. (0) | 2015.09.07 |
XMODEM 128 byte CRC16 개념정리, 코드예. (0) | 2015.08.30 |
EFM32 UART Bootloader (부트로더) (0) | 2015.08.29 |
Blue Gecko BGM111 Bluetooth Smart Module (0) | 2015.08.29 |
댓글