[arduino] NodeMCU Stack Overflow

[arduino] NodeMCU 함수 위치

[arduino] NodeMCU Stack Overflow

enter image description here
아두이노 IDE1.8.16에서 NodeMCU를 사용하다가 아무것도 없는 함수만 실행해도 Stack Overflow 가 발생하길래 왜그런가 했더니 함수 위치 이였음
일반적으로 C에서는 main보다 함수를 위에 적거나 아래에 적을 경우 함수 선언을 해줘야함
아두이노 IDE에서는 함수 선언 없이 보통 setup과 loop 아래에 함수를 적는데
Stack Overflow 문제가 발생한 NodeMCU에서는 setup 위에 함수를 적었더니 Stack Overflow가 발생.
외부 인터럽트를 사용한 인터럽트 핸들러는 setup 위에 적어도 문제가 없는데 이 부분이 충돌을 일으킨 걸 수 도 있음.

ICACHE_RAM_ATTR void Intrrupt0()

일반적인 C에서의 함수 위치

int test1()
{
	return 0;
}

int main()
{
	return 0;
}

또는

int test1(); // 함수선언
int main()
{
	return 0;
}

int test1()
{
	return 0;
}

무튼 아두이노 IDE에서 함수를 setup과 loop 아래 적으면서 문제 해결됨 ㅡ.ㅡ;

끝.

댓글 쓰기

0 댓글