묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
책관련 질문드려요
arm책이랑 리눅스 구조와 원리 책 모두 구매했는데강의가 아닌 리눅스 구조와 원리 리눅스 구버전 커널을 이용하여 설명하는것같은데책만으로 학습해도 충분할지 궁금해서 문의드려요
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
4.2.1. 실습을 어떻게 진행하는것인가요?
안녕하세요,수업 진행 간 원활하지 않아 도움 요청 드립니다.4.2.1 실습을 진행 중인데요실습 파일이 어디있는지를 모르겠습니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
3.2.1.4 실습과 관련한 질문
안녕하세요 바쁘신데 고생 많으십니다. stack frame을 보는 명령어 v.f 수행 시에 아래 사진과 같이, Stack Frame을 찍지 못하는 것 같습니다. 이와 관련하여 제가 생각한 문제점은실습 환경 구축을 위해 Trace32 프로그램에서 Arm -> Register -> Practice2 (Armv7)로 진행하였습니다. Practice 1은 Armv8 아키텍처로써 현재 강의와는 맞지 않다고 생각했습니다. 이에 따라 예제 파일을 열게 되면 아래와 같은 Warning이 발생합니다.Warning: file C:\home\mike.seo\osc_src\rpi_5_4_kernel\linux\net\core\dev.c not found 이에 따라 현재 모드 마다 SP,LR,PC Register의 값이 강의 내용과 다른 상황입니다. 관련해서 답변 주시면 감사하겠습니다.추가적으로 SoC Engineer 입장에서는 JTAG/SWD Port가 CPU에서 뽑아져 나오는 것으로 알고 있습니다. 하지만 Trace 32는 프로그램인데 실제 하드웨어 포트와 Trace32라는 프로그램을 연결해주는 것이 무엇인지 궁금합니다. 관련해서 답변 주시면 감사하겠습니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
Arm Architecture 관련 공부
안녕하세요임베디드 개발을 하고 있는데, Arm architecture에 대한 지식은 거의 없어서 강의를 수강하고 있습니다. Arm architecture를 공부하기 위해서 필수적으로 봐야할 문서나 사이트가 있는지 궁금합니다.감사합니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
유저 모드 뱅크드 레지스터 질문입니다
armv7 뱅크드 레지스터 관련 trace32 실습을 하던 중 생긴 질문입니다. 해당 툴을 사용할 때 usr 모드의 R8-R14가 뱅크드 레지스터인 것 처럼 보입니다. 이 중 실습과 ARM 공식 문서를 통해 USR 모드 또한 R13과 R 14 를 뱅크드 레지스터를 갖는 것으로 판단했는데 맞는 건가요?"The User, IRQ, Supervisor, Abort, and undefined modes each have two banked registers mapped to r13 and r14, allowing a private SP and LR for each mode."ARM 문서 내용입니다.실습의 경우 다른 동작 모드에서 USR 모드로 돌아올 때의 R13,14 값으로 뱅크드 레지스터처럼 동작하는 것을 확인했습니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
3.2.2.4 모드 복귀 부분
IRQ 모드에서 슈퍼바이저 모드로 복귀할 때의 SPSR_irq.M에 왜 다시 0x13을 넣어주는지 잘 모르겠습니다. 이미 해당 레지스터는 0x13으로 지정되어 있는데 SPSR_irq가 아니라 SPSR_svc.M에 CPSR.M을 넣고 오히려 CPSR.M을 0x13으로 변경해야하는 것이 아닌가요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
Armv8의 Exception Level에서 질문이 있습니다.
svc, hvc, smc와 같은 어셈블리 명령어를 수행하면, 내부적으로 exception이 발생하고 el이 변경된다고 말씀해주셨는데, 여기서 el이 변경된다는 건 하드웨어적으로는 단순히 PSTATE의 EL 비트 필드의 값이 갱신되는 것으로 이해해도 될까요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
5.4.3 실습에서 궁금한점이 있습니다.
해당 실습을 진행하던 도중 궁금한점이 있어 이렇게 글 남기게 되었습니다! data abort exception이 발생해서 vector_dabt라는 주소로 분기하게 된 상태에서는 SPSR_abt 레지스터에 이전 동작 모드인 user_mode bit encoding값이 설정이 되어있는 걸 볼 수 있었습니다. 그런데, Data abort를 처리하기 위해 supervisor mode로 진입하는 과정에서 movs pc, lr 명령어를 실행하면 supervisor mode로 진입은 하지만, SPSR_svc 레지스터에는 이전 동작 모드가 로드되지 않은 걸 볼 수 있었는데, 그렇다면 exception이 유발이 되어야만 SPSR_<mode>의 값이 갱신되는 것 인지 단순히 movs, subs와 같은 동작 모드를 변경하는 명령어로는 SPSR이 갱신되지 않는 것 인지 궁금합니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
리눅스 커널 동작 모드별 스택 포인터 초기화
동작 모드를 변경하는 어셈블리 명령어 부분에서sp를 모드 별로 초기화 해 주는 데요, 이게 부트 로딩 과정에서 모드 별로 실제 physical memory를 모드별 스택으로 나누는 과정인가요?그리고 모드별로 아예 physical memory를 따로 쓰게 되는 것인가요? 그리고 모드별로 #0 #12 .. 이렇게 작게 스택을 지정하는 것 같은데.. 너무 작지 않나 하는 생각이 듭니다. 뭔가 잘못 이해하고 있는 것 같습니다. 정정 부탁드립니다
-
해결됨시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
TRACE32 사용 실습에서 RASPIAN KERNEL DEBUG
3.2.1.4, 5 강의에서 TRACE32 사용 실습을 해주시는데요. 강의 내용을 익히기 위해 범용 레지스터를 설정을 하면서 실습을 해보려고 합니다. 이때 실행하고 계시는 RASPBIAN KERNEL DEBUG를 어떻게 실행하나요?또는 실습을 위해 첨부해주신 T32 파일에서 실행할수 있는 데모앱이 있을까요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
강의 내용 짤린건가요?
안녕하세요. 5.1.2강의를 보는데 20분정도 마지막쯤에 PL에 대해서 설명하는 부분이 1초정도 나왔다가 짤린듯합니다?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
TRACE32 프로그램
안녕하세요3.2.1.4 강의에서 나오는 TRACE32 프로그램이랑 인프런에있는 프로그램이랑 켰을때 뜨는게 다릅니다인프런에서 다운받은거는 실행시키고 r명령을 입력하면 위의 그림처럼 뜹니다.강의에서는 RASPBIAN KERNEL DEBUG이름이고 r을입력하면 레지스트 목록이 뜹니다.강의랑 같은 환경설정을 하려면 어떻게 해야합니까?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
[3.2.2.4] Exception 발생시 CPSR <-> SPSR의 동작 질문
안녕하세요? 재미있게 강의를 듣고 있는 수강생입니다. 강의에서 보여주신 Flow에서 어느 부분이 HW 적으로 처리되고 어느 부분이 SW 적으로 처리되는지 여부가 불분명 되지 않아 질문드립니다. 1) Exception에 의해 Mode 전환이 되는 경우, Exception발생시 C/SPSR간 Copy는 HW적으로 되지만, 실제 Mode 전환은 CPSR의 Mode Bit 설정에 의해 이루어질 것으로 생각됩니다. 이 과정에서 "CPSR.M = 0x12" 이 부분은 ARM이 자동으로 해줘야할 것으로 생각되는데 맞는지요?2) ISR에서 SPSRs이나 R14_s 등을 백업해야해 둬야하는 이유가 명확하지 않아 질문을 드립니다. Link Register인 R14의 경우에는 ISR에서 함수 호출이 있을 경우 변경이 생길 수 있어 후에 Return을 위해 백업을 해두어야할 것 같은데, SPSR은 Exception 발생시에만 HW가 자동으로 Copy하기 때문에 굳이 백업이 필요한가라는 생각이 듭니다. 2-1) 혹시 모를 SW Bug에 의한 Corruption에 대한 대응책인지요? 2-2) 그렇다면 이 Register가 Read-Only가 아니라는 것인데, 이 Register를 SW가 조작해야하는 Case가 있는지요? 없다면 아예 bug 방지를 위해 Read-Onlly로 만드는 편이 좋을 것 같은 생각이 들어 질문드립니다. 3) 복귀시에 전환 Mode에서 원 Mode로의 복귀는 CPSR.M이 원 모드로 설정이 되어야할 것 같은데, SPSR_irq.M=0x13으로 원복하는 것만 있어서 질문드립니다. MOVS PC R14_irq를 하면 ARM이 SPSR_irq.M의 원복된 내용을 CPSR로 자동으로 Copy를 해주는 것인지요? 감사합니다.
-
해결됨시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
강의 자료 관련 문의
안녕하세요.강의 자료와 관련된 질문이 있어 문의드립니다. 교안 파일을 열었을 때, 아래와 같이 글씨가 점으로 나타나는 현상이 있습니다.확인 부탁드립니다.감사합니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
강의자료
안녕하세요, 강의 자료 pdf 어디서 다운로드 받을수있을까요? 아직 업로드가 안된거라면 언제쯤 업로드가될까요. 감사합니다.
-
해결됨시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
강의하신 강의자료
안녕하세요 해당 강의들에 대한 강의자료는 강사님께서 언제쯤 올려주시는지 여쭤봅니다~~!
-
해결됨시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
CMP 명령어 예제 중
CMP 명령어의 예제 설명 부분에서CMP R2, 0x13 일때 R2가 0x14인 경우 결과에 CPSR.{N,Z,C,V} 라고 해주셨는데 0x14 - 0x13의 경우 연산의 결과가 0이 아닌데 어째서 Z flag가 업데이트 된다는 것인가요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
MVN 명령어 사용이유 질문
MVN R0, #7 명령어를 통해 MVN을 공부하다 생긴 궁금증입니다MOV R0, 0xFFFFFF8 과 같은 의미가 아닐까 하고 생각해보았는데 Armv7기준 32bit 단위로 명령어를 가져오는데 이 경우 상수로 전달되는 값이 32bit이기 때문에 명령어를 올바르게 해석하지 못하지 않을까 라는 결론을 가졌습니다. 제가 올바르게 생각한게 맞나요? 만약 맞다면 SUB 명령어를 통해 음수값을 만드는 것과 차이점이 있나요?또한 상수값이 아닌 Operand Register값이 들어갈 수도 있나요? 좋은 강의 감사합니다
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
MOVS 명령어 질문
안녕하세요. "MOVS PC, LR" 명령어 수행시에 무조건 SVC모드로만 전환되는 것인지 아니면 다른 모드로도 전환될수 있는 것인지 궁금합니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
여러 가지 질문
안녕하세요 여러 질문 사항이 있어서 글을 올립니다. 부트로더를 개발하는 상황이 잘 이해되지 않습니다. 현업에서 어떤 상황에 부트로더를 개발하는지 궁금합니다. 예를 들어서, 새 제품 개발시에 새로운 Soc를 사용하게 되어서 부트로더를 새로 개발하는 것인지 등에 관해서 입니다.#imm 에서 imm은 어떤 단어의 약자인지분기 명령어중에서 bl과 달리 b 명령어는 링크 레지스터에 복귀할 주소를 저장하지 않으니 함수를 호출한(b명령어를 실행한 다음 명령어) 주소로 복귀하지 않는 것인지답변해주시면 감사하겠습니다.