|
Модераторы: PILOT, ManiaK, Mazzi |
|
Курсант |
|
|||
Опытный Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
Здравствуйте! Столкнулся со следующей проблемой: при работе программы нарушаются текстовые строки, предназначенные для вывода в COM-порт через printf (для отладки). Т.е. вместо сообщений в терминале я вижу "кракозяблы". Причём это происходит в зависимости от количества данных в памяти. Т.е. если я подключаю к проекту нагруженные данными модули, то вместо текстовых строк через COM-порт поступает какой-то мусор. Попытка установить прерывание на запись в ячейку памяти (т.к. я посчитал, что какой-то фрагмент кода, использующий указатели или массивы, записывает данные не туда, куда это следует делать, и затирает строки) привела к тому, что запись отлавливается только при выгрузке данных из flash-памяти в startup-e. Т.е., с одной стороны, если startup считать верным, компилятор и линковщик считать не имеющими ошибок, а мой код не записывает в память никаких кракозябл, то не понятно, откуда эти кракозяблы берутся...
Кто-нибудь сталкивался с подобным? Можете подсказать в чём проблема, хотя бы в общих чертах? Может быть какая-то проблема с выгрузкой этих строк при больших объёмах данных? Замечено, что некоторые массивы в программе тоже не инициализируются (а может быть затираются после инициализации) при большом количестве подключенных модулей. |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Варианты (выбирай на вкус )
Чем ставили прерывание? Данные после начально записи из FLASH были привильными? Проверьте откуда идут данные в COM - чудес не бывает, либо данные испортились (а прерывание не сработало), либо сама процедура вывода в COM была убита и выводила данные не оттуда |
|||
|
||||
Курсант |
|
|||
Опытный Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
Проблема была тривиальная - скрипт прошивки микроконтроллера для JLink.exe записывал во Flash не всю прошивку. Коллега для экономии времени решил, что прошивка не будет весить более 40 кБ, и сделал скрипт, который пишет только первые 40 кБ прошивки. Таковы издержки использования бесплатного ПО (в нашем случае это eclipse). |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
'Коллега' входил в состав 'бесплатного ПО' ? Или все же это последствия кривых рук (которые сделали хак и не удосужились это хотя бы задокументировать) |
|||
|
||||
Курсант |
|
|||
Опытный Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
Извините что не сразу отвечаю Коллега не входил в состав "бесплатного ПО", проблема бесплатного ПО в том, что для него нужно писать скрипты и всячески подстраивать под себя, а это увеличивает разрушительность человеческого фактора... Конечно, на мой взгляд, это последствия кривых рук, но все мы несовершенны |
|||
|
||||
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |