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 ответов

15 просмотров

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

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" нельзя...

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

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
Карта сайта