코드의 내용은 질문에 잘 들어 있는듯하구요..
__attribute__ : gcc에서 컴파일러에게 뒤에 오는 상황을 참고하라고 말해주는 지시자 정도로 이해하시면 될듯합니다.
weak 는 weak symbol로 뒤에 오는 함수를 사용하라는 이야기겠죠.
사용자 코드에 들어있는 함수가 있다면 그건 strong symbol이 된다고 하네요.
자세한 내용은 아래의 링크를 참조하세요..
http://gcc.gnu.org/onlinedocs/gcc-3.4.2/gcc/Attribute-Syntax.html#Attribute-Syntax
그외 질문은 저도 잘 모르겠네요..
단단한돌 님이 쓰신 글 :
: 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에서 요지 부동이라는 것입니다.
:
: 서설이 길었는데.. 코드의 의미와 런타임 중간에 실행될 수 있는 방법을 여쭈어 봅니다.
:
: 감사합니다.
: