강의

멘토링

로드맵

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

작성자 없음

작성자 정보가 삭제된 글입니다.

FreeRTOS 프로그래밍

01_TASKMAN프로젝트 디버깅 모드 실패

작성

·

9

1

강좌 3번에서 진행되는 TASKMAN의 task.c를 디버깅 모드로 실행했는데 에러가 뜹니다.

../Inc/FreeRTOSConfig_base.h:120:59: error: '__FILENAME__' undeclared (first use in this function); did you mean '__FILE_NAME__'?

 

inc 폴더에 시스템 헤더파일 같은데 어떻게 대처 해야할지 모르겠습니다.

 

image.png

 

답변 2

0

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

안녕하세요. 학습자님!

STM32CubeIDE 최신 버전에서 GCC 컴파일러가 업데이트되면서 발생하는 문제가 의심되어 chatGPT 에 확인한 결과 예상대로 그 문제가 맞았습니다.
__FILENAME__ 매크로가 더 이상 기본 제공되지 않습니다.
__FILE_NAME__ 을 사용하시면 되겠습니다. 아래 내용 참고해주세요.


컴파일러 옵션으로 매크로 정의 (가장 깔끔)

1. 프로젝트 우클릭 → Properties

2. C/C++ Build → Settings → Tool Settings

3. MCU GCC Compiler → Preprocessor

4. Defined symbols (-D) 에 추가:

```

FILENAME=__FILE_NAME__

```

0

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

STM32CubeIDE에서 ‘FILENAME’ 관련 에러가 발생했다면 이는 대개 잘못 선언된 매크로나 잘못된 구문 때문일 수 있습니다. FreeRTOSConfig_base.h 파일의 설정을 다시 한번 확인해 주세요. 이 문제는 일반적으로 ‘FILE_NAME’ 등과 같은 맞춤형 매크로를 잘못 사용했을 때 발생합니다.

유사한 문제를 겪은 다른 수강생들이 해결한 사례가 있어 공유드립니다:

  1. FILENAME’ 대신 ‘FILE‘을 사용해 보세요. ‘FILE‘은 표준 C에서 제공하는 특별한 매크로로 현재 파일 이름을 의미합니다.

관련된 예시 답변:
- “Cortex M 프로세서 초기화 오류”

  1. 최대한 경로 관련 변수들을 재검토해보시고, 수정한 후에는 workspace를 클린하고 빌드 해보는 것이 효과적일 수 있습니다.

문제 해결 후에도 어려움이 지속된다면, 관련 커뮤니티나 공식 포럼에 에러 로그와 함께 문의하시는 방법도 고려해 보세요.

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

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기