Что происходит при передаче отрицательного числа в функцию taskDelay в vxworks? - PullRequest
1 голос
/ 19 июля 2009

Заметил, что параметр taskDelay имеет тип int, что означает, что число может быть отрицательным. Просто интересно, как будет реагировать функция при передаче отрицательного числа.

Ответы [ 4 ]

0 голосов
/ 02 ноября 2018

Тик задержки задачи будет Виртуально 10,9, .., 1,0 для taskDelay (10).

Тик задержки задачи будет Виртуально -10, -11, ..., - 2147483648,2147483647, ..., 1,0 для TaskDelay (-10).

0 голосов
/ 19 июля 2009

Полагаю, что в работе нет критической необходимости делать это, и у вас, вероятно, есть какой-то код, который можно было бы протестировать ... почему бы не попробовать?

0 голосов
/ 19 июля 2009

Документация не касается этого, и единственные коды ошибок, которые они определяют, не охватывают этот случай. Поэтому наиболее правильный ответ заключается в том, что результаты не определены.

См. VxWorks / Tornado II FAQ для этого драгоценного камня, однако:

taskDelay (-1) показывает еще одну ошибку в код таймера / тика vxWorks. Она имеет (побочный) эффект установки vxTicks в ноль. Это портит местное время (и, возможно, другие вещи). по факту taskDelay (x) будет иметь тот же эффект если vxTicks + x> = 0x100000000. Если Системная тактовая частота составляет 100 Гц это происходит примерно через 500 дней (потому что vxTicks обертывания). На более высоких тактовых частотах это произойдет раньше. Любой, кто пытается в течение нескольких лет безотказной работы?

О, есть недокументированный верх ограничение по тактовой частоте. По ставкам выше 4294 select () не сможет конвертировать время 'usec' в правильное количество тиков. (От: Дэвид Laight, dsl@tadpole.co.uk)

Предполагая, что эта ошибка старая, я надеюсь, что она либо вернет ошибку, либо сделает то же самое, что taskDelay (0), который ставит вашу задачу в конец очереди готовности.

0 голосов
/ 19 июля 2009

Большинство функций проверяют ввод и просто возвращают рано / возвращают 0 / устанавливают для параметра значение по умолчанию.

...