묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨FreeRTOS 프로그래밍
ESP32
안녕하세요?ESP32와 ESP-IDF를 이용해서 펌웨어 개발을 하려고 하는데, 혹시 예제 코드가 STM32에 적용할 때와 많이 다를까요?
-
미해결FreeRTOS 프로그래밍
포팅시 자료 그대로 다운
강사님 f767zi로 포팅할때 강의 따라서 안하고 올려주신 파일 그대로 다운 받아서 해도 되나여?
-
미해결FreeRTOS 프로그래밍
TASKMAN 카피해서 컴파일시에 오류가 발생합니다.
- 사용하신 첨부파일의 버젼: 첨부파일 아직 사용안했습니다.- 사용하시는 ST 보드명: NUCLEO_F767ZI- 사용하시는 컴파일러(stm32cubeide) 버젼: 1.12.0- 증상: 컴파일시 에러가 발생합니다.. 포팅하는 강의 따라하던중 freertos_portF767zi 복사에서 붙혀넣기하고 01_TASKMAN으로 할려고 했는데 전에 다운받아놨던게 있어서 01_TASKMAN(f767zi)로 생성했습니다. 이후에 런치파일 삭제하고 맵파일은 첨부터 없어서 삭제 안하고 컴파일 했더니 에러가 3개 발생했습니다.
-
미해결FreeRTOS 프로그래밍
freeRTOS도 GDB 사용이 가능할까요?
고수님 안녕하세요?FreeRTOS 디버깅이 GDB로 가능하다면 해보려고 하는데,가능할지 여쭙고 싶습니다.미리 답변 감사합니다. 좋은 하루 되세요 :)
-
해결됨FreeRTOS 프로그래밍
taskr간 context switching 관련하여 질문이 있습니다.
안녕하세요 강사님. 컨텍트 스위칭 관련하여 궁금한점이 있어 질문드립니다.아래와 같은 상황에서 우선 순위사 제일 높은 task를 컨텍트 스위칭 전에 cpu 자원을 사용하게 하고 싶습니다.task1 : 우선 순위 5 (suspend 상태)task2 : 우선 순위 4task3 : 우선 선위 4우선 task2가 실행하던 도중 task1을 resume 하고 바로 portyield를 실행하게 되면 우선 순위가 동일한 task3번이 cpu를 점유하여 일을 처리하다가 컨텍트 스위칭이 발생하게 되면 task1이 cpu를 점유가게 될텐데 제가 궁금한건 task2에서 task1을 resume 한 후 컨택트 스위칭이 발생하기 전에 cpu를 task1이 점유하게 하는 방법이 없는지 궁금합니다. 감사합니다.
-
해결됨FreeRTOS 프로그래밍
portYIELD() 사용법에 대해 질문드립니다.
안녕하세요. portYIELD() 사용법에 대해 궁금한게 있어 질문드립니다. portYIELD()를 실행하게 되면 task가 점유하고 있던 CPU를 반납하는 명령으로 알고 있습니다. 그런데 아래의 그림과 같이 실행을 하게 되면 TaskMain은 실행 되지 않아야 하지 않는지요? #define TASK_MAIN_PRIO 5 #define TASK_TASK1_PRIO 4 #define TASK_TASK2_PRIO 3 #define TASK_TASK3_PRIO 2 TaskHandle_t xHandleMain, xTask1Handle, xTask2Handle; void userThread(void) { xTaskCreate((TaskFunction_t)TaskMain, "TaskMain", 128, NULL, TASK_MAIN_PRIO, &xHandleMain); xTaskCreate((TaskFunction_t)vTask1, "vTask1", 128, NULL, TASK_TASK1_PRIO, &xTask1Handle); } void TaskMain(void const *pvParameters) { while(1) { for(uint8_t i=0; i<5; i++) { HAL_GPIO_TogglePin(GPIO5_BEAD_GPIO_Port, GPIO5_BEAD_Pin); HAL_Delay(1); } vTaskSuspend(xHandleMain); } } void vTask1(void const *pvParameters) { while(1) { for(uint8_t i=0; i<5; i++) { HAL_GPIO_TogglePin(GPIO4_BEAD_GPIO_Port, GPIO4_BEAD_Pin); HAL_Delay(1); } portYIELD(); vTaskResume(xHandleMain); //portYIELD(); } } 위 소스를 보게 되면최초 MainTask가 실행을 하다가 5번 GPIO를 5번 토굴하고 block 상태로 전환Task1번에서 gpio를 5번 토굴하고 vTaskResume을 실행하기 전에 portYIELD()를 만나기 때문에vTaskResume(xHandleMain) 실행이 안되어야 하지 않는지요?실행 결과 TaskMain이 실행되어 이렇게 문의드립니다. 감사합니다.
-
해결됨FreeRTOS 프로그래밍
정적/동적 Task 생성의 메모리 할당 영역
안녕하세요. 수업을 듣던 중 정적/동적 Task 생성 시 할당되는 메모리 영역과 관련해 질문 사항이 생겨 글 남깁니다.태스크와 메모리 파트 강의를 듣고 Task Stack 메모리는 동적/정적 할당이 가능하고, RTOS의 동적 할당은 RTOS 커널에서 지원하는 동적 메모리 할당자 함수를 쓰기 때문에 heap영역이 아닌 bss 영역에서 할당된다. 라고 이해하였습니다.즉, xTaskCreate() 함수를 사용하면 동적 할당이지만 데이터가 bss 영역에 할당되는 특성이 있다고 생각했었는데, '태스크 스택의 크기를 결정하기' 부분의 강의 끝부분에서 xTaskCreate() 는 heap 영역에 xTaskCreateStatic() 은 bss 영역에서 Task Stack을 쓴다고 말씀하여 기존에 제가 이해했던 부분과 일치하지 않았습니다.이와 관련해 인터넷에 검색해 보니, freertos.org 사이트에서는 xTaskCreate()를 사용하여 작업을 생성하면 필요한 RAM이 FreeRTOS 힙에 자동으로 할당된다. 라고 적혀있더군요.xTaskCreate() 함수는 bss 영역에 자동 할당되기도 하고, heap 영역에 자동 할당되기도 한다는 의미인가요?
-
해결됨FreeRTOS 프로그래밍
task를 생성 할 때에 stackDepth 설정 관련하여 궁금한게 있습니다.
강의를 보던 도중에 메모리 할당에 관련하여 몇가지 궁금한점이 있어 질문드립니다. 아래그림과 같이 stack 사이즈를 128로 지정하는 경우 task에 사용되는 메모리는 bss 영역에 할당되는게 맞는지요? 아래 그림과 같이 stack 사이즈를 변경하게되면 메모리에 할당이 되어 Memory Regions 창에 변화량이 보여야 하는데 반영되지 않는거 같아 질문드립니다. 테스크를 생성 할 때에 stack 사이즈는 어떤 메모리에서 할당되는건지요?감사합니다.
-
미해결FreeRTOS 프로그래밍
포팅 부탁드립니다.
안녕하세요. 강의 듣고 있는데 포팅 부탁드립니다.- 사용하고 싶은 ST 보드명: NUCLEO_G070RB- 사용하시는 컴파일러(stm32cubeide) 버젼: 1.12.0감사합니다.
-
해결됨STM32 FreeRTOS 구현
안녕하세요
usb to rs232를 사용하는 특별한 이유가 있나요?st link로 디버깅이 해결되는게 아닌가 싶어 질문 드립니다
-
미해결FreeRTOS 프로그래밍
포팅 부탁 드립니다.
-------------------------------------------------- 사용하고 싶은 ST 보드명: STM32F407G-DISC1- 사용하시는 컴파일러(stm32cubeide) 버젼: 1.11.0- 기타: -------------------------------------------------
-
미해결FreeRTOS 프로그래밍
isr 여러개인 경우 deferred task
안녕하세요수업듣고 심도있게 학습하고 있는 학생입니다.인터럽트 처리를 공부하고 있는데 질문이 있습니다.exti가 여러 개인 경우 어떻게 처리하는지 궁금합니다.저의 처리방식은 인터럽트gpio가 4개로 가정했을때char 전역변수;void 콜백함수(gpio){if(gpio==1){전역변수+=1;}if(gpio==2){전역변수+=2;}if(gpio==3){전역변수+=4;}if(gpio==4){전역변수+=8;}vTaskNotifyGiveFromISR(xHandle1, &xHigherPriorityTaskWoken);portYIELD_FROM_ISR(&xHigherPriorityTaskWoken);}이런식으로 하고자 하여 전역변수를 뮤택스로 묶으려 했는데 isr에서는 뮤택스를 사용하면 안된다고 하신 걸로 학습했습니다.다른 여러 자료를 찾아보아도 예시를 찾기가 어려워 질문드리게 되었습니다.제가 질문드리고자 하는 핵심은 여러 인터럽트를 동시에 사용할경우 어떻게 사용해야하는지 궁금합니다.
-
미해결FreeRTOS 프로그래밍
강의 감사합니다. 포팅 부탁드립니다.
- 사용하고 싶은 ST 보드명: NUCLEO-L4R5ZI- 사용하시는 컴파일러(stm32cubeide) 버젼: 1.11.0- 기타: 열심히 공부하면서 따라가겠습니다. 감사합니다
-
미해결FreeRTOS 프로그래밍
freeRTOS와 USB_Device와의 관계
안녕하십니까현재 수업을 듣고있는 학생인데요.선생님 수업 실습중에 STM32CubeMX을 이용하여 STM32F405ZGT6의 코딩중에, 미들웨어 FreeRtos와 USB_Device가 같이 이용 하지 못하는건지 궁금합니다.Generate Code를 누르면 USB Device의 코드가 없어집니다.
-
미해결
FreeRTOS 프로그래밍 강의 교제 요청
FreeRTOS 프로그래밍 강의를 결제 완료 했습니다 온라인 강의입니다만 PDF 교제가 있는 것으로 압니다 본 강의 교제 및 참조용 document 가 있으면 보내주시면 감사하겠습니다 또는 다운로드 할 수 있는 곳을 알려주십시오- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.