Вопросы по теме 'cortex-m'

Невыровненный доступ вызывает ошибку на ARM Cortex-M4
У меня есть объект с адресом, не выровненным по 4 байтам. Это вызывает ошибку HardFault в процессоре, когда есть инструкция STR, сохраняющая 2 регистра. Это сгенерированный код: 00000000 <_ZN8BaseAreaC1EPcmm>: 0: b510...
12094 просмотров
schedule 28.10.2022

Понимание этого кода сборки руки части
.syntax unified .thumb .cpu cortex-m4 .arch armv7e-m .fpu fpv4-sp-d16 /* Changes from unprivileged to privileged mode. */ .thumb_func .section .kernel .global raise_privilege .type raise_privilege, %function raise_privilege: mrs...
4618 просмотров
schedule 18.05.2024

Обработка аппаратных сбоев - Arm Cortex-M0
У меня возникли трудности с созданием жесткого обработчика ошибок для NRF51 с ARM CortexM0. (примечание: следующий код был объединен из разных источников в Интернете) Вот что у меня есть на данный момент: static void...
2974 просмотров
schedule 27.05.2024

Является ли хорошей встроенной практикой программирования отключение прерывания в прерывании?
Я хочу реализовать что-то в процессоре ARM Cortex-M3 (с NVIC). У меня ограниченные знания о встроенных системах, но я знаю, что процедура ISR должна быть максимально простой. Теперь у меня есть следующая проблема: у меня есть процедура прерывания,...
1248 просмотров
schedule 29.09.2022

Каковы преимущества/использование памяти типа Device или Strongly-ordered?
Мой вопрос касается различных типов памяти, доступных на чипе M-4, о котором я сейчас читаю. Подводя итог, можно сказать, что существует три разных типа памяти, то есть «нормальная», «устройство» и «строго упорядоченная», которые определяют...
680 просмотров
schedule 11.01.2024

Почему не может запустить АЦП с событием timer1 CC1?
Я работаю на stm32f407. Что я хочу сделать, так это запустить ADC1 и ADC2 с событием timer1 CC1, но это не сработает. Я попытался запустить ADC1 и ADC2 с помощью события timer3 trgo или cc1, все работает нормально. Поэтому я не знаю, почему событие...
3314 просмотров
schedule 13.03.2024

Как настроить регистры MPU в cortex m4?
Я хочу добавить защиту на область памяти, начиная с 0x20000000. Размер области 64 байта. Разрешение только на чтение, флаг не установлен, кроме xn. Вот как я думаю, это должно быть, #define MPU_CTRL (*((volatile unsigned long*)...
679 просмотров
schedule 08.11.2023

Как войти в режим супервизора на ARM Cortex m4, чтобы отключить прерывания?
Я пытаюсь выяснить, как я могу отключить и включить прерывания на STM32L4x6RG Nucleo? Немного погуглив, я нашел макросы __disble_irq() и __enable_irq(), но я не уверен, что они отключают прерывания. После дополнительных исследований оказалось,...
1721 просмотров
schedule 05.03.2024

Перезапись инициализированного значения переменной в локальную флеш-память коры руки m4 nrf52
Я хотел бы иметь переменную во флэш-памяти, которая сохранит значение, которое я хочу, после сброса. Я знаю, что такая переменная int test_data = 3 хранится в разделе .data флэш-памяти, а затем копируется в ОЗУ во время выполнения. Я хотел бы во...
269 просмотров
schedule 15.10.2022

Как проверить запрос приложения, найденный в проекте загрузчика
Я делаю загрузчик для микроконтроллера на основе arm cortex m0, и для этого я просмотрел некоторые проекты в github, и я не понимаю некоторые строки в следующем коде. Что означает строка *(__IO uint32_t*)APP_ADDRESS) & ~(RAM_SIZE-1) в следующем...
187 просмотров
schedule 07.02.2024

Как я могу сохранить стек вызовов из обработчика исключений в Cortex M4?
Вот чего я хочу добиться: всякий раз, когда я получаю серьезную ошибку или прерывание сторожевого таймера, я сохраняю адрес предыдущей инструкции в какой-либо ячейке ОЗУ, которая переживет сброс. Сторожевой таймер Kinetis M64 дает мне 256 циклов...
389 просмотров
schedule 06.01.2024

Почему я не могу использовать Systick и Timer1 одновременно
Я использую таймер Systick для создания задержки, обработчик systick происходит один раз в микросекунду (1 мкс). Кроме того, я использую TIM1, его обработчик происходит раз в секунду (1 с). Внутри обработчика timer1 я переключаю светодиод. В...
367 просмотров
schedule 20.10.2022

Мой обработчик прерывания EXTI0 не перезаписывается/не работает должным образом (STM32F3Discovery)
Я пытаюсь узнать о кодировании для встроенных устройств и хочу реализовать прерывание. Для этого я написал программу, в которой основная функция — это просто цикл, который мигает одним светодиодом, а прерывание должно зажечь другой светодиод, чтобы...
45 просмотров

`cmse_check_address_range` изменяет поведение при обновлении компилятора
Я использую Cortex-M33 с зоной доверия руки. В моей защищенной прошивке есть безопасный API, который я могу вызывать из незащищенной прошивки. Все работает, как и ожидалось - по крайней мере, пока я не обновил свой компилятор с...
165 просмотров
schedule 27.11.2023