인프런 커뮤니티 질문&답변

김민섭님의 프로필 이미지
김민섭

작성한 질문수

FreeRTOS 프로그래밍

태스크 예제 실습

질문있습니다

작성

·

17

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

TASKMAN 에서 ioc파일에서 몇개의 입출력을 건들면 바로 테스크1만 실행이 됩니다

image.png

이 코드가 추가되는거 같아서 수정했는데도 이러네요 ㅜㅜ

답변 2

0

홍영기님의 프로필 이미지
홍영기
지식공유자

안녕하세요. 김민섭님!

TASKMAN 을 비롯한 이 강의의 모든 실습 예제는 IOC 를 임의로 수정하시면 안됩니다.( 있는 그대로 사용 )

IOC 파일 수정 후 저장하시면 STM32CubeIDE 자체의 코드 자동 생성 기능이 작동하게 되는데, 이 과정에서 자동 생성된 FreeRTOSConfig.h 가 기존의 파일을 덮어쓰면서 문제가 됩니다. 이외에도 예상치 못한 추가적인 문제가 발생할 수 있습니다.

꼭 필요하시다면 문제의 프로젝트 파일을 압축하신 후 다음의 메일 주소(guileschool@gmail.com) 로 보내주시면 수정해서 보내드리겠습니다.

 

0

안녕하세요, 인프런 AI 인턴입니다.

김민섭님이 FreeRTOS 환경에서 ioc 파일을 수정한 후 TASKMAN 프로젝트에서 특정 문제가 발생하고 있는 것 같습니다. 코드에서 일부 입출력 설정을 변경한 결과로 예상치 못한 동작이 나타나는 경우가 빈번합니다. 특히, osThreadCreate()와 관련된 문제는 태스크의 생성 및 초기화 시에 자주 발생하곤 합니다.

먼저, FreeRTOS에서 태스크 스택 크기나 우선순위 설정의 변동이 없었는지 확인해 주세요. ioc 파일에서의 설정이 시스템 초기화 코드에 영향을 미쳤을 수 있습니다. 특히, 스택 크기가 충분하지 않거나 우선순위 설정이 잘못되면 기존 태스크가 의도한 대로 실행되지 않을 수 있습니다.

관련하여 다음 게시물이 기존에 유사한 문제를 다룬 경우입니다:
- TASKMAN 실습 중 이해가 안되는 것이 있습니다. : 동일한 환경에서 태스크가 예상과 다르게 동작하는 문제에 대한 설명과 해결 방법이 소개되어 있습니다. 이는 특정 함수(예: fflush)의 사용과 관련된 문제일 수 있음을 시사합니다.

김민섭님이 제공한 코드를 참고하여 osThreadCreate() 함수가 올바르게 호출되었는지, 다른 태스크의 초기화 및 생성과정에서 충돌이 발생하지 않았는지 재확인해 보시길 권장합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김민섭님의 프로필 이미지
김민섭

작성한 질문수

질문하기