본문 바로가기
임베디드.일렉트로닉스

Dialog사. DA14580 Secondary Bootloader (dual image booting)

by 리치굿맨 2015. 9. 7.

 

 

 

개요

 

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.

 

댓글0


.    
현물 |선물 인버스 |선물 USDT     현물 | 선물 USDT |봇제작툴/카피트레이딩     현물 |선물 인버스 |선물 USDT     .