работает. Как только пытаюсь задать свой размер (любой)
Код
osThreadDef(LightBlue, osPriorityNormal, 1, 200);
задача не создается. Или там в Кейле еще нужно что-то править-объяснять?
ViKo
Mar 24 2013, 18:15
И точно. Только править нужно, оказывается, не Number of threads with user-provided stack size, который можно оставить и 0, а Total stack size [bytes] for threads with user-provided stack size, который должен быть равен (не меньше) суммарному размеру использумого нестандартного стека. В файле RTX_Conf_CM.c, естественно. О так, яволь!
ViKo
Oct 10 2013, 09:30
Сколько стека выделить задаче? Как увидеть в отладчике Keil, хватило, не хватило, лишний?
uriy
Oct 10 2013, 10:03
В 4 кейле было Debug->Os support и что-то там дальше... Показывал в процентах текущий используемый объем стека по каждой задаче. А что за ОС такая появилась "CMSIS-RTOS RTX" Старой RTX больше нет? У вас задачи объявляются совсем не так как было раньше.
ViKo
Oct 10 2013, 13:36
Цитата(uriy @ Oct 10 2013, 13:03)
А что за ОС такая появилась "CMSIS-RTOS RTX" Старой RTX больше нет? У вас задачи объявляются совсем не так как было раньше.
Это надстройка над старой RTX. Наверное, можно и без нее.
Если в задаче внутри функции создается массив, то куда он денется при переключении задачи? Похоже, из-за этого у меня вылетает в ошибку ОС. Как быть? Сделать массив глобальным?
uriy
Oct 11 2013, 12:50
Про CMSIS-RTOS я вообще был не в теме. Вот попробовал в 5 келей запустить пример на STM32 дисковери. Размер используемого стека показывает. Нажмите для просмотра прикрепленного файла Все локальные переменные складываются в стек. И по поводу делать большие массивы глобальными или локальными у меня тоже устоявшегося мнения. Глобальные переменные принято считать злом. На складывание в стек локальных уходит время.
Кстати у вас Event Viewer нормально работает? У меня через несколько секунд (иногда минут) такая ерунда выскакивает.
У меня выскакивает такое, когда шевелю USB разъем на Discovery, через ST-LINK2 которой отлаживаюсь.
ViKo
Oct 14 2013, 13:24
Цитата(ViKo @ Oct 10 2013, 16:36)
Если в задаче внутри функции создается массив, то куда он денется при переключении задачи? ... Как быть? Сделать массив глобальным?
Правильнее сделать его статическим. Работает.
BloomJack
Aug 30 2015, 17:02
В природе существует документация на CMSIS-RTOS RTX на русском?
yanvasiij
Sep 3 2015, 08:50
Цитата(BloomJack @ Aug 30 2015, 22:02)
В природе существует документация на CMSIS-RTOS RTX на русском?
На русском пока нет, хотя тут есть пара энтузистов, который взялись писать статьи не только по CMSIS-RTOS RTX но и по HAL вообще. Не знаю во что это выльется, лично я не вижу в этом смысла - на английском она вполне доходчивая.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.