реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Проблема с векторами прерываний stm8l15(6)2
Gremz
сообщение Sep 22 2011, 11:49
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 12-09-11
Пользователь №: 67 128



Столкнулся с проблемой: IAR сдвигает вектора прерывай на несколько адресов вверх...
IAR 1.20 kikstart, и 1,30 (30 дневная версия) разницы никакой ...
Кто сталкивался, помогите решить проблему...
CODE
008068 82 DC8 0x82
008069 00 DC8 0x00
00806A 82 DC8 0x82
00806B 91 DC8 0x91
00806C 82 DC8 0x82 // номер прерыв. 25 (TIM4) <-- сюда попадаем по Tx
00806D 00 DC8 0x00
00806E 82 DC8 0x82
00806F 86 DC8 0x86
008070 82 DC8 0x82 // номер прерыв. 26 (SPI1) <-- сюда попадаем по Rx
008071 00 DC8 0x00
008072 82 DC8 0x82
008073 7F DC8 0x7F
008074 82 DC8 0x82 // номер прерыв. 27 (USART1 Tx /TIM5 ) <-- Здесь должен быть адрес по Tx
008075 00 DC8 0x00
008076 82 DC8 0x82
008077 91 DC8 0x91
008078 82 DC8 0x82 // номер прерыв. 28 (USART1 Rx /TIM5 ) <-- Здесь должен быть адрес по Rx
008079 00 DC8 0x00
00807A 82 DC8 0x82
00807B 91 DC8 0x91
00807C 82 DC8 0x82
00807D 00 DC8 0x00
00807E 82 DC8 0x82

//-----------------------------------**----------------------------------------------------------------------------------


UART1_RXE:
_interrupt_28:
00827F C65231 LD A, USART1_DR
008282 C75231 LD USART1_DR, A
}
008285 80 IRET

USART1_T_TXE:
_interrupt_27:
008286 A631 LD A, #0x31
008288 C75231 LD USART1_DR, A
}
00828B 80 IRET


Сообщение отредактировал IgorKossak - Sep 29 2011, 07:36
Причина редактирования: [codebox]
Go to the top of the page
 
+Quote Post
Gremz
сообщение Sep 29 2011, 04:07
Сообщение #2





Группа: Участник
Сообщений: 10
Регистрация: 12-09-11
Пользователь №: 67 128



В файле iostm8l162m8.h добавил недостающих номеров прерываний, не помогло....
Подскажите, в каких еще файлах присутствуют описания прерываний, где можно подправить адреса?
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Oct 3 2011, 04:21
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Gremz @ Sep 29 2011, 07:07) *
Подскажите, в каких еще файлах присутствуют описания прерываний, где можно подправить адреса?


У меня для контроллера S прерывания определены в файле interrupt_vectors.c, я его сам не сочинял, но перенес из среды к файлам проекта.


extern void _stext(); /* startup routine */
void main(void);

struct interrupt_vector const _vectab[] =
{
{
0x82, (interrupt_handler_t)_stext
}
, /* reset */
//{0x82, (interrupt_handler_t)main}, /* reset */
{0x82, NonHandledInterrupt }, /* trap */
{0x82, NonHandledInterrupt }, /* irq0 - tli */
{0x82, NonHandledInterrupt }, /* irq1 - awu */
{0x82, NonHandledInterrupt }, /* irq2 - clk */
{0x82, NonHandledInterrupt }, /* irq3 - exti0 */
{0x82, NonHandledInterrupt }, /* irq4 - exti1 */
{0x82, NonHandledInterrupt }, /* irq5 - exti2 */
{0x82, NonHandledInterrupt }, /* irq6 - exti3 */
{0x82, NonHandledInterrupt }, /* irq7 - exti4 */
{0x82, NonHandledInterrupt }, /* irq8 - can rx */
{0x82, NonHandledInterrupt }, /* irq9 - can tx */
{0x82, NonHandledInterrupt }, /* irq10 - spi*/
{0x82, NonHandledInterrupt }, /* irq11 - tim1 */
{0x82, NonHandledInterrupt }, /* irq12 - tim1 */
{0x82, TIM2_ISR }, /* irq13 - tim2 */
{0x82, TIM2_ISR }, /* irq14 - tim2 */
{0x82, NonHandledInterrupt }, /* irq15 - tim3 */
{0x82, NonHandledInterrupt }, /* irq16 - tim3 */
{0x82, NonHandledInterrupt }, /* irq17 - uart1 */
{0x82, NonHandledInterrupt }, /* irq18 - uart1 */
{0x82, NonHandledInterrupt }, /* irq19 - i2c */
{0x82, NonHandledInterrupt }, /* irq20 - uart2/3 */
{0x82, NonHandledInterrupt }, /* irq21 - uart2/3 */
{0x82, NonHandledInterrupt }, /* irq22 - adc */
{0x82, NonHandledInterrupt }, /* irq23 - tim4 */
{0x82, NonHandledInterrupt }, /* irq24 - flash */
{0x82, NonHandledInterrupt }, /* irq25 - reserved */
{0x82, NonHandledInterrupt }, /* irq26 - reserved */
{0x82, NonHandledInterrupt }, /* irq27 - reserved */
{0x82, NonHandledInterrupt }, /* irq28 - reserved */
{0x82, NonHandledInterrupt } /* irq29 - reserved */
};


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Gremz
сообщение Oct 7 2011, 04:02
Сообщение #4





Группа: Участник
Сообщений: 10
Регистрация: 12-09-11
Пользователь №: 67 128



Цитата(Dog Pawlowa @ Oct 3 2011, 08:21) *
У меня для контроллера S прерывания определены в файле interrupt_vectors.c....


Не нашел такого файла у себя в папке ИАРа...
Для L возможно есть отличия


PS Написал в IAR....
Ответили, что нашли у себя эту ошибку. Обновление IAR должно выйти в течение нескольких недель.
Так что ждем новой версии IARa
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th August 2025 - 22:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01753 секунд с 7
ELECTRONIX ©2004-2016