189 похожих чатов

Т.Е. допустим если задача так описана и запущена, /* Definitions for

View */
osThreadId_t ViewHandle;
uint32_t ViewBuffer[ 256 ];
osStaticThreadDef_t ViewControlBlock;
const osThreadAttr_t View_attributes = {
.name = "View",
.stack_mem = &ViewBuffer[0],
.stack_size = sizeof(ViewBuffer),
.cb_mem = &ViewControlBlock,
.cb_size = sizeof(ViewControlBlock),
.priority = (osPriority_t) osPriorityNormal,
};
ViewHandle = osThreadNew(tViewTask, NULL, &View_attributes);
(это cmsis_os2 обертка вокруг freertos)
то можно ее грохнуть и потом пересоздать на этих же переменных? По идее при удалении переменные останутся на месте и можно их опять использовать?..

11 ответов

18 просмотров

а у вас какая цель то? чтобы задача останавливалась в определенном месте?

cume-C Автор вопроса
Pasha
а у вас какая цель то? чтобы задача останавливалас...

по внешнему событию (по кнопке СТОП) ее останавливать и потом запускать с самого начала.

cume C
по внешнему событию (по кнопке СТОП) ее останавлив...

и при нажатии стоп, очень важно, чтобы она до конца конечно же не дошла?

cume-C Автор вопроса
Pasha
и при нажатии стоп, очень важно, чтобы она до конц...

да и раскидать по ней периодическую проверку флага - гемор тот еще.

cume C
да и раскидать по ней периодическую проверку флага...

Странный кейс. Убивать задачи в вытесняющей ртос - такое себе, обычно так не делают. Я б еще понял, если кооперативка и памяти под дескрипторы задач нету. А что будет с данными в этой задачи, когда вы кнопку нажмете?

cume-C Автор вопроса
Aleksandr Borisov
Странный кейс. Убивать задачи в вытесняющей ртос -...

данные мне не нужны. Все что нужно - сохраняется по ходу дела. Мне нужно ее не удалить, а перезапустить с самого начала. А написана она линейно и довольно много шагов. Потому и хочу от внешнего воздействия ее перезапускать чтобы не переписывать эту портянку. (в наследство досталась)

cume C
данные мне не нужны. Все что нужно - сохраняется п...

ха, ну представьте, что кнопку нажали в момент сохранения данных и вы убили таску из другой, которая обрабатывает кнопку, получив управление от сервиса в прерывании. Это ж асинхронный процесс

Aleksandr Borisov
ха, ну представьте, что кнопку нажали в момент сох...

Мб там на сохранение данных - критическая секция...

Alexander
Мб там на сохранение данных - критическая секция.....

может быть даже мютекс 🤷🏻‍♂️ но в целом это плохой стиль проектирования

cume C
данные мне не нужны. Все что нужно - сохраняется п...

т.е. просто поставить "текущий шаг будет 0" нельзя?

cume-C Автор вопроса
Vyacheslav Olkhovchenkov
т.е. просто поставить "текущий шаг будет 0" нельзя...

Как оно написано сейчас - нет. Точнее можно, но слишком геморно.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта