C++ Builder와는 별 상관없이 C++ 언어 자체에 대한 문제인데요..
아래 코드는 watchdogSetup 함수를 사용자의 코드에서 정의해서 사용하면 그 함수를 따르고,
사용자가 정의하지 않으면 watchdogDefaultSetup()함수를 따른다는 의미를 가지고 있는데요..
extern "C"
void _watchdogDefaultSetup (void)
{
WDT_Disable (WDT);
}
void watchdogSetup (void) __attribute__ ((weak, alias("_watchdogDefaultSetup")));
궁금한 것은 attribute, weak 의 의미가 무엇인 지 궁금합니다.
그리고, 이 함수는 사용자의 코드에서 딱 한 번만 호출 가능하고,
두번째 부터는 함수 호출을 해도 실행되지 않습니다. 왜 그런 지?
(아두이노라는 개발 환경 때문에 그런 지도 모르지만.. 암튼 왜 이렇게 동작하는 지?)
실제 이 코드를 테스트하고 개발하는 환경은
Arduino(아두이노)고 개발환경은 Java, 개발언어는 C++인 요상한 조합인데요..
어쨌든 개발 진행은 C++로 진행합니다.
문제는, WatchDog을 쓰고 싶은데.. 초기 설정에서 WatchDog Timing을 설정해 놓으면
런타임 중에는 WatchDog Timing을 조정해도 초기 설정해 놓은 Timing에서 요지 부동이라는 것입니다.
서설이 길었는데.. 코드의 의미와 런타임 중간에 실행될 수 있는 방법을 여쭈어 봅니다.
감사합니다.
|