묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결시스템 소프트웨어 개발을 위한 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 모두 동일한 명령어를 사용하나요??좋은 강의 해주셔서 감사합니다. 여기서 어셈블리를 더 잘 쓰기에 필요한 책이나 사이트들 혹은 어떤 데이타시트를 봐야하는지 추천 가능하시면 부탁드립니다 ㅎㅎ 고민해보다가 막혀서 안되는 부분과 궁금한 부분 질문 드려봤는데 답변 부탁 드리겠습니다!감사합니다.
-
미해결ARM Cortex-M 프로세서 프로그래밍
컴퓨터 연결 및 회로도
너무 기초적인 질문인것 같은데요 혹시STM32F429보드와 컴퓨터를 연결하려면 USB어떤걸 사용해야 하나요? 제가 가지고 있는 걸로는 안되는것 같아서요. 직접 구입해야할것같은데 mini 인지 micro 혹은 다른것인지 궁금합니다. 찾아도 잘 안나와서 혹시 이런걸 설명해주는 문서가 있나요? 보드에 연결하는 부분이 2개가 있는데 어디로 연결해야 하나요? 강의 앞부분에 LED회로도가 나오는데 어디문서에 있는 건가요? 직접 공식사이트에서 받아보고 싶습니다.
-
해결됨ARM Cortex-M 프로세서 프로그래밍
유저 mode, xSPR, 어셈블리어 활용, STM32 선정 이유 관련
안녕하세요.강의를 듣는 과정에서 궁금한 사항이 있어서 질문 드립니다.유저 모드 관련특권 모드와 유저 모드가 있는데, 대부분 특권모드에서 동작한다고 알려주셨습니다.인터럽트 핸들러도 특권모드에서 동작을 하고요.유저 모드에서는 특권모드로 이동도 못해서 제약이 상당히 많은 것 같은데,유저 모드는 어떠한 상황에서 사용되는지 궁금합니다.xSPR 관련AR, VR 등을 합쳐서 부르기 위해, XR이라고 부르는 것과 같이xSPR도 ASPR, ESPR 등을 통칭하기 위해 xSPR로 부르는 것인가요?아니면, xSPR은 ASPR, ESPR, ISPR을 모두 합친 프로세서 레지스터라고 봐야 할까요?어셈블리어 활용 관련요즘에는 어셈블리어로 코딩하는 일이 많지 않을 것 같은데,어셈블리어의 지식은 어떤 곳에 활용할 수 있을까요?프로그램에 문제가 생겼을 때 디버깅을 하면서 어셈블리어를 알면 문제 원인을 찾기가 쉬울 것 같은데,혹시 다른 용도로는 어떻게 활용할 수 있는지 궁금합니다.STM32 관련ARM Cortex-M4를 사용하는 MCU를 만드는 제조사는 ST Micronics 외에도 Nordic이나 Microchip등 여러 회사들이 있는 것을 알고 있습니다.그런데, 대부분의 강의를 보면 STM32 Series의 보드를 사용하시더라고요.STM32 Series 보드의 장점이 무엇이기에 대부분 이를 선택하시는지 궁금합니다.또한, STM Cube IDE와 유사하게 nRF Series에서도 segger IDE를 제공하는 것으로 알고있는데, Cube IDE처럼 segger로도 disassemble 등의 기능을 사용할 수 있는지도 궁금합니다.질문 사항이 좀 길어졌네요...강의는 잘 듣고 있습니다!감사합니다.
-
해결됨ARM Cortex-M 프로세서 프로그래밍
S520 실습 시, SCB register가 표시되지 않는 문제
강사님, 안녕하세요.S520 실습 시, __NVIC_SetPriorityGrouping에서 breakpoint를 설정하는 부분에서강의와 같이 SFRs -> All register 에서 SCB register가 아예 존재하지 않았습니다.(SCB resigter가 없어서 내부 저장된 값도 확인할 수 없음)그래서, S520 강의의 후반부도 동일한 문제로 실습을 진행할 수 없었는데 혹시 해결방법이 있을까요?참고로, 이전 인터럽트 강의들은 실습 시 문제가 없었고, pinout 설정이나, NVIC 설정도 Enabled 된 것을 확인하였습니다.감사합니다.
-
해결됨ARM Cortex-M 프로세서 프로그래밍
No ST-LINK detected 문제
안녕하세요.어제까지 S401 강의를 들을 때까지만해도 HW로 함께 실습하며 잘 진행하고 있었는데,오늘 S402 강의를 들으면서 실습을 하려고 debug 버튼을 누르니, 아래와 같은 애러 메세지가 출력되었습니다.하지만, debug cofiguration에서는 ST-LINK 가 scan이 잘 됩니다.(아래 참고)그래서 구글링을 통해 시도한 방법으로는USB 연결 제거 후, HW 다시 연결 -> 동일한 에러Desktop 뒤쪽 USB port에 HW 연결 -> 동일한 에러FW를 모두 erase한 뒤, 다시 FW 설치(ST-link utility 이용) -> 동일한 에러혹시 해결 방법을 알고 계시는지 궁금합니다.(HW에서 점퍼 핀을 제거하거나 변경한 적은 없습니다.)
-
해결됨ARM Cortex-M 프로세서 프로그래밍
teq, tst 명령어 에서의 Z값
안녕하세요.S324에서 질문 사항이 하나 있습니다!teq 명령어에서 true 이면 Z=1이고,tst 명령어에서는 true이면 Z=0이 된다고 말씀하셨는데,이건 각 명령어의 규칙인 것인가요? 이전에는 두 인자를 비교할 때, 값이 true이면 Z = 1이 된다고 하셨던 것 같아서요.무언가 제가 잘못 이해하고 있는 것 같기도 한데,이 부분이 헷갈려서 질문 드립니다!
-
해결됨ARM Cortex-M 프로세서 프로그래밍
S207 SP 레지스터의 alias 관련
안녕하세요.이제 강의 시작한 초보 FW 개발자입니다.S207의 SP 레지스터에 alias 관련해서 2가지 질문이 있습니다.설명해주실 때에는 "SP 레지스터를 통해, MSP 레지스터 or PSP 레지스터가 결정된다"고 하셨는데요.강의 자료(PDF)에는 SP 레지스터 - PSP 레지스터가 점선으로 표시되고, X 표시가 있는데, SP 레지스터는 PSP 레지스터로 alias 되는 것은 아닌가요?바로 MSP or PSP 레지스터를 이용하면 될 것 같은데,SP 레지스터를 통해 1단계를 더 거치는 이유가 무엇일까요? FW 관련하여 좋은 강의해주셔서 감사드립니다!
-
미해결ARM Cortex-M 프로세서 프로그래밍
s319_RISC 강의 질문입니다.
컴파일 오류가 발생하여 수업질문 내용을 참고해 b _exit1 nop .space 1 ->작은 숫자로 낮췄습니다.하지만 여전히에러가 발생하는데 해결할 방법을 부탁드립니다.감사합니다.
-
미해결ARM Cortex-M 프로세서 프로그래밍
수업 자료 중 궁금한 것이 있습니다.
올려주신 수업 자료에서 아래 코드를 하는 이유가 hard fault라고 적어 노셨습니다.아래 코드가 어떤 의미인지 설명 부탁드립니다 SCB->SHCSR = SCB->SHCSR | (7<<16);
-
미해결ARM Cortex-M 프로세서 프로그래밍
User Thread 와 Privilege Thread에 대해서
안녕하세요 User Thread 에서 Privileged Handler로 모드가 바뀌는 경우를 예를 들면 익셉션 상황 (예를 들어 타이머나 DMA로 인한 인터럽트) 에 핸들러모드로 진입 후 핸들러 함수로 분기하여 처리가 되는 것으로 이해를 했습니다.그러면 Privileged Handler 에서 Privileged Thread로 모드가 바뀌는 경우는 어떤게 있나요?
-
미해결ARM Cortex-M 프로세서 프로그래밍
putty에서 글자가 깨집니다.
처음에는 잘 되었는데 컴퓨터 끄고 키니 putty에서 printf에 출력될 한글 영어 글자가 깨져서 나옵니다.
-
해결됨ARM Cortex-M 프로세서 프로그래밍
파이프라인 동작 관련 질문 드립니다.
강사님. 안녕하세요. 강의 잘 보고 있습니다.파이프라인에 대해 갑자기 궁금증이 생겼는데요.1. thumb/thumb2와 관계없이 프로그램 카운터의 위치는 항상 PC = 현재 명령어 위치 + 4라 설명하신 것 같은데요. thumb의 경우 2바이트 명령어니 이해가 갑니다만 thumb2는 4바이트라 PC = 현재 명령어 위치 + 8이 되는게 아닌가요? 왜 항상 PC = 현재 명령어 위치 + 4 인지 궁금합니다.명령어를 페치하는 기본 단위는 32비트라 되어있습니다.2. 명령어 페치시 만약 thumb 코드라면 2개의 명령어를 페치한다는 것 같은데, 만약 A 명령어와 B 명령어(둘 다 thumb)를 페치한다면 이 두 명령어의 파이프라인 동작이 어떻게 되나요?A 명령어 먼저 F-D-E되고 그 후에 B 명령어가 F-D-E가 파이프라인으로 동작하게 되는건가요?3. 그렇다면 만약 thumb명령어와 thumb2명령어가 페치될 경우에 어떻게되나요?A 명령어(thumb라 가정), B 명령어(thumb2라 가정)일 때, 32비트 페치시 A 명령어와 B1(B 명령어의 2바이트)가 페치될 것으로 예상이 됩니다만, 그 후의 동작이 이해가 되지 않습니다. 항상 질문에 친절하게 답변해주셔서 감사합니다.
-
해결됨ARM Cortex-M 프로세서 프로그래밍
실행결과와 표 차이
강의 잘 보고 있습니다.앞서 강의의 표에선 Cortex-M3/M4의 경우 DMIPS/MHz 값이 1.25로 나옵니다.그렇지만 실험을 통해 DMIPS를 측정했을 때 72DMIPS(180MHz 기준)으로 나오는데 이럴 경우 앞의 표에서 본 값이랑 너무 차이가 큽니다.문제가 있어보이는데 제가 무엇을 놓치고 있는건가요?
-
미해결ARM Cortex-M 프로세서 프로그래밍
libs.s 실행 관련 문의
안녕하세요~main.c의 max함수를 실행하면별다른 include 선언 없이 어떻게 libs.s에 있는 max로직을 타는지 알 수 있을까요?
-
미해결ARM Cortex-M 프로세서 프로그래밍
파일 실행 불가
안녕하세요!File -> open project from file system 으로 예제 파일 불러와서실행하려고 하는데,Unable to launchThe selection cannot be launch, and there are no recent launches라는 문구가 뜨면서 실행이 안됩니다.어떻게 하면 될까요?