Кодирование нижнего уровня

Уилбот
Сб 27 февраля 2016 г., 4:48
Только что получил и настроил мой первый STM32 в Arduino - спасибо всем за вашу тяжелую работу по поддержке платформы.

Мой проект подражает игровому картриджу. Из моего тестирования я обнаружил, что стандартный Arduino был слишком медлен.

Что я вижу до сих пор с платой STM32F103, так это то, что использование DigitalWrite () скорость эквивалентна Arduino (тестируйте логический анализатор). Поэтому мне было интересно: есть ли способ получить прямой доступ к портам, как я с AVR C? Или мне придется использовать ST-Link и STM32Cube?

заранее спасибо!

Rogerclark
Сб 27 февраля 2016 г., 9:04
Я удивлен, что эта цифровая написание та же скорость, что и AVR, но в любом случае...

Да, вы можете легко получить доступ к аппаратному обеспечению напрямую

Digitalwrite Calls

gpio_write_bit (pin_map [pin].gpio_device, pin_map [pin].gpio_bit, val);

Видеть

https: // github.com/rogerclarkmelbourne/ ... ple/gpio.час

который сводится к
./dfu-util -v -a 0 -Z 65535 -U stm32-app-backup.hex dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2016 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ Opening DFU capable USB device... ID 0483:df11 Run-time device DFU version 011a Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing DFU mode device DFU version 011a Device returned transfer size 2048 Limiting default upload to 16384 bytes Upload [=========================] 100% 16384 bytes Upload done.

Уилбот
Солнце 28 февраля 2016 г., 17:46
Спасибо, Роджер. Это дает мне многое посмотреть на.

Mrburnette
Солнце 28 февраля 2016 г. 18:43
Уилбот написал:Спасибо, Роджер. Это дает мне многое посмотреть на.

Rogerclark
Солнце 28 февраля 2016 г., 8:26 вечера
@willbot

Один вещью, которую нужно иметь в виду, это то, что функции низкого уровня (кроме самого низкого уровня, где вы напрямую получаете доступ к регистрам с отображениями памяти), нестандартные.

Эта тема была рассмотрена много раз раньше... Но наша кодовая база была написана до выпуска STM и версии официальной периферийной библиотеки с открытым исходным кодом.

Таким образом, функции gpio_xxxxx не похожи на CMSIS.

В очень долгосрочной перспективе мы можем перейти к использованию CMSIS, но в этом случае я суспензирует, нам нужно будет сохранить функции gpio_xxx для устаревшей совместимости

Олли
Солнце 28 февраля 2016 г. 22:20
В случае, если вам нужно выполнить некоторые функции типа операционной системы, где важны монотонные операции, вы можете использовать стандартный битовой полосу, как определено для процессоров коры Arm Cortex.

Эта технология очень быстрая и позволяет довольно хороший код, который легко прочитать. Обращаясь к каждому биту индивидуально много сложностей в структурах регистрации можно избежать.

Вот пример этой технологии, используемой в STM32F429
http: // www.Эмблоки.орг/вики/учебные пособия/ ... it_banding

Ура, Олли

Mrburnette
Пн 29 февраля 2016 г., 13:43
Олли написал:В случае, если вам нужно выполнить некоторые функции типа операционной системы, где важны монотонные операции, вы можете использовать стандартную битовую полосу, как определено для процессоров коры Arm Cortex.

Уилбот
Пн 29 февраля 2016 г. 15:59
Спасибо за помощь. Мистер Бернетт, эти ссылки на Jeelabs были отличным способом начать - спасибо!

Я думаю, что мне нужно немного больше контроля над оборудованием, поэтому настройте себе среду в Keil μvision после этой ссылки https: // www.YouTube.com/watch?v = _qxotnp9giw (Приносим извинения, я изначально думал, что STM32Cubemx - это среда).

В настоящее время я загружаю на доску с демонстрацией FTDI и Flash Loader, следующие шаги здесь http: // stm32f4-discovery.com/2014/09/pr ... с uart/

Я знаю, что это STM32duino, так что надеюсь, что люди не возражают, что я задаю здесь несколько вопросов:

- Есть ли способ загрузить внутри μvision через UART? В идеале без необходимости обменять прыгуны, как в Arduino.
- Есть ли хорошая языковая ссылка для платформы?
- Есть ли хорошее место, где я могу узнать о настройке и использовании GPIO? Как говорит Роджер, они сильно отличаются от руки.
- Предполагая, что вы предпочитаете сохранить этот форум STM32Duino, есть ли еще одно место, где я могу получить помощь в кодировании и оборудовании для платформы?

Еще раз большое спасибо за такие проницательные и полезные посты!

Уилбот
Пн 29 февраля 2016 г. 16:00
П.С. У меня есть ST-Link V2 из Китая, но по крайней мере, это будет месяц, поэтому в настоящее время борется с моими FTDI.

ZMEMW16
Пн 29 февраля 2016 г., 17:05
Arduino STM32 определенно определенно

Для язычников, неверующих и сомневающихся Томаса : D
Сделайте Google 'Gnuarm Sate: STM32Duino.com ' - ooddles of the Stuff

Посмотрите на Gnuarmeclipse и учебное пособие для этого
Если вы хотите использовать OSS для компиляции ISTR, это предлагает экспорт из CubeMX в качестве TrueVision (??), этот источник можно затем втянуть в затмение. Кейл имеет пределы размера на бесплатном.

Есть много учебных пособий STM32/Eclipse/Windows, что наиболее раздражает при поиске Linux.

Стивен

Rogerclark
Пн 29 февраля 2016 г., 21:10
@willbot

Если вы идете по маршруту без arduino, то собственный форум STMS, вероятно, является лучшим местом для получения ответов.

Я не думаю, что кто -то на этом форуме использует Кейл. Afik, мы все используем GCC, но мы не все используем Arduino IDE. эн.g Некоторые люди используют Eclipse, некоторые используют Visual Micro Micro

Однако общим знаменателем является использование «arduino» формы API / HAL (полученная от проводки)

Стевех
Вт, март 01, 2016, 12:27
Уилбот написал:П.С. У меня есть ST-Link V2 из Китая, но по крайней мере, это будет месяц, поэтому в настоящее время борется с моими FTDI.