Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CMSIS-RTOS RTX
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > Keil
ViKo
Пока использую стандартного размера стек
Код
osThreadDef(LightBlue, osPriorityNormal, 1, 0);

работает.
Как только пытаюсь задать свой размер (любой)
Код
osThreadDef(LightBlue, osPriorityNormal, 1, 200);

задача не создается.
Или там в Кейле еще нужно что-то править-объяснять?
ViKo
И точно. Только править нужно, оказывается, не Number of threads with user-provided stack size, который можно оставить и 0, а Total stack size [bytes] for threads with user-provided stack size, который должен быть равен (не меньше) суммарному размеру использумого нестандартного стека. В файле RTX_Conf_CM.c, естественно.
О так, яволь! laughing.gif
ViKo
Сколько стека выделить задаче? Как увидеть в отладчике Keil, хватило, не хватило, лишний?
uriy
В 4 кейле было Debug->Os support и что-то там дальше...
Показывал в процентах текущий используемый объем стека по каждой задаче.
А что за ОС такая появилась "CMSIS-RTOS RTX"
Старой RTX больше нет? У вас задачи объявляются совсем не так как было раньше.
ViKo
Цитата(uriy @ Oct 10 2013, 13:03) *
А что за ОС такая появилась "CMSIS-RTOS RTX"
Старой RTX больше нет? У вас задачи объявляются совсем не так как было раньше.

Это надстройка над старой RTX. Наверное, можно и без нее.

Если в задаче внутри функции создается массив, то куда он денется при переключении задачи?
Похоже, из-за этого у меня вылетает в ошибку ОС.
Как быть? Сделать массив глобальным?
uriy
Про CMSIS-RTOS я вообще был не в теме.
Вот попробовал в 5 келей запустить пример на STM32 дисковери.
Размер используемого стека показывает.
Нажмите для просмотра прикрепленного файла
Все локальные переменные складываются в стек.
И по поводу делать большие массивы глобальными или локальными у меня тоже устоявшегося мнения.
Глобальные переменные принято считать злом.
На складывание в стек локальных уходит время.

Кстати у вас Event Viewer нормально работает?
У меня через несколько секунд (иногда минут) такая ерунда выскакивает.
Нажмите для просмотра прикрепленного файла
ViKo
Цитата(uriy @ Oct 11 2013, 15:50) *
Кстати у вас Event Viewer нормально работает?
У меня через несколько секунд (иногда минут) такая ерунда выскакивает.

У меня выскакивает такое, когда шевелю USB разъем на Discovery, через ST-LINK2 которой отлаживаюсь.
ViKo
Цитата(ViKo @ Oct 10 2013, 16:36) *
Если в задаче внутри функции создается массив, то куда он денется при переключении задачи?
...
Как быть? Сделать массив глобальным?

Правильнее сделать его статическим. Работает.
BloomJack
В природе существует документация на CMSIS-RTOS RTX на русском?
yanvasiij
Цитата(BloomJack @ Aug 30 2015, 22:02) *
В природе существует документация на CMSIS-RTOS RTX на русском?


На русском пока нет, хотя тут есть пара энтузистов, который взялись писать статьи не только по CMSIS-RTOS RTX но и по HAL вообще. Не знаю во что это выльется, лично я не вижу в этом смысла - на английском она вполне доходчивая.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.