|
|
  |
100 байт не хватает |
|
|
|
Dec 26 2008, 21:45
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Огурцов @ Dec 26 2008, 22:57)  Дада, сделайте из этого 1.5-1.7 килобайта, чтобы осталось байт триста для моих фич, и защитаем. Пока я вижу от вас только пустой треп, про разные ARM, в т.ч. Треп это, простите, по вашей части. И не только в этой теме  Цитата Вообще, я вас за язык не тянул... Разумеется нет, но мимо безответственного трепа я обычно стараюсь не проходить. Теперь к делу, извините, пришлось отвлечься - встречал жену из Праги. Весь этот бред писанный китайским студентом вычитывать не стал, а только AES.c поправил. Именно поправил явное, радикальной переделкой заниматься не стал, ибо только на этом сэкономил 172 байта, что поболе желаемых 100 будет. Бинарник 1732, что тоже уже меньше озвученных Вами 1,7 K Все это при том, что я чувствую AVR хуже, чем ARM и вообще почти год для AVR вообще ничего не писал, посему ориентировался на просто 'C'. Было: Код 1 046 bytes in segment CODE 6 bytes in segment INITTAB 36 bytes in segment NEAR_F 522 bytes in segment NEAR_Z
1 082 bytes of CODE memory (+ 6 bytes shared) 522 bytes of DATA memory Стало: Код 874 bytes in segment CODE 6 bytes in segment INITTAB 36 bytes in segment NEAR_F 522 bytes in segment NEAR_Z 910 bytes of CODE memory (+ 6 bytes shared) 522 bytes of DATA memory Листинги обеих AES.c и моего AES.zlt.c вариантов и бинарник в приложении. Вот так. P.S. Извиниться не хотите? Смешливый Вы наш....
Прикрепленные файлы
aes.rar ( 7 килобайт )
Кол-во скачиваний: 67
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 27 2008, 06:21
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(zltigo @ Dec 26 2008, 21:45)  Треп это, простите, по вашей части. И не только в этой теме  Ога. Посмотрите лучше на первую страницу - выссказалось несколько человек и каждый дал по одному и даже нескольким вариантам. Всю вторую страницу заняли вы вашим флудом. И чей же треп ? Цитата(zltigo @ Dec 26 2008, 21:45)  Именно поправил явное, радикальной переделкой заниматься не стал, ибо только на этом сэкономил 172 байта, что поболе желаемых 100 будет. Бинарник 1732, что тоже уже меньше озвученных Вами 1,7 K Я правильно понял первую строку листинга: IAR Atmel AVR C/C++ Compile - это IAR ? Так вот IAR, если вы хоть чуть-чуть читали, ничуть не устраивает, и, кроме того, он вполне справляется и без ваших потуг. На GCC, если я еще не забыл, это же самое примерно 2.7k. Деразайте. Цитата(zltigo @ Dec 26 2008, 21:45)  Извиниться не хотите? Смешливый Вы наш.... Будет решение - извинюсь. Пока от вас только флудотреп.
|
|
|
|
|
Dec 27 2008, 10:37
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Огурцов @ Dec 27 2008, 09:21)  он вполне справляется и без ваших потуг. На GCC, если я еще не забыл, это же самое примерно 2.7k. Как всегда врете и глупо изворачиваетесь. GCC, коему по Вашему утверждению, не хватало 100 байтов для Ваших фич теперь вдруг и без Ваших фич стало не хватать более 700.... Кто-то хотел сэкономить 100 байтов? Результат я дал. При этом, GCC столь-же благосклонно, как и IAR отнесется к очевидным изменениям - поминаемые 100 байт Вы получите и от GCC. Кроме того, поскольку , как я и предполагал, действительно все в этом образчике от Atmel писано левой ногой.Это вызвало с Вашей стороны только Цитата .....уже заоптимизировано реальным профи Смиялсо. То, потратив еще минут 15-20 можно сбросить еще 5-10% и это только в aes.c и это будет не предел, а просто результат потраченых нескольких десятков минут. В Вашей, как я теперь, совершенно определенно могу утверждать, писанине нужно править и соответственно экономить можно много больше. P.S. Цитата(SasaVitebsk @ Dec 27 2008, 02:20)  Спасибо. Поизучаем. Сейчас прошелся еще разок, бегло, в рамках просто 'C' без IAR/AVR наворотов но теперь Код 790 bytes in segment CODE 12 bytes in segment INITTAB 32 bytes in segment NEAR_F 10 bytes in segment NEAR_I 10 bytes in segment NEAR_ID 512 bytes in segment NEAR_Z 832 bytes of CODE memory (+ 12 bytes shared) 522 bytes of DATA memory На 250 байт похудел почти килобайтовый aes дешифратор.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 27 2008, 12:33
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(zltigo @ Dec 27 2008, 13:37)  Сейчас прошелся еще разок, бегло, в рамках просто 'C' без IAR/AVR наворотов но теперь Цитата(Огурцов @ Dec 27 2008, 09:46)  Здесь уже писал - стоит денег, т.е. в соотношении качество/цена проигрывает любому из фришных. Из фришных (чисто по чужим отзывам) считаю только GCC преемлемым вариантом. И неплохим даже. Оффтоп: Насколько я понимаю у топикстартера проблеммы с IAR по лицензионным причинам. Однако есть "KickStart edition of IAR Embedded Workbench". Который можно использовать абсолютно бесплатно (и разумеется лицензионно) для приложений размер кода которых меньше 4К. Сразу скажу что не являюсь пользователем продукции IAR. Однако если топикстартеру действительно важен результат, то и мой совет может пригодиться
|
|
|
|
|
Dec 27 2008, 13:17
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Petka @ Dec 27 2008, 15:33)  Оффтоп: Насколько я понимаю у топикстартера проблеммы с IAR по лицензионным причинам.  и при этом нет проблем с ворованными борландовскими дельфями... Да проблемы у топикстартера совсем в другом  Цитата Однако есть "KickStart edition of IAR Embedded Workbench". Который можно использовать абсолютно бесплатно (и разумеется лицензионно) для приложений размер кода которых меньше 4К. Кстати, действительно да! Если, вдруг, реально удастся ужать хоть процент-другой за счет использования IAR. Хотя и GCC совсем не плох и надо специально постараться  , дабы заставить его сгенерить код сильно худший, по утверждению Огурцова, чем IAR - 2,7K вместо 1,7K  .
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 27 2008, 20:23
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(Petka @ Dec 27 2008, 12:33)  Который можно использовать абсолютно бесплатно (и разумеется лицензионно) для приложений размер кода которых меньше 4К. Да, это ценное замечание, 10x. Извиняюсь, что ответил не сразу - сделал на круг четыреста километров - раздал зарплату сотрудникам. Сотрудники довольны - я доволен. Я доволен - сотрудники довольны. Вот такая вот ПОС. Цитата(zltigo @ Dec 27 2008, 13:17)   и при этом нет проблем с ворованными борландовскими дельфями... Да проблемы у топикстартера совсем в другом  Приведите, чтоли, ссылку, где я говорил, что у меня установлена ворованная дельфи. У меня установлена лицензионная MS Windows XP, лицензионная MS Visual Studio и много фришного софта, в том числе WinAVR. Цитата(zltigo @ Dec 27 2008, 10:37)  Как всегда врете и глупо изворачиваетесь. Ой, не надо, изворачиваетесь и наговариваете здесь только вы. По фрейду наверно - подсознательно убеждаете себя, что у нас все плохо и гораздо хуже, чем у вас ))) Цитата(zltigo @ Dec 27 2008, 10:37)  GCC, коему по Вашему утверждению, не хватало 100 байтов для Ваших фич теперь вдруг и без Ваших фич стало не хватать более 700.... Обычно (обычные), люди понимают уже со второго раза. Если с третьего все еще непонятно, то у человека явно проблемы со здоровьем, объяснять ему дальше - пустая трата времени. Сделать исключение ? Ок, на пальцах. Оригинальный код в GCC - это где-то 2,7. Оптимизированный тем, кого вы обозвали "левой ногой" - это где-то 1,9 (это не означает, что он не смог бы ужать дальше, просто у него не было необходимости). Далее я еще ужал до где-то 1,7. После чего переписал некоторые места по-своему, убрав ненужное и добавив нужное. Получилось где-то 2,0. После этого переписал протокол обмена для возможности работы на общей шине и в пакетном режиме. Получилось 2,1. После этого задал вопрос. Цитата(zltigo @ Dec 27 2008, 10:37)  Кроме того, поскольку , как я и предполагал, действительно все в этом образчике от Atmel писано левой ногой. Не надо ля-ля. Про атмел вы узнали только к концу страницы. А в начале кричали, что тот профи оптимизирует "левой ногой". Да я думаю он как раз с вами левой ногой не напрягаясь и справится. Кстати, если бы знали, про кого смели так нехорошо выссказться, покраснели бы в крапинку и полгода не появлялись на форуме. Фильтруй базар (с) На будущее. Цитата(zltigo @ Dec 27 2008, 10:37)  В Вашей, как я теперь, совершенно определенно могу утверждать, писанине нужно править и соответственно экономить можно много больше. Давайте, давайте. Условия задачи озвучены - вперед. Цитата(zltigo @ Dec 27 2008, 10:37)  На 250 байт похудел почти килобайтовый aes дешифратор. О, давайте еще байт четыреста... и можно будет продолжать с вами разговор про GCC и левые ноги. зы: утром хотел попросить вас удалить все ваши посты и мои, в части ответов на них. Но по поскольку вернулся в хорошем настроении, а кроме того, утром решил сию задачу (aka принципиальную невозможность использования бутлодыря), можем, в принципе, продолжать. Флудить. Или прикручивать фенечки. Или пусть олл решает. Сейчас отключена проверка CRC лодыря, и запись в EEPROM. Первое - хотелось бы, второе - на практике и не нужно совсем, так, лишь для распальцовки. Итоговый размер - ровно 2k.
|
|
|
|
|
Dec 27 2008, 21:43
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Вот все мы не без изъяна. У каждого из нас есть свои ограничения. Иногда, возможно даже чеще чем надо, не хватает силы воли для получения новых знаний (я о себе к примеру). А иногда, входишь в "транс" и за неделю проделываешь работу, которую откладывал больше года.  Давайте вспомним, что до Нового Года остался совсем пустяк и простим друг другу свои мелкие недостатки. Я, к сожалению, совсем что-то не чувствую приближения праздника в этом году. Может виноват в этом Step 7. Скорей бы его в топку и назад к компилятору С.
|
|
|
|
|
Dec 27 2008, 21:48
|

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

