Цитата(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).
На этом стандарт заканчивается. Процессоры могут (и содержат), как правило, массу других таймеров и иную периферию. Их использование описано в документации конкретного процессора.