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

 
 
> Avr- gcc добавить в функцию 10-60кб asm volatile ("nop"), необходимо для тестирования
Kris2007
сообщение Oct 29 2007, 09:03
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193



Нужно в функцию сделать на 60кб длиннее. Как об этом сказать компилятору gcc?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ReAl
сообщение Oct 29 2007, 11:20
Сообщение #2


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Kris2007 @ Oct 29 2007, 11:03) *
Нужно в функцию сделать на 60кб длиннее. Как об этом сказать компилятору gcc?

А зачем, интересно???
Вот так должно пойти (это на 20КБ выходит)
Код
extern const uint8_t always_zero;
void foo(void) {
    // тело функции ...

    if( always_zero == 0 ) return;
    // Чтобы дальнейшее не выбросил оптимизатор как unused code - завести где-то
    // переменную, про которую он не знает, что она всегда 0, и по ней делать возврат

    __asm__ volatile (
        ".rept 10000" "\n\t"
        "nop"         "\n\t"
        ".endr"
        ::
    );
}


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post



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

 


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


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