Witam,
Po otrzymaniu przerwania od zewnętrznego przetwornika wchodzę do funkcji:
void EXTI4_IRQHandler(void)
{
int b;
b = c+d;
//inna_funkcja(&b);
if(EXTI_GetITStatus(EXTI_Line4) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line4);
}
}
Program przechodzi przez dwie pierwsze instrukcje int b;b = c+d;.Po wykonaniu trzeciej czyli wywołaniu funkcji bibliotecznej EXTI_GetITStatus(..)
licznik rozkazów zamiast do ciała ww. funkcji trafia do Hard_Fault_Handler.
To samo się dzieje jeżeli zadeklaruję jakąkolwiek inną funkcję i wywołam ją z void EXTI4_IRQHandler(void). W moim projekcie korzystam z przykładu stm32cl_blink_led ze stronki freddiego chopina.
Dołożyłem do tego pliki biblioteki standard peripheral library , stm32f10.h , core_cm3.c.
Wydaje się to być problem nieprawidłowego odkładania licznika rozkazów na stosie albo alokacji wektora przerwań.
Proszę o pomoc szczególnie freddiego chopina ponieważ jest autorem plików linkera, startup-a i wektora przerwać(vectors.c), które w innych projektach jak dotąd działałają mi niezawodnie.
Po otrzymaniu przerwania od zewnętrznego przetwornika wchodzę do funkcji:
void EXTI4_IRQHandler(void)
{
int b;
b = c+d;
//inna_funkcja(&b);
if(EXTI_GetITStatus(EXTI_Line4) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line4);
}
}
Program przechodzi przez dwie pierwsze instrukcje int b;b = c+d;.Po wykonaniu trzeciej czyli wywołaniu funkcji bibliotecznej EXTI_GetITStatus(..)
licznik rozkazów zamiast do ciała ww. funkcji trafia do Hard_Fault_Handler.
To samo się dzieje jeżeli zadeklaruję jakąkolwiek inną funkcję i wywołam ją z void EXTI4_IRQHandler(void). W moim projekcie korzystam z przykładu stm32cl_blink_led ze stronki freddiego chopina.
Dołożyłem do tego pliki biblioteki standard peripheral library , stm32f10.h , core_cm3.c.
Wydaje się to być problem nieprawidłowego odkładania licznika rozkazów na stosie albo alokacji wektora przerwań.
Proszę o pomoc szczególnie freddiego chopina ponieważ jest autorem plików linkera, startup-a i wektora przerwać(vectors.c), które w innych projektach jak dotąd działałają mi niezawodnie.