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

 
 
> 100 байт не хватает
Огурцов
сообщение Dec 25 2008, 20:25
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



В общем, называется "приплыли", допрограммировались - бутлодырь перестал вмещаться в размер бутсекции, т.е. в 2k. Последним делом добавлено нечто такое:

Код
void Bus_transmit_packet(uint8 aStatus)
{
    uint16 vCrc;

    Bus_transmit_byte(Slp_packet_end);
    Bus_transmit_byte(Slp_packet_end);
    Bus_transmit_byte(Slp_sysdev_program | Slp_response_mask);
//    vCrc = vxl_get_crc16(Vxl_crc_ccitt_initial_value, Slp_sysdev_program | Slp_response_mask);
    Bus_staff_n_transmit_byte(aStatus);
    vCrc = vxl_get_crc16(0x7976, aStatus);
    Bus_staff_n_transmit_byte(vCrc >> 8);
    Bus_staff_n_transmit_byte(vCrc & 0xFF);
    Bus_transmit_byte(Slp_packet_end);
}

Что занимает примерно 60 байт. Предварительное заполнение массива и передача массива хоть и напрашивалась явно, но почти ничего не изменила или даже хуже.
Однако, где бы наскрести еще сотню байт ? (таблица векторов еще не затронута, как и секции инициализации/финализации) Поделитесь, pls, примером оптимизации - сам я боюсь все порушить и грохнуть что-либо нужное.

M88, GCC(WinAVR-20060421), cкрипты линкера от WinAVR-20081205

Сообщение отредактировал Огурцов - Dec 25 2008, 20:26
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Dec 25 2008, 20:28
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Хоть и bb-offtopic.gif , но нелишне напомнить История одного байта.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 26 2008, 10:58
Сообщение #3


Гуру
******

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



Цитата(rezident @ Dec 25 2008, 23:28) *
Хоть и bb-offtopic.gif , но нелишне напомнить История одного байта.

Да не тот случай sad.gif Тут наверняка просто нечто писанное левой ногой и на 2K нахождение 100 байт не требует сверхестественных потуг.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 26 2008, 15:07
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(zltigo @ Dec 26 2008, 10:58) *
Да не тот случай sad.gif

Совершенно согласен, тут проза жизни, а там какая-то сказка, и если отбросить кудрявые фантазии афтара, от сказки останется абсолютный ноль.

Цитата(zltigo @ Dec 26 2008, 10:58) *
Тут наверняка просто нечто писанное левой ногой и на 2K нахождение 100 байт не требует сверхестественных потуг.

Ну зачем так голословно, левой ногой (на ваш взгляд) там писано от силы байт триста, остальное уже заоптимизировано реальным профи. Но это не означает, что сотню байт выжать невозможно, иначе я бы и вопроса поднимать не стал.


Цитата(ReAl @ Dec 26 2008, 14:02) *
Ну это явные кандидаты на
-mshort-calls, чтобы сразу компилятор не ставил, а --relax линкеру полировку наведёт.

--relax не помогает, -mshort-calls выжимает 110 байт, но только для m168, для m88 без изменений.



Цитата(Diz @ Dec 26 2008, 13:09) *
Посмотрите, есть ли у в строке для компилятора ключики
-ffunction-sections и -fdata-sections, а для линкера --gc-sections.

Есть. На всякий случай
Код
## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -DA40520101 -ffunction-sections -fdata-sections  -mshort-calls  -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d

## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2

## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS += -Wl,--verbose -Wl,--gc-sections  -Wl,--relax  -Wl,-Map=bootloader.map
LDFLAGS += -Wl,-section-start=.text=0x1800
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 26 2008, 16:06
Сообщение #5


Гуру
******

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



Цитата(Огурцов @ Dec 26 2008, 18:07) *
Ну зачем так голословно...

Ну не менее голословно, тем более с учетом некторых ранее изложенных на форуме взглядов на программирование, чем Ваше утверждение
Цитата
...уже заоптимизировано реальным профи.

Решить это просто - выложить сюда на обозрение. Полагаю, что найдется несколько желающих,ну скажим так, посоревноваться с "реальным профи" не только в абстрактных рассуждениях о постфактум указаниях компилятору в духе "ну сделай, хоть что-нибудь еще".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 26 2008, 16:59
Сообщение #6


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Dec 26 2008, 19:06) *
Решить это просто - выложить сюда на обозрение. Полагаю, что найдется несколько желающих,ну скажим так, посоревноваться с "реальным профи" не только в абстрактных рассуждениях о постфактум указаниях компилятору в духе "ну сделай, хоть что-нибудь еще".
+1
Да, автор, выкладывайте, в конце концов, бутлодырь не очень комерческая вещь..
А мы посмотрим - пооптимизируем...

