Atmel AVR 마이크로 컨트롤러에 자체 부트 로더를 작성하려고했습니다. github에서 코드베이스 중 하나를 참조했습니다. 코드베이스에 대해 ZEVERO((void (*) (void)) 0)()은 Exit 함수입니까?
감사드립니다. 기본 코드에서 코드베이스를 이해합니다. 하지만 라인 (224)에서 나는 줄 Reference to the code
**if (pgm_read_word(0) != 0xFFFF) ((void(*)(void))0)(); //EXIT BOOTLOADER**
내가 조건의 경우 부분을 이해를 발견하지만 난 코드 작가가에 대한 설명을 주신 즉
**((void(*)(void))0)();**
진정한 문 부분을 이해하려고 할 때 이것은 // EXIT BOOTLOADER
첫 번째 질문은이 복합 선언의 의미는 무엇입니까? **((void(*)(void))0)();**
두 번째 질문은 마이크로 컨트롤러에서 코드 실행을 종료하는 것입니다.
아니요 (직접 종료 코드는 아닙니다). 아마도 충돌을 일으키거나 주소 0 (다시 시작 코드 일 수 있음)에서 코드를 실행할 것입니다. 정의되지 않은 동작이므로 정의 된 동작을 제공하는 컨텍스트가 없으면 좋지 않습니다. –
플랫폼의 경우이 코드가 작성되며 재설정 코드 일 수 있습니다. 그러나 이것은 결코 이식성이 없습니다. 항상 표준 ['exit'] (https://www.tutorialspoint.com/c_standard_library/c_function_exit.htm) 함수를 사용하십시오. –