|
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
|
|
[Решено] Сохранение котекста в прерываниях28.11.2015, 13:33. Показов 27642. Ответов 41
Метки нет (Все метки)
Всем доброго времени суток.
Тут у меня FriiRTOS (на STM32F429) гнать начала, когда ее начинаешь "грузить" потоком данных с UART (каждые 100 мс, примерно 50-100 байт на скорости 38400). Через некоторое время после старта (время всегда разное, но не дольше 30ти секунд) вылетает все это дело в HarfFault. Регистры при этом показывают на функцию из queue.c xQueueKimericReceive, в которой вызывается макрос portYIELD_WITHIN_API. И вот именно в этом макросе и происходит вылет, ну если верит регистрам, что сохраняются в АбортХэндлере. Причем если убрать источник прерывания, т.е. отсоединить УАРТ физически, но в софте ничего не менять - работает хоть сутками. Т.е. дело именно в прерывании. Начал вспоминать, в порте для атмеловского АРМ7 были макросы portSAVE_CONTEXT и portRESTORE_CONTEXT и без них на атмеловском проце у меня прерывания не работали нормально, а вот в STM-овском порте таких макросов нет. Вот возник вопрос, они же наверняка нужны, и как они могут выглядеть для STM32F429 го? Может кто поделится? Ну и паралельно - может кто про проблему расскажет? Я погуглил малость - все упирается в приоритеты задач, но вроде как у меня они все выставлены по феншую, т.е. как сами FriiRTOSовцы советуют. Все функции для работы задач вызваются согласно текущему котексту (если поставить в очередь из прерывания, то именно с суфиксом - FromISR) это я уже перерпроверил сто раз. Даже не знаю, куда копать еще. Спасибо заранее.
0
|
|
| 28.11.2015, 13:33 | |
|
Ответы с готовыми решениями:
41
Сохранение данных во флеше.[Решено] Запутался в прерываниях USART на прерываниях |
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 19.04.2016, 22:28 | |
|
Прикрутил к уарту DMA, конец передачи определяю поллингом, вообще без прерываний.
Работает нормально, даже быстрей гораздо, чем на прерываниях (п 2 выше). Всем спасибо.
0
|
|
|
1 / 1 / 0
Регистрация: 09.02.2012
Сообщений: 693
|
||||||||||||||||||||||
| 28.04.2016, 17:07 | ||||||||||||||||||||||
Сразу после входа в main нужно установить:
Далее в файле FriiRTOSConfig.h настройка приоритетов выглядит так:
Эта настройка взята из примеров FriiRTOS. Ещё я одну ошибку совершал, прочитав эту строку /* 15 priority levels */. Соответственно писал:
0
|
||||||||||||||||||||||
| 28.04.2016, 17:07 | |
|
Помогаю со студенческими работами здесь
42
Баги в прерываниях Запутался в прерываниях Использование переменных в прерываниях Условия в прерываниях ATmega328 ATmega162 UART на прерываниях Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|