Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нарвался на женские капризы ПО.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
KnightIgor
Всем здрасьте.
Я и вправду не могу озаглавить понятнее, поскольку наблюдаемый эффект больше похож на поведение капризной фифы, а не микроконтроллера.

Имеем:
- STM32F103RC
- Flash-FS от KEIL
- micro-SD-Карточку на SPI
- текстовый файл на ней
- самописная поддержка терминала (команды и печать), на PC используется TeraTerm.

Шаги:
- компилим программу (KEIL 5.x)
- грузим по JTAG (J-LINK V8)
- запускаем кнопкой RESET на плате.

ПО многоплановое, все вроде работает, но именно при "распечатке" текстового файла с карты на терминале пропадают части строк. В терминальной коммуникационной линии я уверен совершенно (проверено другими средствами, да и дальше будет ясно, что все с этим в порядке).

Ага, запускаем тут же отладчик. При этом НЕ происходит перезаливки ПО, т.к. в данной сессии KEIL считает только что залитую программу еще актуальной, что есть правда. Запускаем под отладчиком... ошибка проглатывания символов ушла! Ладно, известно, что отладчик может чего-то перенастроить, например DWT, который я в ПО использую, и быть микроскопом Гейзенберга. Тогда завершаем сессию отладки, ПЕРЕДЕРГИВАЕМ питание микроконтроллерной платы и... все начинает работать безошибочно!

Идеи?
kolobok0
Цитата(KnightIgor @ May 22 2015, 11:49) *
...Идеи?


Инициализация периферии МК. В частности скорость инициализации. Это чиссо на вскидку. Думаю можно найти ышо кучку причин такого поведения.
Вторая идея - разные кванты исполнения в мультинитеевой среде, если юзаете.


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

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


у меня к кеил есть притензии. под 51 серию встречал когда компилятор тупо выкидывал код. причём это был тупой глюк. после правки программы
(чуть ли не нопами) - само прошло. Но это не Ваш случай...
RabidRabbit
Получается, что поведение №1 получается после сброса кнопкой (RESET), а поведение №2 - после сброса при включении питания (POR). Посмотрите, может умолчательные настройки какого оборудования различаются от типов сброса...
Kabdim
Где-то кольцевой буфер успевает перезаписаться?
_4afc_
Цитата(KnightIgor @ May 22 2015, 11:49) *
ПО многоплановое, все вроде работает, но именно при "распечатке" текстового файла с карты на терминале пропадают части строк. В терминальной коммуникационной линии я уверен совершенно (проверено другими средствами, да и дальше будет ясно, что все с этим в порядке).

Идеи?


У меня терминалка регулярно теряет часть символов если их интенсивно плюёт контроллер на 115200. Спасают паузы между строками и немного запись лога терминалки на диск.

Возможно надо посмотреть кто ещё на IRQ компорта у ПК...
AlexandrY
Цитата(KnightIgor @ May 22 2015, 11:49) *
Идеи?


Тупой сексизм.

Лучше разберитесь со своим стеком.
Может HAL_СM4.c по глупости в проекте оставлен.



KnightIgor
Цитата(AlexandrY @ May 25 2015, 11:30) *
Тупой сексизм.

Эмансипация прошла мимо...
Цитата
Лучше разберитесь со своим стеком.
Может HAL_СM4.c по глупости в проекте оставлен.

Вряд ли CM4, т.к. речь идет о F103.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.