월 37,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결FreeRTOS 프로그래밍
로직 어날라이저
안녕하세요. 강사님! 로직어날라이저로 Idle Task의 점유율을 판단하는 구체적인 방법은 무엇일까요? 지금 떠오르는 가장 간단한 방법은 만들어둔 Task마다 GPIO를 토글 시켜 확인하는 방법이 있을 것 같은데, 이것보다 심플한 방법이 있을까요?
- 미해결FreeRTOS 프로그래밍
Nucleo-64 보드의 firmware update error
안녕하세요 FreeRTOS 강의를 새로 수강하게 된 문수영이라고 합니다. 업무 상 RTOS 환경에서 개발을 할 예정이라 RTOS의 기본을 익히기 위해 강좌를 수강하였고 기대가 많이 됩니다. 개발환경 구축을 위해 NUCLEO-64 (STM32F104RB) 보드를 구입하였고 pc에 연결한 다음 STM32CubeIDE를 실행하니 Firmware update를 하라는 안내문이 뜨더군요. 그래서 해당 IDE에 내장된 STLINKUpgrade라는 프로그램을 실행하였더니 firmware version을 확인할 수 없다는 메시지가 출력되면서 update 버튼이 비활성화된 상태로 보입니다. (아래 그림 참조) 펌웨어 업데이트를 하지 않은상태에서는 예제 프로그램의 디버깅이나 실행이 되지 않아 먼저 업데이트를 해야 하는데 위와 같은 에러가 발생하여 학습 진도가 나가지 못하고 있는 상태입니다. 위 문제의 원인은 무엇인지, 해결방법은 무엇인지 알려 주시면 감사하겠습니다.
- 미해결FreeRTOS 프로그래밍
FreeRTOS 포팅 작업
안녕하세요 강사님, FreeRTOS 포팅 작업에 대한 질문이 있습니다. 영상은 미리 포팅된 프로젝트 예제들을 불러오는 것으로 보입니다. bare Metal f/w 상태에서 RTOS 를 포팅해야 할 경우에는 어떻게 하나요? CubeIDE의 경우 CubeMx와 연동하여 사용 가능한 것으로 알고 있습니다만, 만일, Keil이나 IAR을 사용할 경우에도 반드시 CubeMx를 통해 RTOS를 포팅해야 하나요?
- 미해결FreeRTOS 프로그래밍
vTaskPrioritySet
안녕하세요 강사님, 해당 챕터에서 궁금한 것이 있습니다. 1. TaskprioritySet 을 통해 태스크 우선순위를 바꾸는 것이 중요치 않고 안 바꾸는 것이 맞는 것처럼 들었습니다. 왜 그런건가요? 2. 그렇다면, TaskCreate를 통해 태스크 생성시에 우선순위 지정 또한 디폴트로 두나요? 프로그램의 규모에 따라 쓰레드가 수 개 ~ 수 십 여개 이상이 될 수 있을텐데 그 모든 쓰레드들이 이유없이 동일한 우선순위로 작성을 한다고 봐야 하나요?
- 미해결FreeRTOS 프로그래밍
stack overflow
안녕하세요 강사님, 스택오버플로우 챕터에서 태스크 안에 배열을 540바이트를 할당하고 돌렸음에도 task가 돌아가는 것을 영상으로 확인했습니다. 1. 동작되는 것이 문제라고 하셨는데 그것이 왜 동작되는지에 대한 이유가 궁금합니다. 만약, 태스크 스택 사이즈가 512바이트였다면, 그 태스크 안에서 사용 가능한 스택은 정해진 만큼만 사용 가능한 것으로 알고 있습니다. 명확하게 큰 사이즈의 변수를 쓸 경우에는 문제가 발생한다는 것은 이미 경험한 바 있습니다만, 영상과 같은 경우에는 모르고 지나칠 수도 있을거 같습니다. 2. 예제를 보면 아래에서 memset으로 배열의 변수를 어떤 값으로 초기화를 해줍니다. 이유가 컴파일러 최적화로 인한 메모리 할당이 안 되는 것을 방지하기 위한 것인가요? 또, UNUSED 매크로 함수를 사용한 이유가 무엇인가요?
- 미해결FreeRTOS 프로그래밍
NUCLEO-L476RG보드 포팅 요청
안녕하세요 강의 잘 듣고있습니다. 제가 NUCLEO-L476RG보드를 사용해 수업을 듣고있는데요. 선생님 포팅강의에서 무엇을 잘못 따라해서인지 중간중간 동작하지 않는 예제들이 있습니다. 제가 문제해결을 해가며 수업을 따라가는게 베스트겠지만 실력이 부족하여 진도가 나가질 않네요ㅠㅠ 그래서 NUCLEO-L476RG 용 프로젝트 파일생성을 요청드립니다 감사합니다
- 미해결FreeRTOS 프로그래밍
PUTTY 관련 질문입니다.
강의 내용대로 따라했는데 PUTTY 에 아무것도 뜨지않네요 보드레이트도 115200으로 맞춰는데.. 이유가 뭘까요??
- 미해결FreeRTOS 프로그래밍
Nucleo-144 (STM32F746) 포팅을 원함
Nucleo-144 (STM32F746) 포팅을 원함 STM32F746ZGT6
- 해결됨FreeRTOS 프로그래밍
다른 보드에 포팅 메일 관련
안녕하십니까 선생님 강의 수강 중인 학생입니다. 아래 다른 보드(NUCLEO-F411RE) 포팅 관련해서 질문 드렸습니다. 해당 코드 메일로 보내달라고 하셔서 12/30 일자로 메일로 송부 드렸는데 아직 답변이 없으셔서 연락드립니다ㅠㅠㅠ 혹시 메일이 안들어 갔는지 확인 부탁드립니다! 감사합니다.
- 미해결FreeRTOS 프로그래밍
다른 보드에 포팅
안녕하세요 선생님 강의 수강 중인 학생 입니다. 제가 사용하는 보드가 강의와 달라 맨 마지막 부록 강의를 수강하면서 포팅작업을 진행하고 있습니다. 그런데 "01_TASKMAN" 예제는 정상적으로 동작하지만 "02_STACKOVERFLOW" 예제는 영상과 같이 "ababab"가 연속으로 출력이 되지 않습니다. -> 동일하게 예제의 "FreeRTOSConfig.h", "task.c" 복사 "03_CRITICAL" 예제의 출력과 다르게 나타납니다. -> 동일하게 예제의 "FreeRTOSConfig.h", "task.c", "random.s" 복사 아래 사진은 PuTTY 동작 사진과 디버깅 suspend 시 멈추는 곳(계속 동일한 곳에서 정지)입니다. 확인 부탁드립니다. 감사합니다! ---------------------------------------------02--------------------------------------------- ---------------------------------------------03---------------------------------------------
- 미해결FreeRTOS 프로그래밍
태스크 스택 관련 질문입니다.
#define configSUPPORT_STATIC_ALLOCATION 1 #define configSUPPORT_DYNAMIC_ALLOCATION 1 이와 같이 태스크 스택의 방식을 static, dynamic 모두 1로 설정하게 되면 태스크 스택은 어떻게 잡히는지요?
- 미해결FreeRTOS 프로그래밍
실습환경 구축 강의에서 putty의 display화면이 이상하게 뜹니다.
안녕하세요, 이번 실습환경구축 stm32cubeIde시작하기 강의에서 stm32의 디버그까지는 제대로 되나 이후 putty의 display 화면이 이상하게 나옵니다. 원래 나와야 할 display가 아닌 알아볼 수 없는 이상한 문자가 섞인 display가 뜨는데 혹시 어떻게 해결하는지 아시나요? 아래와 같은 화면이 뜹니다. 참고로 stm32는 1.8.0버전이며, putty는 0.76버전입니다. windows 운영체제입니다.
- 미해결FreeRTOS 프로그래밍
강의 자료가 있다고 하셨는데, 어디서 받을 수 있나요 ?
공지사항에는 강의자료가 있다고 하셨는데 어디에 있는지 잘 못찾겠습니다..
- 미해결FreeRTOS 프로그래밍
RAM과 FLASH 시작주소
'태스크와 메모리'의 '태스크와 스택메모리' 파트에서 질문이 있습니다! RAM의 시작주소를 0x20000000, FLASH의 시작주소를 0X08000000이라고 말씀해주셨고, 저의 IDE에서도 확인할 수 있었습니다! 궁금한 점은 보통 이러한 가상주소는 메인메모리의 물리주소와 사상되는데, ARM 코어에서의 가상 주소 사상은 플래시 주소와도 바로 사상이 되는 것인지 궁금합니다. 제가 컴퓨터 구조 수업때 배운 바로는 Intel기반이었기에 ARM의 아키텍처에 대해 헷갈리네요...ㅎ
- 미해결FreeRTOS 프로그래밍
'소스코드 분석-printf와 fflush' 부분 질문이 있습니다!
"fflush 함수는 버퍼를 비우고, 이에 따라 출력장치의 동작을 야기시킵니다. 그런데 UART 장치의 동작은 매우 느리기에 예상치 못한 출력 결과를 야기시킵니다." 위와 같이 수업에서 이해를 하였습니다! 그런데 'a'를 출력하는 Task1도 'b'를 출력하는 Task2도 둘다 fflush 함수가 동작을 하는데 왜 a a a a .. a a b a a a.. 와 같이 비대칭적인 결과가 나오는 걸까요? 둘다 fflush 함수가 있기에 출력이 느려지더래도 대칭성은 유지될 것으로 예상하였었습니다.
- 미해결FreeRTOS 프로그래밍
NUCLEO-L152RE 보드 연결 관련 문의
안녕하세요 선생님 이전 NUCLEO-L152RE 보드를 추천받고 강의를 보면서 실습중입니다! 해당 보드를 연결하고, dvmgmt.msc에서 (1) 포트와 (2) 범용 직렬 버스 장치 항목을 통해 정상적으로 연결됨을 확인하였습니다. 이후 보드 디버깅을 하여 putty로 출력 결과를 보려하는데 아무것도 뜨지 않음을 확인하였습니다. 동일하게 COM3 / 115200 / Serial로 설정하였습니다. 무엇이 문제일까요?? (추가로) 새로운 PORT 프로젝트를 생성하고, FreeRTOS 코드를 추가할 때 영상과 달리, /* Initialize all configured peripherals */ MX_GPIO_Init(); 까지만 생성되고, MX_USART2_UART_Init()이 생성되지 않습니다.
- 미해결FreeRTOS 프로그래밍
첨부파일이 안보이네요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 해결됨FreeRTOS 프로그래밍
QUEUE 실습 중 질문
안녕하세요. QUEUE 실습 중 질문이 있어서 글 올립니다. qBuffer의 ucData 배열의 크기를 2000으로 증가시켜봤습니다. 그럴 때 결과를 보면 TASK1이 한 번 받고 더 이상 실행이 안되는데요. 디버거으로 확인해보니까 qid의 주소가 0x200007a0 <ucHeap+1240>로 나오고, Queue struct내용 중 tail의 주소가 0x20002efd <ucHeap+11317>로 나오는 것을 확인할 수 있었습니다. list 파일을 보면 bss 영역에 있는 것으로 확인이 됩니다. xQueueCreate API를 사용하면 내부에서 pvPortMalloc를 사용해 Queue를 생성하는 것을 볼 수 있습니다. 이는 pvPortMalloc을 사용하면 bss영역에 할당?이 된다라고 볼 수 있죠. 초반 (FreeRTOS 수업 내용 중 bss영역에 할당되는 것을 확인할 수 있음) 두 가지 질문이 있는데요. 1. 링커 스크립트에서 bss 섹션을 아래 그림처럼 설정을 했는데, 만약 pvPortMalloc API를 많이 사용하여 bss영역이 부족하면 제가 bss섹션의 크기를 늘려주면 되나요? 2. 생성된 Queue의 주소와 크기를 보면 bss섹션 내에 잘 있는데 왜 동작을 안하는건지 이해가 되지 않습니다. 메모리 오버플로우 문제인가 했는데, 디버그로 확인해보니 오버플로우 문제는 아닌 것 같아서요. 답변 부탁드립니다. 감사합니다.
- 해결됨FreeRTOS 프로그래밍
뮤텍스와 우선순위 천정 기법에 관한 질문
안녕하세요. FreeRTOS는 뮤텍스에 우선순위를 저장하는 천정 기법을 사용한다고 하셨는데, 이거에 대한 예시는 따로 없는 것 같더라고요. FreeRTOS 문서를 봐도 따로 우선순위를 저장하는 API같은건 보지 못했는데, 이 부분에 대해서 더 설명 부탁 드려도 될까요?
- 해결됨FreeRTOS 프로그래밍
disassembly 된 내용에 관한 질문 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. FreeRTOS에 관한 질문은 아니라 올릴까 말까 고민했는데, 혼자 힘으로는 해결이 안될 것 같아 도움 요청 드립니다. 아래의 사진을 보시면 1. 프로그램 카운터의 경우 0x8002e60인데, ldr r3, [pc, #20]의 결과가 왜 0x8002e78이 되는 건가요? pc에서 20만큼 더한 곳의 값을 r3에 불러오라는 것으로 해석이 되는데, pc에서 20만큼 더한거면 0x8002e74 아닌가요? 2. 0x8002e78 번지의 값을 보면 0x20000020인데, 제 생각엔 이건 ticket 변수의 값이 저장된 곳이라 생각이 됩니다. 그런데 list 파일을 보면 0x8002e78번지는 저 text 섹션에 속해있는데, text 섹션엔 실행 코드가 저장되는 것으로 알고 있는데, 왜 실행 코드가 아닌 0x20000020이 저장되는 것인지 궁금합니다.. 답변 부탁 드립니다. 감사합니다.