Перейти к содержанию
    

Запрет компилятору на использование определенных регистров

STM32, uVision4.

 

Хочется использовать R5...R11 исключительно в обработчике прерывания (сэкономив на записи - восстановлении из стека), и, возможно, не только для промежуточных результатов, но и для хранения переменных между вызовами.

 

Посмотрел результаты компиляции основного цикла (на Си) -- используются только R0...R3 (вроде бы..) Правомерно ли считать, что при добавлении нового кода ситуация не изменится, а если нет, то есть ли возможность зарезервировать требуемые регистры?

Изменено пользователем Dot

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смените камень на что-нибудь с ядром ARM7TDMI (к примеру) и используйте FIQ - практически полностью соответствует Вашим требованиям :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы чего-то странного хотите. Регистры R0...R3 сохраняются и восстанавливаются в прерываниях аппаратно. Если обработчику прерываний их не хватает, то будут использованы и остальные регистры. Оставьте регистры компилятору, он неплохо разбирается как и когда их использовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смените камень на что-нибудь с ядром ARM7TDMI (к примеру) и используйте FIQ - практически полностью соответствует Вашим требованиям :)

 

Так когда работал с TDMI - радовался жизни!

 

 

Вы чего-то странного хотите... Оставьте регистры компилятору...

 

Нахрена они компилятору, который и распорядиться-то толком ими не умеет? Пусть ограничится песочницей R0...R3!

Обработчик прерывания пишу сам.

Изменено пользователем Dot

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...