|
|
 |
Ответов
|
Mar 9 2015, 09:14
|
Участник

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

|
Цитата(Сергей Борщ @ Mar 9 2015, 09:45)  В обработчике прерывания создается объект класса TISRW_SS? Создается объект TISRW. Как я понял для Cortex-M3 можно использовать его. Цитата Каким образом ожидаете событие? TEventFlag.wait()? Да, именно так. Вот код: Код OS::TEventFlag SPIRE_Event; uint8_t SPI_data;
OS_INTERRUPT void SPI2_IRQHandler(void) { OS::TISRW TISRW_O; if (SPI_I2S_GetITStatus(SPI2, SPI_I2S_IT_RXNE) != RESET) {
SPI_I2S_ClearITPendingBit(SPI2,SPI_I2S_IT_RXNE); //эта строка необязательна SPI_data = SPI_I2S_ReceiveData(SPI2); SPIRE_Event.signal_isr(); } }
int8_t ReadWrite(uint8_t data) { /* Loop while DR register in not emplty */ while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
/* Send byte through the SPI1 peripheral */ SPI_I2S_SendData(SPI2, data);
SPIRE_Event.wait(); SPIRE_Event.clear(); return SPI_data; } Обработчик прерывания включен только для события RXNE.
|
|
|
|
|
Mar 9 2015, 11:49
|
Участник

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

|
Цитата(Сергей Борщ @ Mar 9 2015, 13:10)  Все верно. Должно работать. В деструкторе этого объекта взводится запрос перывания PendSVC. После выхода из текущего прерывания должен вызваться обработчик PendSVC, в котором собственно и должна произойти перепланировка. Причем с системным тиком механизм идентичный, а симптомы один-в-один напоминают забытый TISRW. Похоже я где-то что-то напутал. Сейчас еще раз проверил, и все работает корректно. Видимо я не ту прошивку в железо залил. Спасибо за ответы.
|
|
|
|
Сообщений в этой теме
abutorin TEventFlag.Signal_isr() Mar 8 2015, 21:06 DmitryM Цитата(abutorin @ Mar 9 2015, 00:06) Добр... Mar 9 2015, 06:08 SergNK Доброго дня!
Решил поднять тему вот таким воп... Jan 18 2017, 11:23 Сергей Борщ QUOTE (SergNK @ Jan 18 2017, 13:23) Вылет... Jan 18 2017, 12:04 SergNK Ща попробую
Контекст портится после suspend(Proce... Jan 18 2017, 12:41 SergNK Словил за хвост эту проблему. Словами или кодом оп... Jan 20 2017, 21:04 SergNK Весь день просидел и пытался подобраться поближе к... Jan 22 2017, 20:39 AHTOXA Извините за банальность, но не пробовали ли вы вык... Jan 22 2017, 21:42 SergNK Это было сделано в первую очередь. Я не новичок в ... Jan 23 2017, 04:41 AHTOXA Не обижайтесь, но раз вы этого явно не написали, к... Jan 23 2017, 06:23 SergNK scmRTOS v5.1
IAR 7.70
Windows 10 Jan 23 2017, 15:46 AHTOXA Понятно. Свой порт под IAR для M0+?
Давайте тепер... Jan 23 2017, 16:41 SergNK Да, не видно. То, что удалось словить, - это уже с... Jan 23 2017, 17:15 AHTOXA Вы не ответили про порт. Что за порт? Покажите код... Jan 23 2017, 17:19 SergNK Простите, не понял сразу.
CODEPendSV_Handler
#if... Jan 23 2017, 19:31 AHTOXA С обработчиком порядок, он один-в-один как в порте... Jan 23 2017, 20:03 SergNK Вот приоритеты:
CODE//----------------------------... Jan 23 2017, 20:23 AHTOXA Ага, вот оно! В M0 нет побайтового доступа к р... Jan 23 2017, 21:09 SergNK Только сегодня добрался до проекта. Работа, однако... Jan 28 2017, 20:43 AHTOXA Цитата(SergNK @ Jan 29 2017, 01:43) Как с... Jan 28 2017, 20:56  SergNK Цитата(AHTOXA @ Jan 28 2017, 23:56) Код E... Jan 28 2017, 21:31 esaulenka Цитата(SergNK @ Jan 28 2017, 23:43) Как с... Jan 30 2017, 13:44 SergNK Удалось-таки победить. Вот что вышло:
Это обработ... Feb 6 2017, 19:18 dxp QUOTE (SergNK @ Feb 7 2017, 02:18) Удалос... Feb 7 2017, 07:18 SergNK Можно. Я отладил код под Freescale M0+. Подчистить... Feb 7 2017, 07:28 dxp QUOTE (SergNK @ Feb 7 2017, 14:28) Можно.... Feb 7 2017, 07:44 SergNK Спасибо за доверие!
Первый вариант. Feb 7 2017, 08:14 dxp QUOTE (SergNK @ Feb 7 2017, 15:14) Спасиб... Feb 7 2017, 08:48
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|