ARM64(Aarch64) - Special Register 설정(Trace32)
Post
원문 보기 →ARM64(Aarch64) - Special Register 설정(Trace32)
AArch64 64비트 아키텍쳐에서 설정해야 할 Special Register에 대해서 잠깐 살펴볼께요.우선 커널이 구동될 때의 Exception Level이 1이니까 EL1 모드만 점검하죠. TTBR1_EL1약자는 Translation Table Base Register인데, 가상주소와 물리주소를 변환할 때 쓰이죠. Trace32로 이 레지스터를 설정하고 싶으면 아래 커맨드를 써야 하지오.Data.Set SPR:0x30201 %Quad 0x82ba1000 // TTBR1_EL1 TCR_EL1Translation Control Register의 약자인데 Stage 1 가상 주소 Translation 시 필요한 Translation 베이스 레지스터 정보를포함하고 있어요.Trace32로 이 레지스터를
Related Posts
3 posts[리눅스커널] Arm64: VMEMMAP_START, vmemmap, PAGE_OFFSET 위치 조정(v5.4)
리눅스 커널 v5.4 버전부터 가상 주소 맵이 약간 변경됐습니다.그 중 대표적인 속성은 아래 정보입니다. VMEMMAP_START: 0xfffffffeffe00000PAGE_OFFSET: 0xffffff8000000000 이 정보를 직접 어셈블리 코드로 확인해보겠습니다. 관련 코드는 참고로 다음과 같습니다. vmemmap ((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT)) 패치 코드 먼저 다음과 같은 패치 코드를 작성합시다. diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.cindex 9af647d..3000332 100644--- a/arch/arm64/mm/
[TRACE32] 메모리 덤프에서 검색(서치)하는 명령어: data.find
TRACE32를 사용하다 보면 메모리 덤프에서 특정 데이터를 검색하고 싶은 경우가 있습니다.이 때는 data.find 명령어를 사용하면 됩니다. 다음은 TRACE32에서 릴리즈한 data.find 관련 스팩 문서(general_ref_d.pdf)의 내용입니다. Format: Data.Find [ [% ] | [/ ]] : Byte | Word | Long | Quad | TByte | HByte | Float . | BE | LE : Back | NoFind ; search for byte 0x3f
[리눅스커널] TRACE32: 'v.type' 명령어로 구조체와 enum 필드를 바로 확인하기
소스 코드를 분석 하다보면 구조체와 enum의 정체를 알고 싶을 때가 있습니다.이 때 TRACE32를 활용하면 바로 이 정보를 확인할 수 있습니다. 구조체 확인하기 먼저 구조체의 세부 필드는 다음과 같은 명령어를 입력하면 확인할 수 있습니다. $ v.type % %m %l %hi %sp struct '구조체 이름' 자, 그럼 리눅스 커널에서 프로세스 정보를 나타내는 struct task_struct 구조체의 정체를 확인해봅시다. $ v.type % %m %l %hi %sp struct task_struct(struct task_struct) struct task_struct struct (4096 bytes, [0] struct thread_info thread_inf
![[굿즈] 웹툰 『악역의 엔딩은 죽음뿐』 트럼프 카드 : 아는 장면이라도 플레잉 카드로 수집하는 이 맛](https://img.zoomtrend.com/2026/06/05/1780650880-SE-1c22cf84-12af-4fb2-95c5-c6354bd47dfd.jpg)


