묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
강의하신 강의자료
안녕하세요 해당 강의들에 대한 강의자료는 강사님께서 언제쯤 올려주시는지 여쭤봅니다~~!
-
미해결ARM Cortex-M 프로세서 프로그래밍
s702에 원자적 Access 를 위한 BSRR 코드작성 부분에 대해서
LED 점등을 위해 if 문 작성을 한 부분에 문의사항이 있습니다. if 문 조건을 보면 ODR 레지스터의 값을 조회하고서 BSRR 레지스터에 값을 입력하는 것으로 LED 점등을 하는데요 (GPIOG_13번) BSRR 레지스터에 값을 기록하면 ODR 레지스터에 값을 기록할 때와 다르게 바로 값만 입력하게 되어서 코드 블럭이 생기지 않는다고 하였는데 작성한 코드 전체에서 BSRR 에 값을 Write 하도록 작성되어있지만 if문 조건에서는 ODR 레지스터의 값을 Read 하는 동작이 섞여있어서 여전히 ODR 레지스터를 Read 하는 과정이 도중 중지되지 않을까 합니다?? 그런일이 안발생되는 BSRR 레지스터 Write 동작이 독립적/개별적으로 이루어진다고 말씀하신다면 확신할 수 있게 Disassembly를 통해 직접 확인하는 것을 영상추가해주실 순 없나요? 관련내용 사진 첨부드립니다.
-
해결됨시스템 소프트웨어 개발을 위한 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 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]
폴트 설정 비트 필드 질문
폴트 설정하는 레지스터들의 값을 0으로 설정하여 EL0에서 EL1, EL2로 트랩되도록 허용하는 것이 보안수준을 왜 올리는 것인지 문의드립니다. 제가 생각했을 때는 사용자 레벨(EL0)에서 더 상위 익셉션 레벨(EL1, EL2)로 접근할 수 있도록 설정하는 것이 보안 수준을 낮춘다고 생각해서 문의드립니다.
-
해결됨Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]
멀티레벨테이블로 운영하는 이유
안녕하세요. 가상메모리를 물리주소로 변환하기 위해서 멀티레벨페이지로 운영하는 이유가 궁금합니다. 멀티레벨페이지로 운영했을때 어떤 장점들이 있는지 궁금합니다.
-
해결됨Arm 아키텍처: 메모리 모델과 배리어 [저자직강 3부-3]
MMIO 질문
MMIO는 다바이스 포트를 제어하기 위해서 DRAM의 일부 메모리공간을 사용하는 방식이 맞는지 문의드립니다.
-
해결됨ARM Cortex-M 프로세서 프로그래밍
s202 LED 점등 예제 실행시 에러
안녕하세요 iar 사용자 현정호입니다. STM32CUBE IDE는 처음 사용하는데 s202 강의처럼 New Project를 실행하려니 아래의 에러메시지가 나옵니다. software package를 받으려면 어떤 경로로 해서 Cube ide를 설치해야 하나요? st.com에서 제공하는 cube ide를 설치했는데도 저런 메세지가 나온 거면 버젼을 다른 것을 받아서 나오는 메세지 인가요?
-
해결됨ARM Cortex-M 프로세서 프로그래밍
STM32F429I-DISC 보드의 펌웨어
안녕하세요 강의를 보면서 따라서 실습해보려고 디버깅 보드를 구매했습니다. 그런데 STM32F429I-DISC 디버깅 보드를 컴퓨터와 연결하니 펌웨어가 하나 뜨더라고요. 배송해주기 전에 펌웨어를 서비스로 넣어준거 같은데 강의실습을 하면서 펌웨어를 동작시키다보면 다운로드 받은 펌웨어가 지워지지 않을까요? 그리고 펌웨어의 경로를 찾아봤는데 이 HEX 파일이 맞는지요?https://www.st.com/en/evaluation-tools/32f429idiscovery.html#tools-software HEX 파일은 Cube ide에서 디버깅 보드에 다운로드 탑재가 가능한가요? 저는 iar 사용자라서 ST-LINK 소프트웨어로 다운로드 탑재를 했었는데요.. 그리고 ST-LINK 디버깅 핀을 별도로 낼 수 있습니까?
-
해결됨ARM Cortex-M 프로세서 프로그래밍
제공되지 않은 강의교재
2강에서 제공 실습 파일 중에 마지막 펌웨어가 제공되지 않았습니다.하드웨어 폴트 실습을 위한 펌웨어로 보이는데04_BOOT_01_HARDFAULT_f429 라는 폴더입니다.이 파일이 MY_STM32Programming-student에 들어있지 않았습니다.나중에 제공되는 파일인지요? 감사합니다현정호 드림
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
익셉션 벡터 베이스 주소 질문
07:20 시각의 강의에서 "익셉션 벡터 베이스 주소" 라는것은 각 레벨별 베이스 주소가 맞는지 문의드립니다. 예를 들어서 다음과 같은지 문의드립니다.EL1에서 IRQ 인터럽트 익셉션 발생: VBAR_EL1 + 0x280EL0(Aarch64)에서 IRQ익셉션 발생: VBAR_EL0 + 0x480EL0(Aarch32)에서 IRQ익셉션 발생: VBAR_EL0 + 0x680
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
MOVS 명령어 질문
안녕하세요. "MOVS PC, LR" 명령어 수행시에 무조건 SVC모드로만 전환되는 것인지 아니면 다른 모드로도 전환될수 있는 것인지 궁금합니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
여러 가지 질문
안녕하세요 여러 질문 사항이 있어서 글을 올립니다. 부트로더를 개발하는 상황이 잘 이해되지 않습니다. 현업에서 어떤 상황에 부트로더를 개발하는지 궁금합니다. 예를 들어서, 새 제품 개발시에 새로운 Soc를 사용하게 되어서 부트로더를 새로 개발하는 것인지 등에 관해서 입니다.#imm 에서 imm은 어떤 단어의 약자인지분기 명령어중에서 bl과 달리 b 명령어는 링크 레지스터에 복귀할 주소를 저장하지 않으니 함수를 호출한(b명령어를 실행한 다음 명령어) 주소로 복귀하지 않는 것인지답변해주시면 감사하겠습니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
ADC, SBC 어셈블리 명령어(4.2.2.4강)
안녕하세요. 캐리가 발생하는 SBC 연산 상황을 실제 숫자 예시로 들어주시면 감사하겠습니다. "캐리가 발생하는 상황" 이 이해되지 않아서 요청드립니다. 또한 캐리를 설정한다는 것이 어떤 의미인지 설명을 요청드립니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
ARMv7 범용레지스터
안녕하세요. 레지스터 관련해서 질문이 있습니다.이전 강의에서 ARMv7에서 R0 ~ R15 레지스터에 대해서 설명을 들었습니다. 이 레지스터들도 범용레지스터라고 명칭했었는데 요번 강의에서 W0~W30이라는 범용 레지스터가 또 등장한네요. R0~R15 와 W0~W30 레지스터의 차이가 무엇인가요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
강의록 문의사항
해외에서 수강 중입니다. 강의 교재가책을 해외 배송 받기 쉽지 않은데, 혹시 강의록이 Posting되어 있는지요? 좋은 강의 감사합니다.
-
미해결ARM Cortex-M 프로세서 프로그래밍
s524 테일체이닝 강의 질문
안녕하세요! s524 테일체이닝 강의를 보면서 궁금한 점이 생겨 질문 드립니다!강의에 보면 systick ISR에 delay함수와, 버튼 인터럽 ISR에 printf(".")을 쓰지 않으면 테일 체이닝을 관측하기 어렵다 하셨는데, 제가 생각하기에는 delay함수는 테일체이닝 관측에 영향을 끼치지 않고 선점현상 관측에만 영향을 끼칠 것 같습니다.systick ISR의 런타임이 짧아도 버튼 ISR 런타임 동안에만 발생하면 pend되기 때문에 버튼 ISR이후에 테일체이닝 된다고 생각하는데 제 생각이 틀린걸까요??제가 이해 못한 것이 있는지 다시 한번 설명 부탁 드립니다ㅠㅠ 그리고 인터럽의 priority 선정은 어떤 기준으로 하는 것이지도 궁금합니다!! 이전 강의들을 보면 systick priority를 15와 같이 낮은 우선순위를 할당해 주시던데 이유가 있을까요?
-
해결됨ARM Cortex-M 프로세서 프로그래밍
부트코드와 부트로더의 차이점
안녕하세요 이 강의를 정말 유용하게 듣고 있는 학생입니다!이 강의 소개란에 보면 부트코드와 부트로더는 다르다는 식으로 적혀있던데 부트코드와 부트로더의 차이점이 무엇인지 궁금합니다!제가 알기론 부트코드는 main sp를 sp 레지스터에 저장하고 reset handler를 통해 .bss영역을 0으로 초기화 후 main으로 분기로 알고 있는데 부트로더는 어떤 개념인지 잘 모르겠습니다.
-
미해결ARM Cortex-M 프로세서 프로그래밍
메모리 맵 질문
메모리 맵 자체는 data width가 1바이트인데, 0xE000ED00의가 가리키는 값은 왜 4바이트 인가요?
-
미해결ARM Cortex-M 프로세서 프로그래밍
xPSR 레지스터 플래그 값 및 기타 질문 드립니다.
안녕하세요. xPSR 레지스터와 기타 궁금한 부분들 질문 드려봅니다!1. mov r0, #0x7fff fffe or mov r0, #0x8000 00020x7fff fffe, 0x8000 0002는 mov 명령어가 invalid constant라고 오류가 나옵니다.강의에서 0x7fff ffff , 0x8000 0000등은 mov 명령어를 썼는데 그것보다 작은 값이 왜 오류인지 궁금합니다. r0 레지스터에 0x7ffffffe 값이 들어있고 adds r0, #1을 한 경우 xPSR(0x1000 0000)이 나왔습니다. Overflow가 되는 상황이 아닌것 같은데 이유가 궁금합니다. Carry가 일어나면 xPSR의 C플래그가 1이 되는데 Borrow는 어떤 경우인지 궁금합니다.작은값에서 큰 값을 빼는 경우 Borrow가 되는건가요? MSB에서 값을 가져올 때에 발생하나요??( 발생하는 예시 하나만 들어주시면 감사하겠습니다) 어셈블리에서 signed unsigned의 구분은 어떻게 이루어지나요?? 이루어지지 않는다면 c언어 한정으로 컴파일러가 변수 타입을 파악하고 자동으로 바꿔주는건가요? 어셈블리 언어는 Arm cortex m3, m4 모두 동일한 명령어를 사용하나요??좋은 강의 해주셔서 감사합니다. 여기서 어셈블리를 더 잘 쓰기에 필요한 책이나 사이트들 혹은 어떤 데이타시트를 봐야하는지 추천 가능하시면 부탁드립니다 ㅎㅎ 고민해보다가 막혀서 안되는 부분과 궁금한 부분 질문 드려봤는데 답변 부탁 드리겠습니다!감사합니다.