묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
스택에 PUSH되는 PC 값
안녕하세요, 섹션15. AAPCS : TRACE32 디버깅 실습 (2024년 버전) 의 119. Armv7-A: BL 명령어 실행 후 스택 Push 및 Pop 디버깅 실습 (Practice1-Part2) 강의에 3분10초쯤에서 push {r4,r5,r11,r12,r14,pc} 명령을 실행하는데, 왜 스택에 push 되는 pc 값이 C0253990 인지를 모르겠습니다. 그러니까 스택 화면(d.v 윈도우)에서 스택 주소(CC181BFC)에 push되는 값이 pc 값이 C0253990으로 확인되는데, 해당 push 명령은 C0253988 이고, 명령 실행시 레지스터 화면(r 윈도우)에서도 pc 값이 C0253988에서 C025398C로 변경되는데 스택에 push되는 pc 값은 왜 C0253990 ... 인가요 ... ? ++++개인적으로 조사해보니...ARMv7에서 파이프라인 성능향상을 위해 2개의 명령어를 prefetch 해놓았기 때문이라고 하는 것 같은데요 ... 그럼 trace32의 레지스터 화면(r 윈도우)의 값이 잘못되고, 스택 메모리 화면(d.v 윈도우)의 값이 맞다는걸...까요?
-
미해결신입 개발자를 위한 Armv7-A Architecture Overview (저자 직강)
강의자료 문의
안녕하세요 강사님.강의자료 제공이 가능한지 문의드립니다!
-
미해결디버깅으로 배우는 RISC-V 아키텍처 - 3부
강의 문서 미제공
강의 문서 혹은 노트(PPT) 제공 바랍니다.
-
미해결디버깅으로 배우는 RISC-V 아키텍처 -2부
강의 문서 미제공
강의 자료 중 T32 debug 관련 자료는 있으나, 강의 문서는 존재하지 않네요. 참고로, RISC-V 1 강의에서는 강의 문서가 첨부되어 있었고, 강의 문서를 제공하는 것이 맞다고 봅니다.
-
미해결신입 개발자를 위한 Armv7-A Architecture Overview (저자 직강)
Trace32 Armv7-A 시뮬레이터는 제공 안되나요?
이번 강의에서 진행(디버깅 실습)하는 TRACE32 프로그램은 제공하지 않습니다.TRACE32 교육용 실습 프로그램을 내려 받으셔서 상세하게 어셈블리 명령어를 디버깅하시려면, 이미 배포된 시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부/2부 저자 직강 강의를 수강하세요. 라고 하셔서, T32_Edu_sp2_240223_Arm1.zip파일과 T32_Edu_sp2_240223_Arm2.zip파일에 있는 2개다 다운로드 해서 확인해 보았는데요, Armv8-A 시뮬레이터입니다. Armv8-A시뮬레이터를 가지고 Armv7-A 시뮬레이터로 변경되나요?AARCH32는 어떻게 변경해야 되는 건가요? CPU메뉴에 System Setting에서 CPU 아키텍처를 A7이나 A15로 변경하더라도 프로그램에 타이틀 바 부분에 항상 Debugging:Register- Armv8-A(Aarch64)로만 표현됩니다.Trace32 Armv7-A 시뮬레이터는 제공되지 않는 건가요?
-
미해결신입 개발자를 위한 Armv7-A Architecture Overview (저자 직강)
강의자료 문의
안녕하세요 강사님.강의자료(PPT파일) 제공이 가능한지 문의드립니다!
-
해결됨시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
스택공간에 데이터를 저장할 떄
캐시에만 데이터를 저장하는 것인지 캐시와 ram영역 모두에 데이터를 저장하는 과정을 거치는지 궁금합니다
-
미해결Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]
하이퍼바이져 스택
안녕하세요, 하이퍼바이져 단으로 컨트롤이 넘어 오면 프로세스 스택을 쓰게 되는지 궁금합니다. (커널에서 그렇게 하는 것 처럼)아예 새로 만들게 되나요?
-
미해결Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]
하이퍼바이져
하이퍼바이져 단의 페이지테이블은 mapping 을 다시한다. 즉, os 단에서 할당해준다고 한 physical memory 는 hypervisor level 에서 보면 가상메모리가 된다.라고 이해하면 되나요? 속도가 많이 느려질 것 같긴 하네요..
-
미해결Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]
exception handler 주소
안녕하세요, exception handler 에서 vectors: 라고 붙어있는태그의 주소는 가상주소인가요? 0xFFFF .. 로 시작하는 것으로 보아 가상주소 같은데, 그런데 만약 page fault 가 나게 되면 exception handler 를 실행하는데 시간이 추가로 더 걸려서 좋지 않을 수도 있지 않나요?
-
미해결Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]
virtualization 예시
안녕하세요, virtualization hypervisor 도 보통 context switching 기능을 탑재하고 있나요? 자동차 쪽에서 많이 사용된다고 하는데, 어떻게 전환이 되는지 잘 연상이 안 되네요 계기판, 네비게이션 예시를 드셨는데, 계기판 같은 경우 RTOS 구현이 되게 되면 Virtualization context switching 기능이 있으면위험성이 있을 것 같습니다. 또 계기판 기능을 돌다가 네비게이션이 작동하면 계기판이 안돌아서 위험할 것 같은데요..
-
미해결Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]
exception handler
exception handler 는 어느 공간에서 실행될까?를 듣고 hypervisor, trusted zone 을 듣고 나니일단 process 가 EL0 에서 실행되고 있었을 때 에는 프로세스 공간에서 스택에 쌓아 나간다는 사실(이게 프로세스 스택인가요, 커널 스택인가요?)을 알았는데요, 이 때 과연 hypervisor , trusted zone 의 level EL2, EL3 에서는 어떻게 처리가 되는지? 궁금해졌습니다.EL0 -> EL1 의 흐름에서는 유저 프로세스 스택에서 다 담을 수 있다고 해도, EL1 이나 EL2, EL3 가 관여하게 되면 프로세스라는 개념이 사실 커널(EL1) 단에서 에러 처리한다는 개념하고는 조금 달라져야 할 것 같아서요,
-
미해결Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]
WFE, WFI, HVC
3가지 EL2 로 가는 instruction 이 있다고 했는데요,이 세 가지는 굳이 왜 나누었고,(찾아보니 이 질문은 동 강의 "트랩 명령어 질문" 에 나와 있네요)또 WFE, WFI 에 저전력 기능이 왜 같이 포함되어 있는지 궁금합니다.추가로 저전력모드가 hypervisor 모드 관련해서만 있는 것 같은데 하드웨어적으로 무슨 연관이 있는 건지.. 궁금합니다감사합니다.
-
미해결Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]
virtualization
안녕하세요, 가상화에 대해서 질문이 있습니다. 가상화를 하드웨어 단에서 지원을 해준다는 것은, 여러가지 지원을 해준 다는 의미인 것 같습니다. hypervisor 에서 os 를 바꿀 때 각 os 별로 메모리 공간을 관리해주어야 하는 데, 각 os 는 다른 os 의 존재를 모를 테니 마치 context switching 하는 것 처럼 모든 os 의 정보를 백업하고 스위칭 해야 할 것 같은데요.. 이것을 hypervisor 에서 구현하고 있는지 궁금합니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
LDM
안녕하세요, ldm 명령어가 수업 중 몇번 등장하는데요,본론은, ldm r13, {r4, r5, r11, r13, pc}에서 r13위치 기준으로 쭉 읽어오는 것 같은데요, (맞겠죠?)이 명령어도 stack 의 pointer 를 바꾸는 것 같은데요, 그럼 사실상 POP 과 같은 명령어라고 보면 되는 건가요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
TRACE32 debugging
안녕하세요, TRACE32 Arm aapcs v7 practice 1 에서, PC 값을 push 하는 동작이 있는데요, 분명 0xc0253988 이었는데 어째서 stack 에 들어갈때는 0x0253990 으로 들어가나요? 감사합니다
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
interrupt service
안녕하세요, ARM architecture 와 동떨어질 수 도 있는 질문입니다..interrupt service routine 나 exception handler 는 user 가 직접 구현해야 하는 데요, 만약 리눅스를 설치한다고 했을 때, 리눅스에서 어디까지 제공해 주는 것인가요? 언급해주신 카메라 센서나, 터치 센서 같은 경우..ESR 에서 EC 가 어떻게 들어오는지는 모르겠지만, 유저가 직접 EC 를 보고 해석하는 코드를 짤 것 같지는 않아서요.arm architecture 의 exception handler 분기 후 리눅스와 유저가 어떻게 처리하는지 궁금해져서 질문드립니다감사합니다
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
vbar register
안녕하세요,vbar_el1 이 random 하게 부팅 때마다 정해진다고 하셨는데,Armv8 만의 특징인가요?Armv7 은 0xFFFF0000 이런 주소였던 것 같아요보안 이슈 때문에 매번 다르게 하는 건가요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
vbar register
안녕하세요,vbar_el1 이 random 하게 부팅 때마다 정해진다고 하셨는데,Armv8 만의 특징인가요? Armv7 은 0xFFFF0000 이런 주소였던 것 같아요보안 이슈 때문에 매번 다르게 하는 건가요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
System call register
system call register 로 쓰인다는 x8 의 경우는 arm architecture 호출 규약에 나와 있는 것인가요 아니면리눅스 커널에서 임의로 그렇게 정한 것인가요?