RTOS Урок 3: Передача данных в функцию при создании задачи.

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

Спасибо за уроки.
Будет ли продолжение? Очень хотелось бы увидеть, как правильно налаживать работу с USART и SPI, слать в них данные и принимать из них, работать с прерываниями под FreeRTOS. (очереди, семафоры)

МаркЪЪЪ
Автор

А не могли бы вы как-нибудь отдельный урок сделать по этим указателям для новичков. Уж очень как-то всё запутанно и особенно при работе с HAL где во многих функциях используются указатели то на массивы, то на аргументы, то на функции и где их нужно преобразовывать из одного вида в другой при подключении других библиотек для хобби-электронщика очень тяжело понять. Был бы очень благодарен и думаю не только я один.

alexanderbecker
Автор

Очень надеюсь увидеть урок по работе с семафорами

МаксимИлларионов
Автор

В 27 строке вы делали приведение типа указателя на void, на тип указателя на uint16_t. Звучит витиевато, конечно, если попытаться сказать проще, то вы "преобразовали" именно тип указателя.

Vital
Автор

Sappise, благодарю за уроки. Жаль, что сразу не пошёл путём CubeMX + freeRTOS. Сегодня используя подсказки из уроков и поднапрягши мозг всё-же смог подружить эту парочку.
Там в Кубе делов то - поставить галочку и в SYS -> Timebase вместо SysTick поставить любой свободный таймер.
И потом напрягать мозг в понимании, что они там наваяли)) А сделали они почти всё.
Тем не менее в очередной раз спасибо, жду продолжений...
С меня Яндекс_Шоколадка))

Fugiji
Автор

Я конечно не программист, могу и наврать. Решил освоить RTOS. Много описаний и мануалов многое теоретически ясно. Но есть несколько"но". Стоит сказать что я использую не keil, а atollic. Начальную конфигурацию произвожу CubeMX, удобно. При этом стоит сказать что генерируются два сорса, т.е. main.c и freertos.c. Во втором сгенерированы обертки формата CMSIS-RTOS. А по привычке начинает описывать и запускать таски используя API FreeRTOS. Получается пишеш одно и тоже 2 раза. Т.е. надо определится в каких API писать. Ненужное удалить. И при передаче параметров в задачу pvParameter -ов как в ролике, массивом и меня заработало только если я передаю адрес(&) массива. Непонятно почему так. Ведь имя массива и есть указатель на него. Непонятно. Видимо проще структурой передавать как в мануале.

ВячеславПопов-цж
Автор

static в main() не ставьте потому что это бесполезно, прога из main() выходит в последнюю очередь, и следовательно её локальные переменные удаляются в последнюю очередь(исключения: вызов main() в рекурсии(в C++ запрещено), да и в СИ не рекомендуется)

slavik