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

Как добраться до CPSR?

Проблема в слеудющем: хочу разрешить преррывания. Для этого надо сбросить I-флаг в CPSR-регистре. В моем IAR'е в документации упоминаются функции __get_CPSR и __set_CPSR, но только в документации, в header'ах их нигде нет. О функциях же __enable_interrupt и __disable_interrupt написано, что они работатют только в режиме супервизора. У меня есть сомнения в том, что этот режим у меня установлен. Соответственно, вопросы:1) Как можно установить и проконтролировать установку режима супервизора? 2) Как иначе можно доступиться до CPSR регистра и разрешить прерывания? 3) Исходя из вышеизложенного, я, кажется, уже дошел до того, чтобы самому написать asm-овские функции getCPSR и setCPSR. Как это сделать, чтобы оно работало?

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


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

Посмотрите в СиStartup.Асм, который подключен к проекту. Просто не переходите в юзер_моуд, и все. Тогда cpsr доступен будет, в т.ч. и функциям __enable_interrupt и __disable_interrupt..

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


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

В моем IAR'е в документации упоминаются функции __get_CPSR и __set_CPSR, но только в документации, в header'ах их нигде нет.

Это же вроде интринсик функции, зачем им хидер?

Один плюсик или два плюсика тоже в хидерах не описан, но все юзают и вполне довольны :rolleyes:

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


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

Сделай ассемблерную вставочку по изменению флага I. Только не пытайся делать это из режима User Mode.

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


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

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

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

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

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

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

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

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

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

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