Ознакомьтесь с нашей политикой обработки персональных данных
  • ↓
  • ↑
  • ⇑
 
00:08 

Десятики

Кто-то любит пирожки, а кто-то - нет.
Общий итог: собственно, итог

Ждём: Полярный, Ростов-на-Дону, Туапсе, Великие Луки, Великий Новгород, Дмитров, 200-летие победы России в Отечественной войне 1812 года.

Кстати, никто не в курсе, где можно сделать латунное покрытие металлического изделия?Оо

Log. Last 11.06.2012
запись создана: 21.12.2011 в 15:33

@темы: просто ня, монетики

17:34 

STM32F4. Критические секции.

Кто-то любит пирожки, а кто-то - нет.
ОС работает. Создание и завершение процессов в любой момент возможно.

читать дальше

<< Предыдущее Следующее >>

@темы: программизмы, ассемблер, stm32f4discovery, stm32, arm, электроника

17:51 

STM32F4. Динамические процессы.

Кто-то любит пирожки, а кто-то - нет.
ОС уже имеет миниальную поддержку событий и задержек. То есть, с задержками уже всё хорошо, а вот с событиями не очень.

читать дальше

<< Предыдущее Следующее >>

@темы: программизмы, stm32f4discovery, stm32, arm, электроника

16:07 

STM32F4. Задержки и события в ОС.

Кто-то любит пирожки, а кто-то - нет.
Пока ОС предоставляет только услугу переключения процессов. Однако в любой человеческой ОС нужны две важных вещи: программная задержка и ожидание события. Пока не истекло время или не наступило ожидаемое событие, процесс не получает управления. Таким образом можно ожидать, например, прихода символа по UART сколь угодно долго, никак не напрягая ядро.

читать дальше

<< Предыдущее Следующее >>

@темы: arm, stm32, stm32f4discovery, ассемблер, программизмы, электроника

15:23 

STM32F4. Базовая ОС.

Кто-то любит пирожки, а кто-то - нет.
Ладно. Наплюём пока на акселерометр (он нам понадобится потом). Сейчас главная задача — сделать примитивную вытесняющую ОС. Памяти дофига, можно не жадничать.
ОС я ни разу не писал, но надо ж с чего-то начинать. А для изучения асма и контроллера это самое то. Пока читать литературу не буду, попробую сообразить сам.

читать дальше

<< Предыдущее Следующее >>

@темы: программизмы, ассемблер, stm32f4discovery, stm32, arm, электроника

14:50 

STM32F4. Системный таймер.

Кто-то любит пирожки, а кто-то - нет.
Ну вот, теперь умеем программные прерывания. Но даже для простенькой вытесняющей ОС этого недостаточно.
Нужен ещё хотя бы один таймер.

Для начала можно рассмотреть SysTickTimer. Это такой специальный 24-битный таймер, который есть во всех ARMах и который умеет циклически считать с определённого заданного значения до нуля на частоте порядка тактовой. Ну и, конечно, имеет своё прерывание.
Основная его задача обычно — инициировать переключение процессов в ОС, ну и отсчитывать временные интервалы для разных событий внутри неё.

читать дальше

Кому не интересны возможности ядра по поддержке ОС и ассемблер, может перейти сразу на работу с периферией: Базовый таймер. Правда, там идёт уже в основном Си. Но переписать логику на ассемблер уже должно быть несложно и самостоятельно.

<< Предыдущее Следующее >>

@темы: программизмы, ассемблер, stm32f4discovery, stm32, электроника, arm

15:43 

Тадайма

Кто-то любит пирожки, а кто-то - нет.
А я приехал уже в Питер обратно =)

Повезло с датой билета — уже на следующий день, как мы проехали, размыло ЖД под Сегежей Оо И поезда фиг знает сколько стояли.

@темы: мии

20:38 

STM32F4. Программное прерывание.

Кто-то любит пирожки, а кто-то - нет.
Программа выполняется, светодиоды светятся - что может быть круче? Но тут не круто, что программа линейная и пора бы освоить работу с прерываниями.

Кстати, я узнал, что в новых архитектурах ARM есть смециальная последовательность команд для загрузки 32-битного числа в регистр.
MOVW Rn,<младшие 2 байта>
MOVT Rn,<старшие 2 байта>

Но в ассемблере есть честный макрос: MOV32.
То есть все предыдущие инструкции LDR Rn, =<32-битное число> можно спокойно поменять на MOV32 Rn, <32-битное число>, что я и сделал. Правда, эти правки я не стал выкладывать в виде отдельных файлов, ибо не суть.

читать дальше

<< Предыдущее Следующее >>

@темы: электроника, stm32f4discovery, программизмы, ассемблер, stm32, arm

20:09 

STM32F4. Низопоказометр.

Кто-то любит пирожки, а кто-то - нет.
На повороты проект предыдущий реагирует - это круто. Но чисто внешне реагирует невнятно, да и все переменные хранит в регистрах. Это не круто - регистров мало.

Для этого надо бы использовать память, наконец-таки. Объявим секцию переменных:


Название можно любое в пределах допустимого ассемблером. Оно создаёт секцию в объектном файле, но на результат не влияет. Все секции, объявленные с атрибутом READWRITE получают адреса начиная с 0x20000000 (выставляется в настройках проекта).

читать дальше

<< Предыдущее Следующее >>

@темы: программизмы, ассемблер, stm32f4discovery, stm32, arm, электроника

15:59 

Хочу найти на лесной дороге пачку по 500 рублей

Кто-то любит пирожки, а кто-то - нет.
Из детского сочинения. Такое укурное Оо

А через час поезд...

@темы: мии

06:41 

STM32F4. Акселерометр.

Кто-то любит пирожки, а кто-то - нет.
Хм. Пример проекта на ассемблере побольше. Добавились модули SPI и поверх него протокол работы с акселерометром LIS302DL. И краткий файл регистров периферии STM32F4xx (немного RCC, GPIO, SPI).
Светодиоды индицируют ускорения на отдельных осях, плюс один — нажатие кнопки.

читать дальше

<< Предыдущее Следующее >>

@темы: программизмы, ассемблер, stm32f4discovery, stm32, arm, электроника

00:22 

STM32F4. Модули на Си.

Кто-то любит пирожки, а кто-то - нет.
Бегающие светодиодики в разные стороны — это круто. Но когда весь код состоит только из ассемблера — это не очень. Поддерживать его становится сложно, да и все дела.

Для примера можно один из модулей предыдущего проекта написать не на ассемблере, а на Си и всё при этом будет работать. (см. ниже button.c).
Только не забывайте, что стандартная библиотека в этом проекте не инициализирована (мы перехватили её функцию инициализации), а значит, память не очищена, глобальные переменные не инициализированы и функции, работающие с кучей, будут работать некорректно.

читать дальше

<< Предыдущее Следующее >>

@темы: электроника, программизмы, ассемблер, stm32f4discovery, stm32, arm

23:46 

STM32F4. Модули и кнопка.

Кто-то любит пирожки, а кто-то - нет.
Бегающие светодиоды — это круто. Но когда весь код превращается в нечитабельную простыню — нет. К тому же надо бы добавить хоть какую реакцию на внешние события. Хоть кнопку ту же пусть чует, благо это очень просто.

Потому надо каждый проект разбивать на функционально обособленные модули. И не важно будет, на чём оные модули будут написаны =)
Но пока нас интересуют только ассемблерные.

читать дальше

<< Предыдущее Следующее >>

@темы: arm, stm32, stm32f4discovery, ассемблер, программизмы, электроника

21:17 

STM32F4. Подпрограммы.

Кто-то любит пирожки, а кто-то - нет.
Проект, моргающий светодиодами — это круто. Но более-менее серьёзный проект без подпрограмм не сотворить.
Потому надо хотя бы преобразовать проект к более приличному виду, то есть вынести процедуры зажигания и гашения светодиодов в подпрограммы.

В принципе, ничего особо нового в этом проекте нет, за исключением операций работы со стеком.

