Самопроверка
Вопрос 48. Какой тип целочисленной переменной лучше всего спользовать в микроконтроллере PIC24 и почему?
Вопрос 49. Перепишите следующую структуру так, чтобы плотность кода улучшилась.
struct {
float field_a;
char field_b;
uint32_t field_c;
uint8_t field_d;
} DATA;
Вопрос 50. Подумайте, почему размер буфера лучше сделать кратным двум?
Вопрос 51. Оптимизировать код можно, не только зная особенности архитектуры. Допустим у вас имеется следующее уравнение:
y(x) = A · x3 + B · x2 + C · x + D
Здесь использовано 3 операции сложения и 8 операций умножения. Используя алгебраические свойства операций, уменьшите их число.
>Вопрос 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++){}
Взял осциллограф и всё перепроверил. Оказалось что у меня таймер переполнялся.
Думаю что мои коменты публиковать не нужно )