Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cortex M3 и таймеры
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Omnicake
Здравствуйте, уважаемые. В данный момент занимаюсь переделкой простейшей ОСРВ под Cortex M3 процессоры. Возникло несколько вопросов, подскажите, пожалуйста:
- Как выглядит начальная инициализация для Cortex M3 процессоров, и как, используя IAR, правильно настроив его, запустить эту самую инициализацию?
- Если я буду использовать IAR, есть ли в нем возможность реализовать симуляцию работы с таймером для Cortex M3?
- Если возможно, скиньте пожалуйста проект с таймером для Cortex M3, в котором можно посмотреть распределение памяти и расположение векторов прерываний.
KnightIgor
Цитата(Omnicake @ Feb 16 2014, 08:03) *
Здравствуйте, уважаемые. В данный момент занимаюсь переделкой простейшей ОСРВ под Cortex M3 процессоры. Возникло несколько вопросов, подскажите, пожалуйста:
- Как выглядит начальная инициализация для Cortex M3 процессоров, и как, используя IAR, правильно настроив его, запустить эту самую инициализацию?
- Если я буду использовать IAR, есть ли в нем возможность реализовать симуляцию работы с таймером для Cortex M3?
- Если возможно, скиньте пожалуйста проект с таймером для Cortex M3, в котором можно посмотреть распределение памяти и расположение векторов прерываний.

Зависит от конкретного процессора.

Согласно стандарту CMSIS каждый производитель предоставляет к процессору два файла: описания таблицы векторов startup_xxxx.s (ассемблер) и system_xxxx.c, который содержит функции начальной базовой инициализации ядра. При создании проекта под IAR или KEIL с использованием конкретного процессора оболочка автоматически предлагает скопировать вышеуказаные файлы из репозитория в рабочий каталог проекта и включить их в него. К моменту вызова main() процессор будет уже проинициализирован (см. startup_xxxx.s, код вектора Reset_Handler).

Базовым, общим для всех Cortex Mx, таймером является SysTick. Необходимо реализовать (объявить функцию и написать необходимый код) обработчика прерывания от SysTick со стандартным именем SysTick_Handler(void), а в собственной инициализации в main() установить частоту для SysTick функцией Systick_Config() (находится в core_cm3.h).

На этом стандарт заканчивается. Процессоры могут (и содержат), как правило, массу других таймеров и иную периферию. Их использование описано в документации конкретного процессора.
kan35
Freertos.org - качайте дистрибутив, там есть примеры для IAR под разные М3, с инициализацией таймера, тактирования и всем, что нужно.
Omnicake
Спасибо большое.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.