реклама на сайте
подробности

 
 
> SysTick в Cortex-M3, Вопрос по регистрам.
Omnicake
сообщение Mar 24 2014, 00:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 12-01-14
Из: Омск
Пользователь №: 80 002



Здравствуйте, пытаюсь разобраться в логике включения таймера SysTick на Cortex-M3, которую использует стандартная библиотека CMSIS. Взять, например, команду загрузки в регистр SYST_RVR: за это дело в CMSIS отвечает команда вида "SysTick->LOAD=TimerTick", где TimerTick - выбранное время через которое таймер будет обнулять свое значение. В дизассемблере данная команда представляет из себя три команды на ассемблере:
LDR r0,[pc,#32] ; @0x08000210;
MOV r1,#0xE000E000;
STR r0,[r1,#0x14];

Команда MOV в данном случае, как я понял, пишет в R1 стартовый адрес всего регистра SysTick, затем командой STR смещает его на 14 бит, попадая на адрес SYST_RVR (однако при этом я почему-то не вижу, чтобы регистр R1 менялся). А вот, что делает первая строка, почему она взаймодействует с программным счетчиком, и где в этих трех командах происходит загрузка самого значения TimerTick, я не могу понять. Потому прошу помощи.
Проект запущен на Keil mVision, процессор STM32f10x.

Самому удалось разобраться, откуда берется TimerTick, но использование первой строчки все равно осталось загадкой.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.06031 секунд с 7
ELECTRONIX ©2004-2016