Q&A
강의자료 요청
아래 강의에서 강의 자료를 확인하실 수 있습니다. 1. 강의 자료 (메모리 모델과 배리어) 문서: Arm_메모리 모델과 배리어_강의자료.pdf 감사합니다.
- Likes
- 0
- Comments
- 4
- Viewcount
- 39
Q&A
아래 강의에서 강의 자료를 확인하실 수 있습니다. 1. 강의 자료 (메모리 모델과 배리어) 문서: Arm_메모리 모델과 배리어_강의자료.pdf 감사합니다.
Q&A
7/4(토) 까지 '강의 자료'를 업로드하도록 하겠습니다. 감사합니다.
Q&A
(늦게 답변을 드려서 죄송합니다.) 제가 진행한 이번 강의는 너무 Arm 아키텍처 관점으로만 SPn와 SP를 설명드린 것 같습니다. 일반적으로 EL0이나 EL1, EL2 그리고 EL3에서는 소프트웨어 관점으로 바라보는 스택은 SP 레지스터로만 관리됩니다. 함수를 C 언어로 프로그램한 다음에 해당 코드를 어셈블리 명령어로 분석하면 SP 레지스터만 보일 뿐입니다. 예를 들어, 아래 코드를 보겠습니다. NUX:FFFFFFC010B05F90|__smccc_workaround.:hint #0x10 ; #16 NUX:FFFFFFC010B05F94| sub sp,sp,#0x20 ; sp,sp,#32 'sub sp,sp,#0x20' 명령어는 실행되는 위 코드가 실행되는 익셉션 레벨에 따라 아래 레지스터가 함께 업데이트 됩니다 - EL0: sp, sp_el0 - EL1: sp, sp_el1 - EL2: sp, sp_el2 - EL3: sp, sp_el3 감사합니다.
Q&A
늦게 답신드려서 죄송합니다. 펩리스 업체에서 개발하는 주요 정보는 외부에 공유되어 있지 않아 구체적으로 답변을 드리기는 어렵습니다. 일반화하면 - 현업 Video IP/DSP는 대부분 아래 흐름으로 처리됩니다. Linux driver probe: 리눅스 플렛폼 디바이스 구조 파악 + 디바이스 트리 firmware binary loading: request_firmware() 등등의 커널 API 사용 방법 reserved memory mapping: 디바이스 트리로 메모리 매핑을 설명 mailbox/interrupt communication: request_irq() 함수를 사용해서 인터럽트 등록 DSP start 위와 같은 시나리오로 코드를 분석하시고, 간단한 mock firmware loading project를 진행하시면 좋겠습니다. 조금 더 구체적인 답변을 드리지 못하는 점 양해 부탁드립니다.
Q&A
TRACE32 프로그램을 설치하신 경로를 먼저 확인해주시면 좋겠습니다. 아래 스틸컷과 같이 압축을 해제하셨는지 확인 부탁드립니다. 그래도 안되면, 다시 질문을 업데이트해주세요.
Q&A
(제가 늦게 질문을 확인해서, 늦게 답변 드리는 점 양해 부탁합니다.) 에러가 발생한 이유는 T32/ELF 폴더에 vmlinux_aarch64 파일이 존재하지 않기 때문입니다. 아래 강의에 업로드한 ELF.zip 파일의 압축을 푸신 후에, '강의 7: 추가 ELF 파일 업데이트 (T32/ELF 폴더)' C:T32/ELF 폴더에 ELF 파일을 위치시키면 잘 동작할 것입니다. * 참고로 vmlinux_aarch64 파일은 다른 Arm 아키텍처 강의에서 활용된 ELF 파일입니다.
Q&A
아래 강의에 가시면, 섹션2와 섹션3을 포함한 전체 강의 슬라이드를 확인하실 수 있습니다: '2. 강의 슬라이드 문서 자료' 감사합니다.
Q&A
먼저 강의를 들어주셔서 감사합니다. 문의하신 강의 슬라이드는 3/27(금) 까지 업로드하도록 하겠습니다. 감사합니다.
Q&A
Armv8와 Armv7 아키텍처 별로 용어는 다르지만, 동작 모드와 익셉션 레벨은 거의 유사한 개념입니다. Arm 아키텍처는 동작 모드와 익셉션 레벨을 Privilege level를 나타내는 용어라고 설명합니다. 구체적으로 말씀드리면: 1) Privilege level 0 - Armv7: User mode (유저 애플리케이션 실행) - Armv8: EL0 (유저 애플리케이션 실행) 2) Privilege level 1 - Armv7: Supervisor mode, IRQ mode, Abort mode, Undefined mode (리눅스 커널 실행) - Armv8: EL1 (리눅스 커널 실행) 감사합니다.
Q&A
확인 후, "42. 워크 핸들러에 전달되는 매개 인자 디버깅"의 강의를 제대로 다시 업데이트했습니다. 오류를 지적해주셔서 감사드리고, 같은 실수를 하지 않게 앞으로 강의를 잘 업로드 하겠습니다. 감사합니다.