Open minidump opened 8 years ago
두 번째 restart부터 시작. call_cache_fn으로 호출할 당시 r3에 16(오프셋)을 집어넣어서 proc_types의 cache flush를 참조함. 과거 분석할 당시의 첫번째 restart에서는 cache on을 위해 8을 사용했었음.
* Table for cache operations. This is basically:
* - CPU ID match
* - CPU ID mask
* - 'cache on' method instruction
* - 'cache off' method instruction
* - 'cache flush' method instruction
.align 의 directive는 align을 맞추기 위하여 해당영역이 code영역일시nop를 채우고 그외의 영역일시 0을 채운다고 합니다. (아래 링크) http://stackoverflow.com/questions/14544617/what-does-the-align-directive-do
.align n
n은 2의 n승을 말하고, 바로 다음 인스트럭션의 주소 체계에만 반영되는것으로 확인되었습니다. (이하 인스트럭션이 모두 해당되는것이 아님) (만약 주소가 2의 n승으로 딱 정렬되지 않는다면 그 전까지는 메모리상에서 0x0으로 채워지는걸 확인)
분석중에 나온 W()는 /arch/arm/include/asm/unified.h 에서 정의되어 있습니다.
#define ARM(x...)
#define THUMB(x...) x
#ifdef __ASSEMBLY__
#define W(instr) instr.w
#define BSYM(sym) sym + 1
#else
#define WASM(instr) #instr ".w"
#endif
ARM align 시뮬 결과
오랜만에 컴구관련 용어가 나와서 아래 참고 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/3738.html 하버드 아키텍처는 데이터와 명령어 버스가 구분되어 있는 구조, 폰노이만 아키텍처는 데이터와 명령어를 땡겨오는 버스를 하나만 가지고 있는 구조
ARM asm CLZ 명령어 설명 http://forum.falinux.com/zbxe/index.php?document_srl=574399&mid=lecture_tip
clidr의 ctype의미
10차 스터디팀에서 분석된 내용을 참조.
ID_MMFR1, Memory Model Feature Register 1, PMSA l1 harvard ? hierarchy?
결론적으로,
Harvard 구조와 Hierarchical은 관계가 없다.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0464f/index.html Cortex-A7 MPCore Technical Reference Manual 1.1. About the Cortex-A7 MPCore processor Figure 1.1. Example multiprocessor configuration 그림 참조!
새해 복 많이 받으세요. 38주차 스터디 시작합니다. 장소는 토즈 강남점 3F 8번방(파고다 뒷 건물)