Я хотел бы начать поток с помощью следующей функции:
void walkThread(void const *argument)
{
Gait* gait = const_cast<Gait*>(static_cast<const Gait*>(argument));
gait->print();
for(;;)
{
osDelay(1000);
}
}
void Gait::print()
{
printf("%i\r\n", m_stopped);
}
Актеры, кажется, дают мне плохой адрес для походки. Функция печати должна вывести «0» (инициализируется m_stopped), но вместо этого она печатает случайное число.
Я начинаю поток, как это, давая «это» в качестве параметра.
osThreadDef(WalkThread, walkThread, osPriorityNormal, 0, configMINIMAL_STACK_SIZE+500);
osThreadCreate(osThread(WalkThread), this);
Здесь что-то не так? Стоит ли искать где-то еще?
Задача ещё не решена.
Других решений пока нет …