|
Огурцов:
A. Нет смысла переходить на инструмент, когда сразу известно, что новый иструмент даст результат хуже чем старый. А WinAVR соптимизирует хуже чем IAR, это факт.
B. В комплекте с STK500 идет CD от Atmel где куча всего фришного, в т.ч. и IAR Kick-start. Объем вашей программы 2K, ограничение фришного IAR'а, как отметил Petka - 4K.
C. Считаю, что бутлоадер на "C" для секции в 2K - это извращение. Бутлоадер - это программа, которая не нуждается в модификации и сопровождении.. Она пишется 1 раз и используется для всех проектов. Вот и подумайте своей головой, может нафиг этот Си, (тем более вы как-то доказывали, что Си - отстой, а паскаль и asm рулит). Почему ж решили применить С для задачи для которой он дает результат хуже чем ASM? Напишите бутлоадер один раз на ASM, ужмите всё по самые "немогу" конкретно для AVR и радуйтесь. Будет бесплатно и влезет возможно и в 1K.
|
|
|
|
|
Dec 27 2008, 22:14
|

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

|
Цитата(Огурцов @ Dec 28 2008, 00:04)  Если ближе к оригиналу, то хороший _макро_асм "рулит". Но похоже нет его. А то, что идет от атмел, даже на нормальный не тянет, не то что на хороший. Поэтому вынужденно перешел на си. И на GCC - осознанно. Что есть в _макро_асм чего нельзя сделать в AVR-ASM? И препроцессор в нем есть, и макросы поддерживаются. Чего нехватает-то? У меня все толстые бутлоадеры (всмысле не по объему, а по функциональности) написаны на ASM. В 2K секцию у меня влазит: 1. TCP стек. 2. Шифрование. 3. Modbus протокол (over TCP и over 485). 4. Проверка целостности основной программы. 5. Загрузка программы из I2C eeprom'a. в 1K секцию, то же самое за вычетом п.1 и п.5.
|
|
|
|
|
Dec 27 2008, 22:32
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(defunct @ Dec 27 2008, 22:14)  Что есть в _макро_асм чего нельзя сделать в AVR-ASM? Вспомню - скажу. Что-то у меня не получилось. Что-то типа вложенных макрасов. Да и в целом, на pdp11 писалось как-то легче. Толи просто моложе тогда был. Цитата(defunct @ Dec 27 2008, 22:14)  2. Шифрование. Какое ? А в целом, все равно в асме смысла не вижу. Кусок переписать, если нужно - да. Полностью - нет.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|