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

 
 
> Оптимизация программы для NIOS II, Различное поведение программы при включении/отключении оптимизации
Artemvvv
сообщение Jul 8 2011, 10:45
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 11-11-09
Из: Minsk
Пользователь №: 53 562



Имеется простой кусок кода:
Код
while (1)
{
    IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, count & 0x01);
    delay = 0;
    while (delay < 10000000) {
        delay++;
    }        
    count++;
}

По идее должно меняться значение count через некоторую задержку, создаваемую выполнением цикла. Когда выбрана опция оптимизации Off (оптимизация выключена), то программа работает как и должна. Если включить любой тип отпимизации - Level1,2,3, Size, то компилятор выкашивает из программы цикл, типа его результат нигде не используется:
Код
delay = 0;
while (delay < 10000000) {
    delay++;
}

Получается, что в каждой итерации цикла count выводится в порт и увеличивается на 1, без задержки.
Вопрос в том, как правильно сделать программную задержку при включенной оптимизации, чтобы компилятор ее не удалил?

Сообщение отредактировал Artemvvv - Jul 8 2011, 10:46
Go to the top of the page
 
+Quote Post



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

 


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


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