только если решитесь выкладывать, то нужны точные указания по сборке,
ну там версия компилятора, тип проца, командная строка итд...
то есть если не будет проблем со сборкой, готов посмотреть/пооптимизировать..
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 26 2008, 17:40
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Вообще, меня не уполномачивали публиковать исходники, так что для текущей версии (+98 байт) это исключено. Но если гарантированно найдутся желающие с этой версией посоревноваться, что делать, я наверно напрягусь и соберу изначальный вариант (кажется байт 500-700 плюсом). В этом случае вопросов с авторскими правами не возникнет.


Цитата(zltigo @ Dec 26 2008, 16:06) *
Ну не менее голословно, [skipped] чем Ваше утверждение
Цитата
уже заоптимизировано реальным профи.


Смиялсо. Значит вы готовы ?

Цитата(zltigo @ Dec 26 2008, 16:06) *
постфактум указаниях компилятору в духе "ну сделай, хоть что-нибудь еще".

В общем, да. Но высказанные идеи, в определенном смысле, были полезны.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 26 2008, 19:00
Сообщение #8


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Огурцов @ Dec 26 2008, 20:40) *
Вообще, меня не уполномачивали публиковать исходники, так что для текущей версии (+98 байт) это исключено. Но если гарантированно найдутся желающие с этой версией посоревноваться, что делать, я наверно напрягусь и соберу изначальный вариант (кажется байт 500-700 плюсом). В этом случае вопросов с авторскими правами не возникнет.
Ну публикуйте уже....
А там посмотрим... думаю что без попыток оптимизации другими будет даже проще...
развлечемся под новый год...
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 26 2008, 19:27
Сообщение #9


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



http://www.atmel.com/dyn/resources/prod_documents/AVR231.zip


Я вот еще что подумал. Таблица векторов имеет опцию weak. Так может быть какой-нибудь подходящей по размеру функции задать определенный адрес, лежащий в области таблицы векторов, и последние, по идее, должны быть ей вытеснены. Может быть даже и предупреждения не будет. Как заставить gcc разместить функцию по определенному адресу ?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 26 2008, 19:29
Сообщение #10


Гуру
******

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



Цитата(Огурцов @ Dec 26 2008, 22:12) *

