Аллокация регистров

Компилятор старается выделить регистр процессора для каждой локальной переменной, которую вы используете в функции. Когда переменных больше, чем регистров, компилятор складывает избыточные переменные в стек. Такие переменные называются выгруженными (англ. swapped out), и доступ к ним, как нетрудно догадаться, более медленный. Повысить эффективность кода можно через уменьшение количества выгружаемых переменных.

В Cortex-M3 имеется 13 регистров общего назначения для выполнения операций с данными. При этом компиляторы могут использовать часть этих регистров при обработке сложных выражений, сохраняя там промежуточные значения. В результате оптимально использовать не более 12 локальных переменных в одной функции. Для того чтобы дать понять компилятору важность какой-либо переменной, используется ключевое слово register. Однако стоит понимать, что, во-первых, это всего лишь рекомендация, а во-вторых, разные компиляторы по-разному интерпретируют данное ключевое слово, поэтому лучше его не использовать.

0

Изменено:

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

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

    0

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.