roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 фев 2025, 20:14

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Впрос про память МК
СообщениеДобавлено: 04 фев 2007, 12:34 
Не в сети

Зарегистрирован: 04 фев 2007, 00:53
Сообщения: 45
Откуда: Питер
Здраствуйте.
Хотелось бы узнать, как можно определить размер который займет HEX файл в памяти МК.
Я для экспериментов купил платку AVR Butterfly c mega169 на борту.
У этого МК 16К памяти программ. Исходники поставляемые с платой в конечном итоге формируют HEX размером примерно 39К, который туда записывается без проблем.
ВОПРОС: КАК ОН ТУДА ВЛЕЗАЕТ ? =)
Кстати записываю я все через RS232 с помошью Boot сектора который кстати отнимает от памяти программ аж целый килобайт =)
Когда я начал дописывать к этим исходникам свои модули то уперся как раз в бут сектор ,AVRProg начал ругаться 8
Изображение
Единственный выход который я пока нашел, это просто свотреть в дизасеблере не упирается ли прога в начальный адрес загрузчик


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впрос про память МК
СообщениеДобавлено: 04 фев 2007, 13:22 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
GIGAWAT писал(а):
Я для экспериментов купил платку AVR Butterfly c mega169 на борту.


Оличная штука.

HEX - содержит еще и служебную информацию.

Советую использовать CVAVR  или  WinAVR  и книгу  по этому набору "SmileyMicro C Programming Book and Butterfly"

http://slil.ru/23767326      пароль 1

на сайте SmileyMicros.com лежит только первая глава.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 фев 2007, 13:52 
Не в сети

Зарегистрирован: 04 фев 2007, 00:53
Сообщения: 45
Откуда: Питер
Насчет служебной инфы я как то неподумал спасибо =).

Я пользуюсь WinAVR(GCC) т.к. он дает самый компактный код да и исходники к платке написаны для GCC, плюс на GCC написан Linux =), выбор очевиден.
Книжку Smiley использовал как нач пособие. Ну и конечно же читал ваш курс, СПАСИБО ВАМ ЗА ВАШ ТРУД =)

Кстати не подскажете , вот такой девайс http://megachip.ru/item.php?item_id=172042 будет работать с VMLAB ?

Очень уж хочется JTAG попробовать =) но AVRStudio уже достало...хочу перейти на VMLAB,а если сей девайс не заработает с VM то так и придется мучатся со студией  :?
Просто связка AVRStudio 4.12+WinAVR виснет при компиляции больших проектов и обработке програмных задержек delay (в данном случае исходников для Butterfly), поэтому приходится в ProgrammersNotepad билдить .elf файл а потом уже его симулировать и отправлять через com порт в бутлоадер, а там уж mega169 сама себя программирует.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 фев 2007, 14:53 
Не в сети

Зарегистрирован: 11 авг 2006, 01:02
Сообщения: 69
Откуда: ----
GIGAWAT писал(а):
Просто связка AVRStudio 4.12+WinAVR виснет при компиляции больших проектов и обработке програмных ...


Вы устанавливали 4 сервис-пак на AVRStudio, если нет то поставте.

Анатолий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 фев 2007, 17:05 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
WinAVR + VMLAB  не виснет и пример есть в примерах VMLAB


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 фев 2007, 19:35 
Не в сети

Зарегистрирован: 04 фев 2007, 00:53
Сообщения: 45
Откуда: Питер
aesok писал(а):
GIGAWAT писал(а):
Просто связка AVRStudio 4.12+WinAVR виснет при компиляции больших проектов и обработке програмных ...


Вы устанавливали 4 сервис-пак на AVRStudio, если нет то поставте.

Анатолий.


Действительно поставил сервис-пак и все заработало =)
Осталось лишь решить проблему с размеров кода, т.к. при использовании стандартных настроек код не влезает а при использовании make файла который уже был с проектом все нормально, и это при том что уровни оптимизации и в настройках и в файле -0s.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 фев 2007, 23:55 
Не в сети

Зарегистрирован: 11 авг 2006, 01:02
Сообщения: 69
Откуда: ----
GIGAWAT писал(а):
Осталось лишь решить проблему с размеров кода...


