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

 
 
> 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:55
Сообщение #2


Местный
***

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



Загрузчик и приложение одновременно не работают, поэтому им не из-за чего драться. В загрузчике есть глобальные переменные, но они используются только в нем,а в общих функция не используются. Общие функции не используют глобальных переменных, только те, что им передали во время вызова (все функции с параматерами). При компиляции приложения глянул map файл, там оценака стека:CSTACK=0x5B RSTACK=0x1A. У меня в xcl файле CSTACK=0x120 RSTACK=0x60
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 01:35
Рейтинг@Mail.ru


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