.map
파일을 보면 무엇이 들어 있는지 확인할 수 있습니다. 그러나 그것은 귀하의 코드 또는 도서관 일 수 있습니다. "이미지 끝"에 대한 상대 참조가 아닌 절대 주소를 사용하고 있습니다.
대신 사용자 지정 linker file ~ 을 사용하여 명시 적으로 해당 테이블을 이미지 끝에 연결하십시오.
LR_IROM1 0x08000000 0x0007000 {
; Program ROM Area
ER_IROM1 0x08000000 (0x0007000-3) {
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
; Program SRAM Area
RW_IRAM1 0x20000000 0x00001000 {
.ANY (+RW +ZI)
}
; Version area
VERSION (0x08000000 + (0x0007000-3)) 0x3 {
version.o
}
}
나는 숫자를 직접 조정 대상 레이아웃에 대한 아무 생각이 없습니다.
화창한 날에 나는 little tool으로지도 파일을 읽었습니다. 아마 Keil 버전에서 작동할까요?
업데이트 :
당신은 .sct 파일 (링커 파일) 공유했습니다.
LR_IROM1 0x08000000 0x00008000 {
ER_IROM1 0x08000000 0x00008000 {
*.o (RESET, +First) *(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00001000
{
.ANY (+RW +ZI)
}
}
귀하의 ROM 영역 LR_IROM1는 0x08000000
에서 0x08007FFF
에 걸쳐있다.
따라서 0x08006E00
은 이미지의 끝이 아니며 링커는 정적으로 연결된 개체 AppVersion
뒤에 아무 것도 넣지 않아도됩니다 (.ANY).
원하지 않는 경우 위의 예와 같이 version
개체에 대해서만 영역을 만들도록 링커에게 명시 적으로 알리십시오.
Drogi Kolego Pawle - dlaczego 님과 niepokoi님께. (나는 Pawel에게 그가 무엇에 대해 걱정하는지 물었다.) 16 진수 파일에 어떤 차이가 있습니까? 실제로 콘텐츠를로드하는 것이 중요하다고 생각합니다. –
@PeterJ, 저는 단지 궁금합니다. 나는 왜 무언가가 일어나는 지 알고 싶다. 문제는 여기서 걱정하지 않는다. –
이미 .map 파일을 보았습니까? – Jeroen3