|
Перенос векторов прерываний в nRF51822 |
|
|
|
 |
Ответов
|
Mar 20 2018, 17:46
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(sevstels @ Mar 19 2018, 15:55)  Недавно подключить к готовому проекту Cortex M0 bootloader. Перенес вектора прерываний приложения из начала флеш в середину, сделал ремап векторов. scmRTOS запускается успешно но стал вылетать в HardFault_Handler после вызова channel.push() в прерывании UART. Немного не вяжется: у вас Cortex M0 или Cortex M0+ ? У Cortex M0 нет регистра VTOR, соответственно нельзя перенести таблицу векторов в середину флеш. Можно только в начало ОЗУ. Может дело в этом? Тогда при первом прерывании программа и будет улетать неизвестно куда.
|
|
|
|
|
Mar 20 2018, 18:47
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Baser @ Mar 20 2018, 19:46)  Немного не вяжется: у вас Cortex M0 или Cortex M0+ ? У Cortex M0 нет регистра VTOR, соответственно нельзя перенести таблицу векторов в середину флеш. У M0+ вроде тоже нет. Но у них есть процедура отражения ОЗУ на начало памяти (remap), таким образом можно скопировать вектора в начало ОЗУ откуда угодно. QUOTE (Baser @ Mar 20 2018, 19:46)  Можно только в начало ОЗУ. Собственно, да. Меня очень смущает расположение основного стека близко к началу ОЗУ. Обычно его располагают в самом конце, чтобы он мог расти максимально далеко.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
sevstels Перенос векторов прерываний в nRF51822 Mar 19 2018, 13:55 Сергей Борщ QUOTE (sevstels @ Mar 19 2018, 15:55) Под... Mar 19 2018, 14:52 sevstels 1. Свободное место проверяется, канал никогда не п... Mar 19 2018, 15:52 Сергей Борщ QUOTE (sevstels @ Mar 19 2018, 17:52) 2. ... Mar 19 2018, 18:45 sevstels >> что за шаманство с вводом адреса из sp?
... Mar 20 2018, 05:14 Сергей Борщ QUOTE (sevstels @ Mar 20 2018, 07:14) Наш... Mar 20 2018, 14:13 sevstels All pictures by one zip
На мой взгляд целесообраз... Mar 20 2018, 06:45 sevstels Цитата(Baser @ Mar 21 2018, 02:46) Немног... Mar 21 2018, 11:21 Baser Цитата(sevstels @ Mar 21 2018, 13:21) Пом... Mar 21 2018, 12:20 Сергей Борщ Чтобы за время вашего отпуска мысли не забылись, и... Mar 23 2018, 11:01 sevstels >> чем не угодил стандартный способ ремапа
Н... Mar 21 2018, 13:40 Baser Цитата(sevstels @ Mar 21 2018, 15:40) ... Mar 21 2018, 13:59 sevstels Производитель еще тот крендель. Они ничего не реко... Mar 21 2018, 14:35 AHTOXA Ух ты, сколько интересного я пропустил
Предлагаю ... Mar 21 2018, 14:51 sevstels Проверял. Смещение текущего прерывания четко опред... Mar 21 2018, 15:00 AHTOXA Цитата(sevstels @ Mar 21 2018, 20:00) Про... Mar 21 2018, 15:13 sevstels Уже этот вариант тестил. В ОЗУ выделил константу, ... Mar 21 2018, 15:27 AHTOXA push() вызывает перепланировку. Взводит флаг преры... Mar 21 2018, 18:15 sevstels Нет, все на месте, первым делом макрос проверяю. В... Mar 21 2018, 18:29 Baser Цитата(sevstels @ Mar 21 2018, 16:35) Про... Mar 22 2018, 09:24 sevstels Спасибо.
К сожалению таймаут на месяц. Вернусь с ... Mar 22 2018, 15:57 sevstels Снимаю шляпу... реально гениально.
Ваша версия irq... May 2 2018, 01:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|