NK.bin + Boot.bin = Multiple bin 구조
4. 데이터를 RAM 에 저장 합니다.
. 데이터는 아래 구조로 되어 있습니다.
Address |
Length |
CheckSum |
Data |
▷ 위 패킷 구조를 살펴보도록 하죠.(위 이미지의 ImageLength 끝 부분부터 보시면 됩니다.)
Address : 00 00 02 80 -> 0x80020000
Length : 04 00 00 00 -> 0x00000004
CheckSum : E2 01 00 00 -> 0x000001E2
Data : CB 2D 00 EA
. RAM 0x80020000 번지에 4바이트 를 복사한다.
CheckSum 은 Data 를 모두 더해 봅시다. 4바이트 데이터 CB+2D+00+EA = 0x1E2
로 CheckSum 과 같게 나오므로 정확한 데이터로 판단.
▷ 한번만 더 보도록 하죠 두번째 패킷
Address : 04 00 02 80 -> 0x80020004
Length : 08 00 00 00 -> 0x00000008
CheckSum : D6 03 00 00 -> 0x000003D6
Data : 45 43 45 43 D4 8B E5 82
▷ 이런식으로 DATA 를 RAM 으로 복사하게 되네요.
▷ 이렇게 쭉 RAM 으로 복사된 데이터를 Nand, SDCard 에 저장하면 끝
● 정리
NK.Bin 의 경우 NK.nb0 를 압축한 형태 이기 때문에 위와 같이 압축 해제 하는 방법으로 데이터를 램에 저장 하지만 nk.nb0 파일을 위 어드레스 0x80020000 에 데이터 사이즈 만큼 램에 복사 하여도 같은 결과 값을 얻을 수 있습니다. 다만 파일사이즈가 커지고 여러 파일이 합쳐져 하나의 이미지를 만든 다면 다른 구조를 가지고 가야 겠지요.
● Multiple bin중 Boot.bin입니다
▷ 위에서 많이 했으니 데이터 부분만 한번 보도록 하죠
Address : 00 00 00 00 -> 0x00000000
Length : 36 C4 0B 00 -> 0x000BC436 (753 Kbyte)
CheckSum : F8 28 F2 02 -> 0x02F228F8
Data : FE 03 00 EA 00 00 ............
. RAM 0x00000000 번지에 753 Kbyte 바이트 를 복사합니다.
CheckSum 은 Data 를 모두 더해서 0x02F228F8
▷ Address(0x00000000) 의 변경부분
위와 같이 0x80020000 에 저장 하고 싶다면 OEMMapMemAddr 를 통하여
어드레스를 변경하여 return 해주면 끝
● 글로 설명 하기참 어려워요 부족한 부분이나 궁금하신 부분은 댓글로 남겨주세요 ^^
'Hello CE,Mobile' 카테고리의 다른 글
Get 호출자 프로세스 (0) | 2016.10.06 |
---|---|
HIVE BOOT SECTION (0) | 2014.03.24 |
Registry settings for Windows CE development (0) | 2014.02.21 |
Resume Thread 동작 (0) | 2014.02.18 |
어셈 DCD (0) | 2014.01.24 |