О главе
«Си для встраиваемых систем»
Это онлайн версия книги «Си для встраиваемых систем». В печатном формате её можно приобрести у нас в магазине, а в виде файла epub/mobi/pdf на площадке LeanPub.
Во встраиваемых системах вопрос производительности стоит более остро, нежели в приложениях настольных компьютеров. Неграмотно написанный код может замедлить работу в разы и привести к невозможности обработать входящий поток данных. Знание алгоритмов и структур данных в некоторых задачах может дать приличный прирост скорости выполнения, однако кроме этого есть и другая, менее очевидная для рядового программиста, возможность ускорить код — с умом использовать конструкции языка программирования, опираясь на особенности ядра и его инструкций.
>Вопрос 48. Какой тип целочисленной переменной лучше всего СПОЛЬЗОВАТЬ в микроконтроллере PIC24 и почему?
Здравствуйте.
Мучаю STM32F030F4P6 и изучаю вашу книгу.
Замерял сегодня скорость выполнения вышеприведённых циклов на разных оптимизациях кода O1 O2 O3.
И у меня получилось что цикл
for (i = 0; i < 1000000; i++) {} выполняется на любой оптимизации за 4800 микросекунд
цикл for ( i = 1000000; i != 0; i—){} выполняется за 4800 микросек. только на оптимизации O1 . При оптимизации O2 и O3 он выполняется за 10800 микросекунд.
цикл
n = 1000000;
do {
// code here
} while (—n != 0); на любой оптимизации выполняется за 10800 микросекунд
может это связано с компиляцией и оптимизацией именно для данного чипа.
но лучше я буду писать for (i = 0; i < 1000000; i++){}
Взял осциллограф и всё перепроверил. Оказалось что у меня таймер переполнялся.
Думаю что мои коменты публиковать не нужно )