08.03.2014, 19:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: IAR Embedded Workbench
Откройте хекс-файл, там слева специальный счетчик байт. Нужно только перевести в десятичный вид
|
|
|
|
08.03.2014, 19:54
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: IAR Embedded Workbench
Сообщение от gary2007
|
Где правда и какова длина кода на самом деле?
|
Истинная длина - та, которая наибольшая. ![Обижен](images/smilies/icon_beee.gif)
main.lst - это только то, что из main.c вошло в программу. А есть же ещё startup и вектора. К тому же main.lst - листинг компилятора, а итоговый размер даёт линкер. Что говорится в выводе после "Linking
...."?
P.S. Зачем в map лезть чтобы размер посмотреть? Можно выдь в IDE увидеть всё.
P.S. 2. Таблицу векторов тоже можно почикать - экономия в размере. Правда небольшая в случае тинки.
|
|
|
|
08.03.2014, 20:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
|
Re: IAR Embedded Workbench
niXto, последние строчки хекса надо смотреть?
Код:
|
:1003C00019F0F901EDDF01C0E6DF049610E0883195
:1003D000910768F3089500000000FFFF000000008F
:0703E0000000000000000016
:00000001FF
:00000001FF |
3E0 = 992 байт
_Артём_ где смотреть в IDE?
в закладке BUILD при Make пишет:
Код:
|
Building configuration:
Updating build tree...
2 file(s) deleted.
Updating build tree...
main.c
Linking
Total number of errors: 0
Total number of warnings: 0 |
Вся программа "сбита" в один файл main.c
извне только два инклюда
#include ‹ioavr.h›
#include ‹intrinsics.h›
Дудка под программатором пишет лог:
Цитата:
|
.hex contains 1000 bytes
avrdude.exe: reading on-chip flash data:
|
__________________
Мелочи не решают главного. Они решают всё!
Последний раз редактировалось gary2007; 08.03.2014 в 20:48.
|
|
|
|
08.03.2014, 21:04
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: IAR Embedded Workbench
Сообщение от gary2007
|
niXto
Код:
|
:0703E0000000000000000016
:00000001FF
:00000001FF |
3E0 = 992 байт
|
Можно и так. 3E0 + 7 = 999 -почти 1000.
Сообщение от gary2007
|
_Артём_ где смотреть в IDE?
в закладке BUILD при Make пишет:
[CODE]Building configuration:
Updating build tree...
2 file(s) deleted.
Updating build tree...
main.c
Linking
|
Попробуйте так:
Сообщение от gary2007
|
#include ‹ioavr.h›
#include ‹intrinsics.h›
|
Но startup и вектора тоже есть...main - не вся программа.
|
|
|
|
08.03.2014, 21:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
|
Re: IAR Embedded Workbench
Сообщение от _Артём_
|
:0703E0000000000000000016
|
Т.е. все таки по хексу надо два поля складывать 07 и 03E0.
Это наверно проще всего, потому что после тех установок что предложили Вы, теперь в закладке Build пишется то же что и в MAP-файле:
Цитата:
|
987 bytes of CODE memory (+ 12 range fill )
|
Кстати, что такое 12 range fill ?
__________________
Мелочи не решают главного. Они решают всё!
|
|
|
|
08.03.2014, 22:01
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: IAR Embedded Workbench
Сообщение от gary2007
|
Т.е. все таки по хексу надо два поля складывать 07 и 03E0.
|
Это логично,ведь 03E0 - адрес первого байта.
Сообщение от gary2007
|
Вы, теперь в закладке Build пишется то же что и в MAP-файле:
|
Ну да - не надо файл искать. Посмлтрел вывод и всё ясно.
Сообщение от gary2007
|
Кстати, что такое 12 range fill ?
|
Видимо линкер заполнил 12 байт чем-то...Наверное неиспользуемые вектора командой RETI (есть такая галочка). А может ещё чем-то.
|
|
|
|
08.03.2014, 22:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: IAR Embedded Workbench
Сообщение от _Артём_
|
Можно и так. 3E0 + 7 = 999 -почти 1000.
|
999 не может быть в принципе, т.к. у АВР 16-битная организация ПЗУ программ, т.е. всегда четное количество байт
|
|
|
|
08.03.2014, 22:44
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: IAR Embedded Workbench
Сообщение от niXto
|
999 не может быть в принципе
|
Не может, но IAR не знает об этом - всё в байтах считает. ![Улыбка](images/smilies/icon_smile.gif)
Но дело в том, что flash не только код может хранить, но и данные. И размер данных может быть нечётным.
Сообщение от niXto
|
т.к. у АВР 16-битная организация ПЗУ программ, т.е. всегда четное количество байт
|
Ну это понятно, что записывать flash только словами можно. Но данную ситуацию можно понимать так: записали N слов, но с последнем слове один байт заполнили мусором, то есть можно ещё в байтовую константу вписать и всё равно влезет.
|
|
|
|
09.03.2014, 08:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: IAR Embedded Workbench
В ИАРе разве нет такой опции? Как в бесплатной и всеми ругаемой визуал-ассемблер среде?
*Слово = 2 байта
|
|
|
|
09.03.2014, 10:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: IAR Embedded Workbench
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Подниму тему WinAVR vs IAR
|
oleg110592 |
Микроконтроллеры, АЦП, память и т.д |
5 |
24.10.2015 14:06 |
Часовой пояс GMT +4, время: 05:26.
|
|