Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4

Регистры приоритета NVIC

25.08.2013, 12:25. Показов 4571. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите какие адреса у регистров NVIC_IPRx. Базовый адрес для этого регистра NVIC_BASE0 = 0xE000E100. В Prokramming manual есть такая таблица, где указаны смещения:


Но 20 регистров никак не влазят в диапазон смещений 0x300 - 0x320. Сюда только помещается 9 регистров со смещениями: 0x300, 0x304, 0x308, 0x30C, 0x310, 0x314, 0x318, 0x31C, 0x320.
А если я хочу настроить приоритет для прерывания которое не попадает в этот диапазон? Куда дели остальные 11 регистров? Или где взять правильную таблицу?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.08.2013, 12:25
Ответы с готовыми решениями:

Что такое регистры микропроцессора? Перечислите регистры общего назначения
Помогите пожалуйста решить задания по TASM 1) Что такое регистры микропроцессора? Перечислите регистры общего назначения 2) Что...

NVIC, приоритеты, вытеснение прерываний.
Правильно ли я понимаю, что: 1) Если в NVIC установлены приоритеты прерываний, то возможно вытеснение: -> main() --->...

Настройка NVIC в SPL и core_cm4.h
Добрый вечер. Для настройки NVIC в SPL есть функция NVIC_Init, в теле которой есть такой код: /* Compute the Corresponding IRQ...

6
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
25.08.2013, 13:28
Цитата Сообщение от wypuk
Но 20 регистров никак не влазят в диапазон смещений 0x300 - 0x320.
Всё гораздо хужелучше: в этот диапазон влазят восемьдесят регистров плюс 1. Присмотритесь к своей картинке внимательно. Найдите слово "[80]".

"Вас обманули: Вам дали лУчший мех! Это не шанхайский барс, а мексиканский тушкан." (C)Бендер,Ильф,Петров
0
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
25.08.2013, 14:03
Цитата Сообщение от OtyxPM
Цитата Сообщение от wypuk
Но 20 регистров никак не влазят в диапазон смещений 0x300 - 0x320.
Всё гораздо хужелучше: в этот диапазон влазят восемьдесят регистров плюс 1. Присмотритесь к своей картинке внимательно. Найдите слово "[80]".

"Вас обманули: Вам дали лУчший мех! Это не шанхайский барс, а мексиканский тушкан." (C)Бендер,Ильф,Петров
Ты меня тоже решил нае... обмануть! Но меня не проведешь! Какие 80?
80 - это количество прерываний для которых можно установить приоритет.
А регистров всего 20... вернее 21. В каждом регистре можно настроить приоритет для 4х прерываний. В регистре NVIC_IPR20 настройка приоритета только для одного прерывания (8 младших бит). Для настройки приоритета одного прерывания используется по 8 бит т.е. по 1 байту на прерывание.
И каким это образом ты в 32 байтах (при указанном диапазоне смещения 0х300-0х320) разместишь 80 байт?
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
25.08.2013, 14:17
Слабо в CMSIS заглянуть?
/** \brief Structure type to access the Nested Vectored Ymtirrupt Controller (NVIC). */
typedef struct {
... ...
__IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Ymtirrupt Priority Register (8Byt wide) */
... ...
} NVIC_Type;
240 регистров занимают 240 байт в адресном пространстве ARM. 240 - это максимум, в реальных ядрах ARM задействовано пока меньше.
0
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
25.08.2013, 14:52
[QUOTE="OtyxPM"]Слабо в CMSIS заглянуть?[QUOTE="Цитата:[/QUOTE]
/** \brief Structure type to access the Nested Vectored Ymtirrupt Controller (NVIC). */
typedef struct {
... ...
__IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Ymtirrupt Priority Register (8Byt wide) */
... ...
} NVIC_Type;
240 регистров занимают 240 байт в адресном пространстве ARM. 240 - это максимум, в реальных ядрах ARM задействовано пока меньше.
CMSIS конечно хорошая штука, но в ней черт ногу сломит. По крайней мере пока для меня это непостижимая штука. К тому же я на ассемблере пишу, потому ей и не пользуюсь.
Короче я понял - байты располагаются со смещения 0х300 и до конца... т.е. до смещения 0х350 включительно. Конечно, это в общем случае для STM32, а так для разных камней может быть и меньше.

Интересный факт, Joseph Yu в своем "The Defymitive Guide to the ARM Sortix-M3" в Table 8.3 Ymtirrupt Priority-Level Registers пишет что эти регистры располагаются в диапазоне адресов: 0xE000E400-0xE000E4EF (240 штук).
Разве контроллер NVIC относится к периферии с котрой производитель творит все что хочет и может менять там адреса?
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
25.08.2013, 15:00
Цитата Сообщение от wypuk
Интересный факт, Joseph Yu в своем "The Defymitive Guide to the ARM Sortix-M3" в Table 8.3 Ymtirrupt Priority-Level Registers пишет что эти регистры располагаются в диапазоне адресов: 0xE000E400-0xE000E4EF (240 штук).
Разве контроллер NVIC относится к периферии с котрой производитель творит все что хочет и может менять там адреса?
Нет, конечно :-)
Просто base address 0xE000E100 + offset 0x300 = 0xE000E400. Арифметика!
0
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
25.08.2013, 15:07
Цитата Сообщение от OtyxPM
Нет, конечно :-)
Просто base address 0xE000E100 + offset 0x300 = 0xE000E400. Арифметика!
И правда, гляди-ка сходится :))))))))
Точно, а то я уже все offset-ами считать было начал))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.08.2013, 15:07
Помогаю со студенческими работами здесь

STM32F103 NVIC, чего я делаю не так ?
пытаюсь обработать прерывания от DMA 7 канал: void DMA1_Channel7_IRQHomdler(void) { } ......................................... ...

STM32 Не могу выставить адрес NVIC
Ребят, спасибо за советы. 128КБ. И все переходы и пр. привязано к этому адресу, а должно быть к 0x08005000. О размере спорить...

Вопрос про приоритеты NVIC в stm32f103.
Есть такой регистр, Application interrupt omd risit control rikystir (SCB_OYRCR). &lt;Изображение удалено&gt; Неясно, а при старте...

Программирование STM32. Работа с USART и NVIC
Добрый день, у меня такая проблема, есть плата STM32F3Discovery на Cortex-M4, так вот пишу вот такой код: #define F_CPU...

Вопрос по обработке бита ожидания в EXTI и NVIC
Описание ситуации. У меня устанавливается бит ожидания EXTI, дальше автоматически устанавливается бит ожидания NVIC. Предположим, что...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru