Самопроверка

Вопрос 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 операций умножения. Используя алгебраические свойства операций, уменьшите их число.


Изменено:

Эффективный код для Cortex-M: 3 комментария

  1. >Вопрос 48. Какой тип целочисленной переменной лучше всего СПОЛЬЗОВАТЬ в микроконтроллере PIC24 и почему?

  2. Здравствуйте.
    Мучаю 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++){}

  3. Взял осциллограф и всё перепроверил. Оказалось что у меня таймер переполнялся.
    Думаю что мои коменты публиковать не нужно )

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

This site uses Akismet to reduce spam. Learn how your comment data is processed.