|
Помогите разобраться с Keil RTx на stm32f103, Глобальные переменные |
|
|
|
Aug 14 2015, 06:03
|
Группа: Новичок
Сообщений: 7
Регистрация: 14-08-15
Пользователь №: 87 982

|
Доброго дня! Уважаемые Гуру, помогите разобраться с RTx
Изучать мк начал недавно, опыта как такового не хватает, а интерес очень огромен. Очень хочется научится работать с операционкой. Уже могу запускать процессы, включать таймер, но вот хоть убейте не пойму как работать с глобальными переменными.
На данный момент объявляю переменную static long count, наращиваю ее на единицу через таймер раз в секунду, вывожу на дисплей в отдельном процессе, доходит до 249 и операционка "зависает".
Насколько я понимаю - вся проблема в stack overflow, отключаю проверку в настройках и все работает, а вот как избежать этой ошибки - ума не приложу.
Или хотя бы дайте пинка в сторону описания работы с глобальными переменными в rtx. Сам ничего найти не смог (или ничего не понял ((()
|
|
|
|
|
Aug 14 2015, 06:17
|
Группа: Новичок
Сообщений: 7
Регистрация: 14-08-15
Пользователь №: 87 982

|
Как бы с программированием то проблем нет, стажа хватает с головой, но вот только на обычных ПК. Да и шишек на простых програмках набил, а вот именно с ОС и хочется разобраться, не хватает мне многозадачности.
|
|
|
|
|
Aug 14 2015, 06:33
|
Группа: Новичок
Сообщений: 7
Регистрация: 14-08-15
Пользователь №: 87 982

|
Цитата(Genadi Zawidowski @ Aug 14 2015, 09:22)  количество инкрементнов переменной в том виде, как Вы описываете, на размер занятого стека не влияет. Вот как раз это в ступор то и вводит Цитата(Genadi Zawidowski @ Aug 14 2015, 09:22)  Скорее всего в Вашем случае "зависнет" и само по себе через некоторое время после запуска. Нет никаких ожиданий, циклы бесконечны Цитата(Genadi Zawidowski @ Aug 14 2015, 09:22)  либо действительно стек портится или входите в deadlock (взаимная блокировка задач) или просто ждете события которе никогда не нступит... Сам думаю о том же, что процесс пытается обратится к переменной в момент записи в нее значения а как это обойти?
|
|
|
|
|
Aug 14 2015, 06:42
|
Группа: Новичок
Сообщений: 7
Регистрация: 14-08-15
Пользователь №: 87 982

|
Цитата(scifi @ Aug 14 2015, 09:40)  Бессмыслица какая-то. Вы уверены, что у вас есть опыт программирования? Вы вообще представляете, как процессор работает? Как переменные читаются и записываются? Какой такой процесс? Выбросьте эту чушь из головы. уверен но других объяснений найти не могу, без обращения к этой переменной диоды мигают до бескончености, а при использовании ее - 249 циклов записи Причем код менялся, менялись интервалы, число 249 остается постоянным
Сообщение отредактировал DemonIce - Aug 14 2015, 06:43
|
|
|
|
|
Aug 14 2015, 06:49
|
Группа: Новичок
Сообщений: 7
Регистрация: 14-08-15
Пользователь №: 87 982

|
Цитата(scifi @ Aug 14 2015, 09:47)  Надо разбираться в первопричинах сбоя. Скорее всего, сама по себе эта переменная ни при чём, просто это добавление к программе спровоцировало сбой в другом месте. Этот сбой случился бы так или иначе. Надо собирать диагностическую информацию. Использование стеков, к примеру, и всё такое прочее. Внутрисхемный отладчик для этого оч. хорош. Понятно, спасибо, буду искать отладчик
|
|
|
|
|
Aug 14 2015, 08:09
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата А давайте ещё с бубном попляшем? Ну и не забывайте помолиться перед подходом к клавиатуре. Не понял иронии... То есть вы считаете что стандартные методы по защите данных с совместным доступом и организация правильного потока обмена данными - это пляски с бубном? Научите меня тогда пожалуйста, как вы правильно без бубна работаете с глобальными переменными?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|