2012-01-03 6 views
2

STM32의 이벤트 핸들러 내부에서 함수 포인터를 통해 함수를 호출하는 것이 안전한지 궁금합니다. 이벤트 처리기는 I2C 용이며 가장 높은 우선 순위를가집니다. 호출 할 함수는 빠르다 고 가정 할 수 있습니다 (일부 바이트 순서 재 지정).이벤트 핸들러에서 STM32 함수 포인터

어떤 힌트 나 의견을 보내 주셔서 감사합니다.

아르네

+2

예, 문제가 없습니다. 정확히 당신은 무엇에 대해 걱정하고 있습니까? – avakar

+0

나는 단지 의심 스럽다 .. – Arne

답변

2

함수 포인터가 초기화되면 제대로 작동합니다. 유일한 문제는 인터럽트 핸들러가있는 일반적인 문제입니다. '바이트 순서 재 지정'이 tx/rx 버퍼에서 바이트를 제거/추가하는 경우 버퍼 관리가 안전하게 중단되어야합니다.

1

예.

그렇다고해서 잠재적 위험이 하나 있습니다. 이벤트 핸들러가 활성화 될 때 함수 포인터가 초기화되도록해야합니다.

일반적으로 글로벌 변수는 main이 호출되기 전에 초기화되지만 문제가 발생하기 전에 이벤트 핸들러가 활성화 된 경우 초기화됩니다.

+0

알림을 보내 주셔서 감사합니다. 그러나 I2C 이벤트는 시작 코드 이후에만 오래 활성화됩니다. – Arne

관련 문제