Вы можете использовать утилиту avr-size:
$ avr-size main.elf
  text    data     bss     dec     hex filename
 12578      18     887   13483    34ab main.elf

text - код программы - флеш
data - даные во флеш, используються для инициализации переменных.
bss - RAM - занатая под переменые.

GIGAWAT писал(а):
Осталось лишь решить проблему с размеров кода, т.к. при использовании стандартных настроек код не влезает а при использовании make файла который уже был с проектом все нормально, и это при том что уровни оптимизации и в настройках и в файле -0s.


Немного сократить размер кода можно если использовать GCC опцию -mcall-prologues. Добавте ее в Project options/Custom options/[All files].
И полностью пересоберите проект (Rebuild All).

Анатолий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 фев 2007, 00:11 
Не в сети

Зарегистрирован: 04 фев 2007, 00:53
Сообщения: 45
Откуда: Питер
Спасибо за совет, код действительно стал меньше ...
Но все равно еще слишком велик , для сравнения хекс файл который получается при работе из студии размером 42Кб, а при использования внешнего мэйк файла размер уменьшается до 38Кб.

При завершении компиляции из под студии разультат следующий:
AVR Memory Usage
----------------
Device: atmega169
Program:   15302 bytes (93.4% Full)
(.text + .data + .bootloader)
Data:        252 bytes (24.6% Full)
(.data + .bss + .noinit)

У меня подозрение лишь насчет + .bootloader)
Как видно память еще не концилась но код уже залез в область бутлоадера о чем сообщает ощибка которую я показал на кортинке в начале топика.
Для справки еще предоставляю два мейк файла:
1)маленького размера (2,5Кб), сгенерирован плагином GCC для АВРСтудии
2)большого размера (10Кб), азят из файлов которые идут в комплекте к исходников к плате AVR Butterfly(исходники с сайта SmileyMicros.com, оптимизированные под GCC)
Кому не лень посмотрите их, может кто знает что как ? =)
Заранее спасибо 8)  :roll:


Вложения:
makefile_2.txt [10.28 КиБ]
Скачиваний: 308
Makefile_1.txt [2.69 КиБ]
Скачиваний: 276
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 фев 2007, 02:27 
Не в сети

Зарегистрирован: 11 авг 2006, 01:02
Сообщения: 69
Откуда: ----
Попробуйте в AVRStudio включить эти опции:
-funsigned-bitfields
-fpack-struct
-fshort-enums


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 фев 2007, 13:30 
Не в сети

Зарегистрирован: 04 фев 2007, 00:53
Сообщения: 45
Откуда: Питер
aesok писал(а):
Попробуйте в AVRStudio включить эти опции:
-funsigned-bitfields
-fpack-struct
-fshort-enums

Спасибо, попробуем =)
А не подскажете где можно посмотреть полный список параметров
(на русском желательно) ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 фев 2007, 00:45 
Не в сети

Зарегистрирован: 04 фев 2007, 00:53
Сообщения: 45
Откуда: Питер
ПРОБЛЕМА РЕШИЛАСЬ !!!  8)
Оказалось, что нужно было всего лишь навсего добавить одну библиотеку из списка во в этом окошке:
Изображение
После этого размер выходного кода уменьшился аж на 2 кб =)
Так вот...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 фев 2007, 13:44 
Не в сети

Зарегистрирован: 01 май 2006, 23:00
Сообщения: 71
Откуда: Ukrain
GIGAWAT писал(а):
Очень уж хочется JTAG попробовать =) но AVRStudio уже достало...хочу перейти на VMLAB,а если сей девайс не заработает с VM то так и придется мучатся со студией  :?
Просто связка AVRStudio 4.12+WinAVR виснет при компиляции больших проектов и обработке програмных задержек delay (в данном случае исходников для Butterfly), поэтому приходится в ProgrammersNotepad билдить .elf файл а потом уже его симулировать и отправлять через com порт в бутлоадер, а там уж mega169 сама себя программирует.


Попробуй IAR код получается не менее компактный, а может даже и более, но глюков в нём точно меньше и в дабавок поддерживает JTAG


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO