|
|
  |
STM32 SysTick на Keil в ассемблере, Вопрос от новичка |
|
|
|
Mar 17 2014, 03:58
|
Участник

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

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

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

|
Просто мне нужен рабочий файл, написанный на ассемблере и инициализирующий сам stm32 и таймер на нем. Я понимаю, что многое из того, что я написал - лишнее, но, как говорится, прихоть руководства.
|
|
|
|
|
Mar 17 2014, 04:50
|
Участник

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

|
Спасибо, значит мои догадки в каком-то смысле были верными, теперь буду все переписывать.
|
|
|
|
|
Mar 17 2014, 08:05
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (Golikov A. @ Mar 17 2014, 13:40)  сю инициализацию можно написать самому по мануалу Я согласен, но всё же хочу отметить, что у "современных" армов, иногда зашкаливает не то чтобы сложность, сколько запутанность и невнятность описываемой периферии. Например, я неделю вылизывал простейший (без прерываний) драйвер для I2C (один мастер, два слейва) для STM32F051. И это при том, что у меня был мануал на родном английском  + CMSIS, куда я подглядывал + знания по теории функционирования I2C Или вот. Я не смог нормально завести SPIFI на LPC4337 для обмена с внешней нанд N25Q128. Пришлось делать на SPI. И это при том, что команды флешки описаны вполне нормально. А мануалы от NXP я считаю очень даже неплохо написаны. Но, ИМХО, как-то всё мудрёно описано. А ориентирование всего добра на CMSIS я вообще не одобряю... Нет чтобы простые примеры приложить в одном файле, так нет, разбирайся с сотней хидеров и сишников...
--------------------
Выбор.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|