Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Заблокирован
1

Как прочитать регистр(ы) состояния отказа доступа к памяти в IAR Embedded Workbench?

07.06.2014, 09:40. Показов 1702. Ответов 2
Метки нет (Все метки)

Помогите разобраться пожалуйста.
В обработчике исключения MemManage_Handler нужно прочитать регистр(ы) состояния отказа доступа к памяти и передать его значение в основную программу.
В основной программе написать код создающий условия вызова указанного исключения.

Проект во вложении (файл проекта - test1). MemManage_Handler находится в файле startup_1986be9x.s
0
Вложения
Тип файла: zip Project.zip (705.5 Кб, 10 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2014, 09:40
Ответы с готовыми решениями:

Считывание кнопок и контроль светодиодов (MSP430, IAR Embedded Workbench, Cи)
Доброго времени суток форумчанам. Мне нужно запрограммировать Микроконтраллер MSP430. Для...

IAR Embedded Workbench for AVR 5.50.1 Full
IAR Embeddid Workbench for AVR 5.50.1 Full - удобный и эффективный компилятор, компоновщик и...

Среда программирования IAR Embedded Workbench для STM32. Ошибка при запуске
Доброго всем времени суток. Прошу помогите, нам. Именно нам. Товарищ подошел с рядом...

Как создать и загрузить библиотеку в iar system workbench?
Пользуюсь данной IDE и изучаю опорное руководство STM32. В процессе изучения само собой появился...

2
10214 / 6595 / 495
Регистрация: 28.12.2010
Сообщений: 21,164
Записей в блоге: 1
07.06.2014, 10:29 2
Так в чем разобраться-то? Код с проблемным участком приведите непосредственно в посту.
0
Заблокирован
07.06.2014, 12:46  [ТС] 3
Как спровоцировать вызов этого обработчика и как прочитать состояние вышеуказанных регистров.
Я нашел "скелет" функции:
C++
1
2
3
4
5
6
7
void MemManage_Handler(void)
{
  /* Go to infinite loop when Memory Manage exception occurs */
  while (1)
  {
  }
}
Добавлено через 2 часа 2 минуты
Правильно ли я делаю, что в main.c помещаю следующее:
C++
1
2
3
4
5
void MemManage_Handler(void) //Обработчик исключения ошибки защиты памяти
{  
    volatile uint32_t MMAR __attribute__((unused)); // MemManage Fault Address Register
    MMAR = (*((volatile unsigned long *)(0xE000ED34))); 
}
Будет ли считываться состояние?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2014, 12:46

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Msp430 IAR Embedded, преобразовать тетрады
На языке С: преобразовать две тетрады каждого элемента массива Х, длиной М, представленного в...

Msp430 IAR Embedded прерывания,таймер
Реализация прерывающей подпрограммы, реализующей таймер. Выдержка времени (в мс) задается в ячейке...

Ошибки при компиляции программы в iar embedded
Нашел в просторах интернета мини урок по созданию программ для микроконтроллеров stm32 в среде iar...

Реверсивный сдвиговый регистр в Workbench
Нужен реверсивный сдвиговый регистр в Workbench, реализованный на D-триггерах. Условие - сдвиг...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.