Здравствуйте, в своем курсовом проекте изучаю возможности микропроцессоров ARM механики и сейчас остановился на таймере SysTick в процессоре STM32, а именно его реализации только на языке ассемблер (работаю в Keil mVision). Нашел в интернете цикл статей по STM32 в том числе по таймеру с примером (http://easyelectronics.ru/arm-uchebnyj-kurs-systick-sistemnyj-tajmer.html), пытаюсь его проанализировать но не могу понять несколько вещей:
- В составе проекта включена библиотека CMSIS, которая включает в себя настройки для всех видов STM процессоров и с помощью кучи условий if else в составе кода находит настройки под конкретный процессор и использует их. Отсюда вопрос: могу ли я, заведомо зная модель своего микропроцессора выкинуть из файла библиотеки все остальные настройки, оставив только нужную и избавится от кучи условий?
- Помимо CMSIS в проекте присутствуют также иные файлы, которые, как я понимаю, нужны для запуска процессора, при запуске дебаггера программа скачет между ними, выполняя некоторые строчки кода то в одном, то в другом. При этом, опять же, не используя весь файл. Возможно ли выбрать только те строки, что используются для инициализации таймера и объединить их в один фаил?
- И последний вопрос, могу ли я, используя дизассемблер, выписать все команды, написанные на C++, переделывая их в ассемблер, будет ли итоговая программа, состоящая из одного фаила и содержащая все необходимые команды на ассемблере работать?
Вопросы, возможно, очень глупые, но материала по подобным тонкостям я не нашел (быть может плохо искал). Заранее спасибо.