someones 코드를 이해하려고하는데 GPIO 영역 (0x4002 0000 - 0x4002 03FF)의 메모리 공간을 읽었지 만 GPIO 레지스터보다 높은 주소입니다 (0x24로만 이동합니다).ARM M3 : GPIO 주변 메모리 맵에서 '추가'공간 사용? 이럴 수있어?
0x4002 0024 위의 모든 추가 공간을 0x4002 03FFF 이하로 사용할 수 있습니까? 이 공간을 읽으면 어떻게 될까요?
편집 : 코드를 게시 할 수 있다는 것을 완전히 잊어 버렸습니다. 나는 나에게 두통의 원인이되는 선을 굵게 :
R0 = 0x15
PUSH {R3,LR} ;
ADD.W R0, R0, R0,LSL#1 ;
MOV GPIO_Port_A_Address, #0x40020000
LSLS R0, R0, #2 ;
ADDS R2, GPIO_Port_A_Address, R0 ;
LDRB R2, [R2,#4] ;
MOVS R1, #1 ;
LSL.W R1, R1, R2 ;
LDR R0, [GPIO_Port_A_Address, R0]
UXTH R1, R1 ;
BL sub_8001ED8 ;
MOVS R0, #0 ;
POP {R3,PC} ;
어떤 마이크로 컨트롤러인가? 생각하고있는 마이크로와 동일한 코드라도 찾고 있습니까? 유일한 '일반'측면은 주변 장치가있는 곳의 Cortex-M3 메모리 맵에서 0x40000000 - 0x5fffffff입니다. 그 이상의 것은 부품에 따라 다릅니다. – Notlikethat
예, STM32F205입니다. 물론 코드가 작성된 uC에 대한 동일한 데이터 시트를 읽습니다. 나는 GPIO 지역에 대해 구체적으로 묻고 있는데, 이것이 내가 원래의 질문에서 언급 한 이유이다. – eibwen
맞습니다. 그 문맥이 처음부터 질문에 있다면, 나는 묻지 않아도됩니다. 계속해서 "Cortex-M3"만 있으면 CPU 코어에 GPIO가 없으므로 "GPIO 영역"은 의미가 없습니다. 마찬가지로 우리가 볼 수없고 추론 할 수없는 "누군가의 코드"가 인터넷에서 임의로 잘못 식별 된 STM32F1 코드 (이 주소 범위는 DMA 컨트롤러가 될 수 있음)가 될 수 있다는 것을 알고 있기 때문에 질문이 잘못되었습니다. 좋은 질문에는 관련 세부 사항이 모두 포함되어 있습니다. – Notlikethat