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

 
 
> Bootloader&application, доступ к общим функциям
KSN
сообщение Jul 6 2009, 08:21
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 404
Регистрация: 3-12-04
Из: Новосибирск
Пользователь №: 1 304



В IAR есть два отдельных проекта: приложение и загрузчик. Оба этих проекта используют несколько одинаковых функций. Из экономии памяти решил, в проекте загрузчика создать сегмент, куда поместить общие функции. А в проекте приложения в xcl файле указал адреса этих функций, чтобы можно было вызывать эти функции. Скомпилировал два проекта по отдельности, объединил прошивки - все работает, но не стабильно. Глючить начинает, когда приложение вызывает общие функции. Проекты компилировались с разными уровнями оптимизации: загрузчик - максимум по размеру, а приложение - среднее по размеру. Есть подозрение, что в этом и дело, надо разбираться, чем и занимаюсь.
Попутно хочу спросить, каким образом люди решают подобные задачи? Применять одинаковые уровни оптимизации обоих проектов; не оптимизировать общие функции; использовать общие функции на ассемблере и т.д.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KSN
сообщение Jul 6 2009, 08:37
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 404
Регистрация: 3-12-04
Из: Новосибирск
Пользователь №: 1 304



Глюки: перестает работать основной цикл программы после вызова общей функции. Прерывания отрабатываются нормально. У меня есть несколько общих функции, которые вызывает приложение. Также есть еще несколько функции(назовем их дочерними функциями), которые расположены в том же сегменте, что и общие функции и которые вызываются общими функциями. Сейчас установил цепочку "ловушек"(дергание ножками) при вызове одной из общих функций. Результат: подвисание происходить внутри общей функции при вызове дочерних функций, причем, разных дочерних.
Ну, мне все-таки надо попытаться сделать работоспособным приложением, т.к. при компиляции приложения и загрузчика с исходными текстами общих функций я не укладываюсь в размеры памяти кристалла.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 6 2009, 08:43
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(KSN @ Jul 6 2009, 11:37) *
Глюки: перестает работать основной цикл программы после вызова общей функции.
А нет ли у Вас в загрузчике переменных, которые не ложатся в стек - глобальных переменных. Может быть, загрузчик и приложение "дерутся" за один и тотже участок ОЗУ? Или стека в приложении не хватает?
Go to the top of the page
 
+Quote Post



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

 


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


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