Как принято нынче говорить "слив защитан", кстати, если "это" названо исходниками вызвыающими уважение, то, то я их частично лет пять назад портировал на ARM - обычное интернетовско-студенческое творчество. В собственно загрузчике ошибки в обработке ошибок видны невооруженным глазом, стиль жутковатый, собственно сам AES написан в лоб. Немного (не ставил целью особо зажиматься - быстренько правил бросающееся в глаза) подправил AES дешифратор. Могу его выложить. Остальные правка/чистка под AVR возможно где-то тоже сохранилась в backup.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Огурцов   100 байт не хватает   Dec 25 2008, 20:25
|- - Огурцов   Помню. Фишка еще в том, что простое увеличение пам...   Dec 25 2008, 20:34
||- - ReAl   Цитата(Огурцов @ Dec 25 2008, 22:34) Фишк...   Dec 25 2008, 22:12
||- - Огурцов   Цитата(ReAl @ Dec 25 2008, 22:12) А почем...   Dec 26 2008, 06:39
|- - zltigo   Цитата(Огурцов @ Dec 26 2008, 20:40) Смия...   Dec 26 2008, 17:54
||- - Огурцов   Цитата(zltigo @ Dec 26 2008, 17:54) И опя...   Dec 26 2008, 18:11
||- - zltigo   Цитата(Огурцов @ Dec 26 2008, 21:11) Поче...   Dec 26 2008, 18:22
||- - Огурцов   Цитата(zltigo @ Dec 26 2008, 18:22) Либо ...   Dec 26 2008, 18:28
||- - zltigo   Цитата(Огурцов @ Dec 26 2008, 21:28) То ч...   Dec 26 2008, 18:45
||- - aesok   Цитата(Огурцов @ Dec 26 2008, 21:28) Могу...   Dec 26 2008, 18:45
|- - Огурцов   Дада, сделайте из этого 1.5-1.7 килобайта, чтобы о...   Dec 26 2008, 19:57
|- - zltigo   Цитата(Огурцов @ Dec 26 2008, 22:57) Дада...   Dec 26 2008, 21:45
|- - Огурцов   Цитата(zltigo @ Dec 26 2008, 21:45) Треп ...   Dec 27 2008, 06:21
|- - zltigo   Цитата(Огурцов @ Dec 27 2008, 09:21) он в...   Dec 27 2008, 10:37
|- - Petka   Цитата(zltigo @ Dec 27 2008, 13:37) Сейча...   Dec 27 2008, 12:33
|- - zltigo   Цитата(Petka @ Dec 27 2008, 15:33) Оффтоп...   Dec 27 2008, 13:17
|- - Огурцов   Цитата(Petka @ Dec 27 2008, 12:33) Которы...   Dec 27 2008, 20:23
|- - zltigo   Цитата(Огурцов @ Dec 27 2008, 23:23) разд...   Dec 27 2008, 22:49
- - SasaVitebsk   Недавно в IAR выдушил 400 байт. Возможно мои реком...   Dec 25 2008, 22:17
- - ReAl   Тьху, у меги88 и 168 одинаковые размеры бут-секции...   Dec 25 2008, 22:30
|- - Огурцов   Цитата(ReAl @ Dec 25 2008, 22:30) 2а) В G...   Dec 26 2008, 07:02
|- - aesok   Цитата(Огурцов @ Dec 26 2008, 10:02) Как ...   Dec 26 2008, 07:13
|- - Огурцов   Цитата(aesok @ Dec 26 2008, 07:13) Для эт...   Dec 31 2008, 07:40
|- - ReAl   Цитата(Огурцов @ Dec 31 2008, 09:40) Пыта...   Dec 31 2008, 08:27
|- - _Pasha   Цитата(Огурцов @ Dec 31 2008, 11:40) Если...   Dec 31 2008, 11:11
|- - Огурцов   Цепляет, он там косвенно, через полдюжины #include...   Dec 31 2008, 16:55
- - aesok   Bus_transmit_byte и Bus_staff_n_transmit_byte это ...   Dec 26 2008, 07:02
|- - Огурцов   Цитата(aesok @ Dec 26 2008, 07:02) avr-gc...   Dec 26 2008, 07:17
|- - Огурцов   Добавил фичи, теперь не хватает 98 байт. Почти уга...   Dec 26 2008, 10:06
- - _Pasha   Цитата(rezident @ Dec 26 2008, 00:28) Ист...   Dec 26 2008, 10:39
|- - ReAl   Цитата(_Pasha @ Dec 26 2008, 12:39) Опция...   Dec 26 2008, 14:02
- - Diz   Посмотрите, есть ли у в строке для компилятора клю...   Dec 26 2008, 13:09
- - SasaVitebsk   Спасибо. Поизучаем.   Dec 26 2008, 23:20
|- - zltigo   Цитата(SasaVitebsk @ Dec 27 2008, 02:20) ...   Dec 27 2008, 00:23
- - GetSmart   Огурцов, из чистого любопытства спрашиваю, почему ...   Dec 27 2008, 06:33
|- - Огурцов   Цитата(GetSmart @ Dec 27 2008, 06:33) Огу...   Dec 27 2008, 06:46
- - SasaVitebsk   Вот все мы не без изъяна. У каждого из нас есть св...   Dec 27 2008, 21:43
|- - zltigo   Цитата(SasaVitebsk @ Dec 28 2008, 00:43) ...   Dec 27 2008, 23:01
|- - Огурцов   Цитата(zltigo @ Dec 27 2008, 23:01) А, та...   Dec 28 2008, 09:13
|- - zltigo   Цитата(Огурцов @ Dec 28 2008, 12:13) Я та...   Dec 28 2008, 10:57
|- - Petka   Цитата(zltigo @ Dec 28 2008, 13:57) Ну си...   Dec 28 2008, 11:04
||- - zltigo   Цитата(Petka @ Dec 28 2008, 14:04) в неоп...   Dec 28 2008, 11:09
||- - Petka   Цитата(zltigo @ Dec 28 2008, 14:09) Тогда...   Dec 28 2008, 11:16
||- - zltigo   Цитата(Petka @ Dec 28 2008, 14:16) хотя-б...   Dec 28 2008, 11:20
|- - Огурцов   Цитата(zltigo @ Dec 28 2008, 10:57) Судя ...   Dec 28 2008, 12:29
|- - zltigo   Цитата(Огурцов @ Dec 28 2008, 15:29) почи...   Dec 28 2008, 14:15
|- - Petka   Цитата(zltigo @ Dec 28 2008, 17:15) Сколь...   Dec 28 2008, 15:59
||- - zltigo   Цитата(Petka @ Dec 28 2008, 18:59) XTEA 9...   Dec 28 2008, 16:05
||- - Petka   RE: 100 байт не хватает   Dec 28 2008, 16:35
||- - zltigo   Цитата(Petka @ Dec 28 2008, 19:35) за что...   Dec 28 2008, 16:39
||- - Petka   Цитата(zltigo @ Dec 28 2008, 19:39) 31 ве...   Dec 28 2008, 17:19
||- - zltigo   Цитата(Petka @ Dec 28 2008, 20:19) IARом ...   Dec 29 2008, 11:06
||- - Petka   Цитата(zltigo @ Dec 29 2008, 14:06) Что-т...   Dec 29 2008, 13:39
||- - singlskv   Цитата(zltigo @ Dec 29 2008, 14:06) А вот...   Dec 29 2008, 17:45
|- - Огурцов   Цитата(zltigo @ Dec 28 2008, 14:15) Уже о...   Dec 28 2008, 16:01
- - defunct   Огурцов: A. Нет смысла переходить на инструмент, ...   Dec 27 2008, 21:48
|- - Огурцов   Цитата(defunct @ Dec 27 2008, 21:48) asm ...   Dec 27 2008, 22:04
|- - defunct   Цитата(Огурцов @ Dec 28 2008, 00:04) Если...   Dec 27 2008, 22:14
|- - Огурцов   Цитата(defunct @ Dec 27 2008, 22:14) Что ...   Dec 27 2008, 22:32
|- - defunct   Цитата(Огурцов @ Dec 28 2008, 00:32) Како...   Dec 27 2008, 22:41
|- - Огурцов   Цитата(defunct @ Dec 27 2008, 22:41) DES ...   Dec 27 2008, 22:56
|- - defunct   Цитата(Огурцов @ Dec 28 2008, 00:56) #def...   Dec 27 2008, 22:57
- - Petka   Ещё как идея: Попробуйте вместо буржуевского AES и...   Dec 28 2008, 08:19
|- - zltigo   Цитата(Petka @ Dec 28 2008, 11:19) Наскол...   Dec 28 2008, 08:53
|- - Petka   Цитата(zltigo @ Dec 28 2008, 11:53) Он от...   Dec 28 2008, 09:34
|- - zltigo   Цитата(Petka @ Dec 28 2008, 12:34) Из 32б...   Dec 28 2008, 10:10
|- - Petka   Цитата(zltigo @ Dec 28 2008, 13:10) ... П...   Dec 28 2008, 10:19
- - _Pasha   C vs ASM (AVR): Вчера переписал на одном девайсе п...   Dec 30 2008, 09:48
|- - singlskv   Цитата(_Pasha @ Dec 30 2008, 12:48) C vs ...   Dec 30 2008, 10:25
- - Rst7   Цитатав С оверхед жуткий из-за приведения всего к ...   Dec 30 2008, 11:13
|- - singlskv   Цитата(Rst7 @ Dec 30 2008, 14:13) Где?IAR...   Dec 30 2008, 12:19
||- - aesok   Цитата(singlskv @ Dec 30 2008, 15:19) gcc...   Dec 30 2008, 13:26
||- - singlskv   Цитата(aesok @ Dec 30 2008, 16:26) Дело н...   Dec 30 2008, 13:49
||- - aesok   Цитата(singlskv @ Dec 30 2008, 16:49) про...   Dec 30 2008, 14:35
||- - singlskv   Цитата(aesok @ Dec 30 2008, 17:35) Так ка...   Dec 30 2008, 15:06
|- - _Pasha   Цитата(Rst7 @ Dec 30 2008, 15:13) Где? Вы...   Dec 30 2008, 12:24
- - Rst7   ЦитатаIAR в таких случаях действительно оптимизиру...   Dec 30 2008, 13:17


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

 


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


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