|
Помогите разобраться с 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: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, 12:34
|
Группа: Новичок
Сообщений: 7
Регистрация: 14-08-15
Пользователь №: 87 982

|
Цитата(Obam @ Aug 14 2015, 13:30)  Как же вы с ARM без JTAGа работаете? Вот так и мучаюсь Жду посылку с ним из поднебесной А ошибка оказалась ну очень детской, в одном из процессов шла запись в память дисплея и почему то  в этот момент и происходил сбой Вопрос решил увеличением приоритета записи в дисплей порт и последующим понижением его после окончания. Возможно не самое оптимальное решение. А есть ли способы запретить передачу управления другим процессам при выполнении критических операций? Не семафоры, а именно аналогично функции запрета/разрешения прерываний Цитата(Golikov A. @ Aug 14 2015, 14:37)  Грузить его можно через встроенный бутлоадер, а отлаживать выводом в порт. через встроенный и гружу, а для тестирования использую дисплей с точскрином Есть еще f4discovery со встроенным отладчиком и по слухам возможностью подключать отладчик к другим платам, но пока не вдавался в подробности как этот сделать
|
|
|
|
Сообщений в этой теме
DemonIce Помогите разобраться с Keil RTx на stm32f103 Aug 14 2015, 06:03 scifi Цитата(DemonIce @ Aug 14 2015, 09:03) Изу... Aug 14 2015, 06:10 DemonIce Как бы с программированием то проблем нет, стажа х... Aug 14 2015, 06:17 kolobok0 Цитата(DemonIce @ Aug 14 2015, 09:17) ...... Aug 14 2015, 14:33        scifi Цитата(DemonIce @ Aug 14 2015, 15:34) А о... Aug 14 2015, 14:22 Golikov A. Вообще глобальные переменные не есть хорошая штука... Aug 14 2015, 07:41 scifi Цитата(Golikov A. @ Aug 14 2015, 10:41) В... Aug 14 2015, 07:45 Golikov A. ЦитатаА давайте ещё с бубном попляшем? Ну и не заб... Aug 14 2015, 08:09 scifi Цитата(Golikov A. @ Aug 14 2015, 11:09) Т... Aug 14 2015, 08:25 RabidRabbit Цитата(Golikov A. @ Aug 14 2015, 11:09) Н... Aug 14 2015, 08:26 Golikov A. Пока кто-то, что-то не поправил и доступ не перест... Aug 14 2015, 08:41 Golikov A. Грузить его можно через встроенный бутлоадер, а от... Aug 14 2015, 11:37 Obam Цитата(Golikov A. @ Aug 14 2015, 15:37) Г... Aug 15 2015, 16:44 Golikov A. надо поднять UART это первым делом делается, и сла... Aug 14 2015, 12:46 DemonIce Цитата(Golikov A. @ Aug 14 2015, 15:46) н... Aug 14 2015, 13:02
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|