читать дальше

Пример программы: main.s.

<< Предыдущее Следующее >>

@темы: программизмы, ассемблер, stm32f4discovery, stm32, arm, электроника

19:50 

STM32F4. Светодиоды на ассемблере.

Кто-то любит пирожки, а кто-то - нет.
Пустой код, конечно, хорошо, но он ничего полезного не делает.

Нужно его заставить хотя бы светодиодами поморгать. Алгоритм настройки можно посмотреть в более ранней статье про язык Си, а тут я рассмотрю как энто делать на ассемблере.
Все команды должны перед собой иметь хотя бы один пробел! Иначе команда будет трактоваться как метка, что не здорово.

читать дальше...

Пример кода, моргающего светодиодами: main.s.

<< Предыдущее Следующее >>

@темы: программизмы, ассемблер, stm32f4discovery, stm32, arm, электроника

18:44 

STM32F4. Первый проект на ассемблере.

Кто-то любит пирожки, а кто-то - нет.
Что необходимо для проекта на ассемблере?
В первую очередь — создать проект обычным образом, как и для Си-проекта. Выбрать контроллер, создать папку, назвать проект, согласиться с добавлением загрузочного кода (startup_xxx.s).

читать дальше...

<< Предыдущее Следующее >>

@темы: электроника, программизмы, ассемблер, stm32f4discovery, stm32, arm

19:46 

Кто-то любит пирожки, а кто-то - нет.
Второй солнечный день подряд. Я точно в Чупе?Оо

На огороде гороха просто дофига. И, как назло, весь тонкий ещё — не вырос >< Хоть бы до вторника успел хотя бы немного...

@темы: мии

01:16 

Кто-то любит пирожки, а кто-то - нет.
Посмотрел тут Kami nomi zo Shiru Sekai, ничего, неплохо. Про дейт симы.


@темы: мии

00:58 

STM32F4. Моргаем светодиодиками

Кто-то любит пирожки, а кто-то - нет.
Теперь надо, чтоб была какая-то видимость от работы этого агрегата. Например, светодиодики по кругу бегали. То есть моргали.
Их там четыре штуки. На порту D, биты 12-15.

Общая идеология работы с периферией в АРМах такова:
1. Включаем питание соответствующей периферии (то есть тактирование). За это отвечают регистры RCC->AHB1ENR и подобные. Шин там несколько.
2. Настраиваем на тот режим, какой хотим.
3. Активно пользуем.

читать дальше

Готовый пример файла main.c.

<< Предыдущее Следующее >>

@темы: электроника, stm32f4discovery, stm32, arm

23:29 

STM32F4. Первый проект для Keil uVision

Кто-то любит пирожки, а кто-то - нет.


В кейле создаём новый проект под плату STM32F4Discovery:

1. Project -> New project.
Выбираем папку и называем проект. Сохраняем.
2. Предлагают выбрать микроконтроллер. Окай.
В папочке ST ищем STM32F407VG и выбираем (он на плату вбубенен). Если его нету -- обновите Кейл.
3. Он предложит скопировать файл инициализации. Да, пусть копирует, он нужен.
читать дальше

UPD от 19.04.2013: Интересно, нужен кому-нибудь последовательный мини-курс по си/асму в принципе, в контексте сей платы? Цикл данных заметок не являются в полном смысле обучающим, так как представляет собой конспекты моих попыток разобраться с периферией/ядром контроллера и ассемблером кортексов. Просто на память, чтоб посмотреть самые важные моменты и разного рода грабли, когда это понадобится снова.

UPD от 22.04.2013: могут быть проблемы с драйерами, в частности в Windows 8. чтобы всё установилось, надо в меню выбора режима загрузки (которое вызывается после биоса по F8) отключить проверку цифровой подписи. Возможно, есть иные пути решения проблемы, я не в курсе. В ХР такой проблемы нет точно.

Следующее >>

@темы: электроника, stm32f4discovery, stm32, arm

Няшки-вкусняшки любят карандашики.

главная