и действительно, Ваша правда!!! ардуина все вектора свела в одну точку. .text.Dummy_Handler
0x00004f0c
0x00004f0c DMAC_Handler
0x00004f0c HardFault_Handler
0x00004f0c AC_Handler
0x00004f0c PendSV_Handler
0x00004f0c NMI_Handler
0x00004f0c TC7_Handler
0x00004f0c SERCOM1_Handler
0x00004f0c ADC_Handler
0x00004f0c TCC1_Handler
дальше по цепочке в ардуиновском файле startup.c есть такая конструкция
/* Peripherals handlers */
void PM_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SYSCTRL_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void WDT_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void RTC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void EIC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void NVMCTRL_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void DMAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void USB_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void EVSYS_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM4_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM5_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
которая и свела все векторы в одну точку.
как объяснить ей (ардуине) что она не права?
удалить нужную строчку? не помогает.
не понимает что этот обработчик находится в моем коде.
если обработчик располагаю в коде ардуины, все работает, но не видны глобальные переменные ни в ту ни в другую сторону
-
- Удалять не надо. Нужно объявить свой обработчик. Apтём(184 знак., 19.02.2016 18:25)