реклама на сайте
подробности

 
 
> microlib в бутлоадере -> глючит основная прога
zuy
сообщение Sep 1 2010, 22:33
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 30-11-05
Из: San Francisco
Пользователь №: 11 593



Процессор LPC2361.

При запуске проги через бутлоадер, стали появляться глюки. Выяснилось, что непонятно как портятся некоторые массивы данных.
Дальше обнаружили, что на это влияет бутлоадер. Если его вершину стека поднять вверх примерно на 200 байт т.е. сделать так, чтобы его стек не перекрывал данные основной программы, то основная прога глючить перестает.
А если отключить использование Microlib в бутлоадере, то даже не двигая стек бутлоадера, глюк исчезает.
При этом, если в бутлоадере включен Microlib, то основная прога глючит не зависимо от того используется в ней Microlib или нет.
Без бутлоадера, все работает отлично.

Что это может быть?
Каким образом настройки стека бутлоадера могут влиять на основную программу, если в стартапе все стеки заново инициализируются?
Подкиньте хоть каких-нибудь идей, как вообще то, что я делаю в бутлоадере, может влиять на основную прогу, если без него она отлично работает?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zuy
сообщение Sep 2 2010, 07:20
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 30-11-05
Из: San Francisco
Пользователь №: 11 593



Сергей и Nixon спасибо огромное. А то уже до красных глаз досиделся вылавливая глюк.

Один только момент остался. Бут уже прошит в большое кол-во девайсов, можно решить проблему не в буте, а в стартапе основной проги.
т.е. там перед настройкой стеков, вернуться назад в режим суперпользователя ?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 2 2010, 08:57
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(zuy @ Sep 2 2010, 10:20) *
т.е. там перед настройкой стеков, вернуться назад в режим суперпользователя ?
Как идея - сделать swi, процессор перейдет в режим супервизора, и уже из него как-то настроить стеки и вернуться в исходную точку. Сам такое не делал.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 3 2010, 23:21
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Сергей Борщ @ Sep 2 2010, 11:57) *
Как идея - сделать swi,

В обработчике любого исключения (DAbt / Swi / Irq ) можно переключать режимы, - и все стеки перестроить.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016