Закрыто, фокус переходит на ядра на основе HAL - улучшение F4 Core (на основе Libmaple)

victor_pv
Чт 13 апреля 2017 г. 13:49
** Фокус был перенесен на ядра на основе HAL MX для F4 **
Danieleff выпустил ядро ​​HALMX, которое, по -видимому, использует те же ресурсы, что и Libmaple и обеспечивает совместимость с несколькими MCU, поскольку уровень HAL MX похож между ними между ними. С F4 Libmaple Core не обеспечивает измеримое преимущество и является старше и неполным, лучше сосредоточиться на HAL MX.
В настоящее время есть 2, один от Danieleff и один чиновник от STM.
Мы рекомендуем любому, кто хочет использовать или разработать для F4 работать над этими ядрами, а не на либмапле.

********************************************* ********************************************

** Этот пост будет обновлен с большим прогрессом или ссылками на конкретные потоки, доски и т. Д. **
Все,

Кажется, что вокруг дешевых плат F4 есть много импульса, будь то от контроллера полета (405), от Alibaba (407 и другие).
Я думаю, что если мы немного организуем работу, которая должна быть выполнена на этих досках, мы могли бы, как группа быть более продуктивной.
Вместо того, чтобы 4 человека тратят свое время на то, чтобы мигать по светодиоду, 1 человек работает над GPIO, 1 человек работает над чем -то другим, и мы соединяем его с четкими инструкциями и после проверки, если нам нужны изменения в ядре, мы отправляем чистые PRS Роджер.

Кто -нибудь еще думает, что это хорошая идея? Если так, с чем бы вы помогли?

-Victor_pv: Я добровольно проверяю библиотеку SPI и добавляю поддержку DMA с функциями, похожими на F1. После завершения я постараюсь поработать над библиотекой I2S. Далее, если может быть 2 -е место в зависимости от процентов, порт Freertos.

Blackboard: http: // wiki.STM32duino.com/index.PHP?title = STM32F407

Если кто -то хочет помочь в тестировании или разработке, вы можете опубликовать в этой ветке, и я добавлю его в список.

Работающий:
GPIO (несколько человек тестируют, кажется, работает)
Serialusb (Stevenstrong)
Freertos 8.2.1

Требуется тестирование и, возможно, работа:
SPI (VICTOR_PV)
DMA (Victor_pv)
i2s (victor_pv)
Адвокат
Цем
Таймеры
Шир
Freertos 9.0.0 (возможно, уже работает с 8.2.1 сработал из коробки)
i2c
USARTS
SDIO
Кан (Майкл)
FSMC (Pito?)
-Стивенстронг: Делая немного очистки и создал новые файлы платы для черной платы. Параллельные дисплеи и USB.

Стандарты, которым следует следовать:
Стандарты кодирования: http: // docs.Leaflabs.com/static.Leaflab ... Ндард.HTML
ОЗУ будет выделен из нормального блока SRAM по умолчанию. CCM не используется и еще не определена в сценариях линкеров.
Названия доски: Общая серия STM32F407V, Общая серия STM32F407Z, и т. д

2 текущие репо:
На основе порта Аэровад Либмапл: https: // github.com/stevstrong/arduino_s ... F4_variant
На основе файлов Libmaple F2-F4 и текущих STM32Duino F1: https: // github.com/vicopropv/updated_stm32f4

Прогресс:
USB работает репо Стива, все еще нужно проверить в Викторе.
CCM RAM может использоваться в репо Victor's (в настоящее время используется для PIN_MAP и .Площадь BSS, обеспечивает повышение скорости в тесте Whetstone)
FPU работает на обоих репо. Подробности в отдельном потоке.
GPIO работает на обоих. Различная реализация в последнем коде Libmaple может потребовать изменения.

Текущие проблемы:
Все не подтверждено как работа.
Pito, пытаясь заставить USART работать по тарифам MB, ответьте на эту ветку, если вы можете его проверить.

Рик Кимбалл
Чт 13 апреля 2017 г. 14:55
... Удален как название, похоже, изменилось, чтобы быть специфическим (на основе Libmaple) .. Хотя, конечно, я мог бы закончить пропустить это в первый раз, прочитав ...

AG123
Чт 13 апреля 2017 г., 17:49
Я бы подумал, что «мигание светодиода» неизбежно, если мы работаем над конкретной доской, так как лично мне нужно знать, жив ли доска «живой» :ржу не могу:
Прямо на данный момент, я думаю, что на STM32 {v, z} et6_black (эта конкретная плата) есть некоторые «головные боли» на оптимальных сопоставлениях по умолчанию относительно того, какие физические булавки на заголовках будут делать SPI, которые будут Сделайте аналог (предполагая профиль A1- A6 Arduino Uno), который собирается сделать i2c и которые будут делать Uart

Один из проблем, казалось, заключался в том, что дизайнер платы положил вспышку SPI, а SPI1 «заголовки» и разъем NRF24 - все на одних и тех же штифтах
Это, вероятно, означало бы, что если вы собираетесь использовать SPI и I2C на разъеме NRF24, используйте вспышку SPI (часть платы) и приведите ЖК -дисплей на SPI1, могут быть некоторые перекрытия / конфликты
Но, тем не менее, на у платы много разбитых пин, и я думаю, что это не должно быть слишком большой проблемой, поскольку «пользователь» может позже переназначить булавки, которые они хотят использовать для скажем, SPI + I2C

Одна из других вещей - это «пробовать все» в некоторой степени, это «процесс обучения» человека, а потом сказать, возможно, участвовать в разработке конкретного компонента. На самом деле это можно рассматривать как процесс «тестирования», как даже скажем, чтобы начать с разработки интерфейса SPI для F4, я могу начать с составления существующих кодов ветвей F4 и выяснить, где он разбивает. Соответственно, ветвь кодов F4 некоторые его части в значительной степени работают хорошо
http: // www.STM32duino.com/viewtopic.PHP?F = 39&T = 1976
Следовательно, я подумал, что нам нужно посмотреть, что еще сломается, и решить, как это исправить (E.глин. Сделайте общий код с филиалом F1 в кодах?)

Стивестронг
Чт 13 апреля 2017 г. 18:02
Виктор, ваш пост был как раз вовремя.
Я только начал прикасаться к Spi lib...

Короче говоря, что я сделал до сих пор:
- Очистил весь проект F4 от STMF2 и F1 определяет
- сгенерированный новый вариант для платы Black_f4
- сгенерировал black_f4.CPP и .H Файл в новой папке Root Variant, которая содержит довольно подробную информацию о использованных штифтах платы.

Blinky Пример по -прежнему работает как с новой (black_f4), так и старой диско в качестве цели платы.
Я должен совершить эти изменения в моем репо GitHub, я думаю...

AG123
Чт 13 апреля 2017 г. 18:08
Вы, ребята, бегаете быстро, я все еще пытаюсь достичь того, что Пито опубликовал 24 часа назад, может быть, я должен сначала моргнуть :ржу не могу:

Пито
Чт 13 апреля 2017 г. 18:23
Так что те, кто сейчас в последний раз, будут первыми, и те, кто первым будет последним..

AG123
Чт 13 апреля 2017 г., 19:17
клонированный репозиторий от https: // github.com/stevstrong/arduino_stm32
Позвольте мне начать мигать в мой светодиод 1 -й, я бы попробовал филиал F4 :ржу не могу:

Пито
Чт 13 апреля 2017 г., 19:50
Есть Chibios Hal, 100% бесплатно для коммерческого использования, по лицензии Apache.
http: // www.Чибиос.org/dokuwiki/doku.pH ... : Хэл: старт
http: // www.Чибиос.org/dokuwiki/doku.pH ... L: Особенности
Он охватывает почти все периферийные устройства F407 и зрелый, хорошо документированный (825 страниц PDF) и хорошо поддерживается.
В: Может быть, это повторно повторно здесь используется здесь??

victor_pv
Чт 13 апреля 2017 г. 20:03
Рик Кимбалл написал:... Удален как название, похоже, изменилось, чтобы быть специфическим (на основе Libmaple) .. Хотя, конечно, я мог бы закончить пропустить это в первый раз, прочитав ...

Sheepdoll
Чт 13 апреля 2017 г. 20:26
Меня мигали 2 года назад...

Где я увязал, был USB CDC и в конечном итоге MIDI.

Другое место болота - это сопоставление штифтов/применение штифтов. Вот где я начал писать сценарии, и, похоже, ST выбрал этот подход.

Когда я попытался объединить материал, не являющийся хэтом, была слишком много зависимости от регистра, чтобы сделать две библиотеки взаимозаменяемыми. Как принять код для STMF429 и подготовить его в STMF401, а затем свяжите этот код с STMF407?

С Maple STMF103 у нас была хорошая простая доска с хорошей простой макет. Самый простой способ - просто указать, что это аппаратный пакет и поддерживаемая карта штифтов. Что контроллеры Nucleos, Discos и Quad Copter должны использовать филиалы STM HAL и просто научиться жить с раздутом кода.

victor_pv
Чт 13 апреля 2017 г. 9:10 вечера
Sheepdoll написал:Меня мигали 2 года назад...

Где я увязал, был USB CDC и в конечном итоге MIDI.

Другое место болота - это сопоставление штифтов/применение штифтов. Вот где я начал писать сценарии, и, похоже, ST выбрал этот подход.

Когда я попытался объединить материал, не являющийся хэтом, была слишком много зависимости от регистра, чтобы сделать две библиотеки взаимозаменяемыми. Как принять код для STMF429 и подготовить его в STMF401, а затем свяжите этот код с STMF407?

С Maple STMF103 у нас была хорошая простая доска с хорошей простой макет. Самый простой способ - просто указать, что это аппаратный пакет и поддерживаемая карта штифтов. Что контроллеры Nucleos, Discos и Quad Copter должны использовать филиалы STM HAL и просто научиться жить с раздутом кода.

Sheepdoll
Чт 13 апреля 2017 г. 9:17 вечера
victor_pv написал:
Возможно. Я думаю, что попытка сделать одну основную работу над F407, F401 и F429 составляет, чтобы попытаться заставить основной работы F1 на F103, F105 и F107. Насколько я знаю, никто даже не пробовал другие MCU в серии F1.

Стивестронг
Чт 13 апреля 2017 г., 22:15
Я думаю, что как только один вариант имеет большинство периферийных устройств, внедрено, другие периферийные устройства для других вариантов могут быть легко добавлены/отключены по мере необходимости.

И последнее, но не менее важное: существует дополнительное «обучение, выполняя» эффект для «нового» устройства F4 : Geek:

Я только что совершил свои изменения в моей репо "Black_f4_variant".
Я также отправил пиар для Роджера, может быть, он может найти время, чтобы проверить это.

AG123
Пт 14 апреля 2017 г. 12:29
Просто несколько быстрых вопросов, чтобы я попытался наверстать упущенное
1) Вы начинаете с https: // github.com/rogerclarkmelbourne/arduino_stm32 в качестве базисного репозитория?
2) Вы начинаете с ARDUINO_STM32/STM32F4 и в основном используйте варианты/Discovery_F407 в качестве отправной точки
2a) Затем создайте эскиз, который работает на вышеизложенном?
или
3) Начнете с создания копии arduino_stm32/stm32f1 и сделав ее как arduino_stm32/stm32f4
4) и создание новых вариантов STM32F4/?
4a) и создайте эскиз, который работает (3) и (4)?

----
Упс исправления, я думаю, я бы проверил ветвь Стива Black_f4_variant, нужно немного поспать, здесь почти утро здесь : D

@victor et.ал
Я согласен с тем, что Хэл, возможно, является лучшим способом вперед, так как, очевидно, просто сравнивая прогресс (я еще не пробовал их)
Св
http: // www.STM32duino.com/viewtopic.PHP?F = 48&T = 1943
и
Danieleff's STM32Generic
http: // www.STM32duino.com/viewtopic.PHP?F = 42&T = 1966

казалось, добивался дальнейшего прогресса, начиная с HAL ST

Libmaple в некоторой степени создает HAL или API для подключения к аппаратному обеспечению ST, единственное отличие, которое я вижу, состоит в том, что Core и STM32Generic в основном создают взаимодействие API (от Arduino/Maple), чтобы HAL ST HAL

Стивестронг
Пт 14 апреля 2017 г. 6:35
Я начал с arduino_stm32, который я использовал также для синей таблетки, поэтому в основном шаги 1), 2) и 2a).

Что касается пути, я думаю, мы можем найти хороший способ сочетать Libmaple с HAL.
Например, USB уже настроен как структура HAL, см https: // github.com/rogerclarkmelbourne/ ... aple/usbf4.
Так что это просто должно быть включено в процесс сборки правильно.
Я думаю, что это будет моя следующая цель.

Другие периферийные устройства могут быть включены аналогично или с использованием только стиля Libmaple, если требуется только небольшая работа.

Пито
Пт 14 апреля 2017 г. 7:48
Я бы назвал их
"Generic STM32F407V Series"
"Generic STM32F407Z Series"

Стивестронг
Пт 14 апреля 2017 г. 16:02
Обновлять:
Мне удалось получить USB -сериал с Platformio.
Прилагается переработанные файлы Platformio: один файл определения платы, а другой - сценарий сборки.
Будут два новых USB -устройства, распознанные Win10 X64. Им нужен специальный драйвер, потому что виртуальный драйвер COM -порта от ST не работает.
Я нашел Здесь (немецкий форум) Рабочая версия, не может прикрепить из -за размера файла.
РЕДАКТИРОВАТЬ
Оригинальный виртуальный драйвер ST может работать, вам нужно разкапливаться, запустить исполняемый файл, а затем перейти к C: \ Program Files (x86) \ stmicroelectronics \ Software \ Virtual Comport Driver в Windows Explorer и дважды щелкните любого DPINST_AMD64.Exe для 64 -битных систем, или dpinst_x86.Exe за 32 бит.

Мне нужно больше времени, чтобы адаптировать пути в Arduino Ide. Я дам тебе знать, когда закончу.

Стивестронг
Пт 14 апреля 2017 г., 17:35
Blinky Project, включая активированный последовательный интерфейс, построенный с Arduino, работает, чек мой репо.
Общение с сериалом USB еще не проверено, но, по крайней мере, признано Win10.
STM32F4USBDEVICES.JPG
STM32F4USBDevices.JPG (27.81 киб) просмотрено 284 раза

Пито
Пт 14 апреля 2017 г., 17:42
Ваши размеры оперативной памяти неверны в файле досок с 2 вариантами..
Почему вы называете это board_black_f4?
У нас сегодня есть 2 черные 407 доски, по крайней мере, ветеринар и Zet One..
Давайте по крайней мере согласитесь с именами :)

Bluepill/Blackpill/Redpill - это «Generic STM32F103C Series» и т. Д.
Таким образом, 407Vet и 407zet должны быть названы:

Общая серия STM32F407V
Общая серия STM32F407Z

Стивестронг
Пт 14 апреля 2017 г., 17:59
Пито, спасибо за комментарии.

Не могли бы вы указать, где и что я должен изменить?

Пито
Пт 14 апреля 2017 г., 18:05
доски.TXT Line 11 и 39 .. 192K (или 128K?? это 128 + 64 с 405/7 чипсами)
Имена: это должно быть согласовано каким -то образом - как вызвать варианты, доски, пункты меню, как вызвать переключатели -dxxxxxx и т. Д.
Некоторые стандарты.. Моя рекомендация - согласиться с тем, что сейчас, чем раньше, тем лучше..
Например - сегодняшний «Стандарт именования», который я вижу в репо: genericSTM32F103V.name=Generic STM32F103V series genericSTM32F103V.build.variant=generic_stm32f103v genericSTM32F103V.build.board=GENERIC_STM32F103V genericSTM32F103V.menu.device_variant.STM32F103VE=STM32F103VE genericSTM32F103V.menu.device_variant.STM32F103VE.build.cpu_flags=-DMCU_STM32F103VE genericSTM32F103Z.name=Generic STM32F103Z series genericSTM32F103Z.build.variant=generic_stm32f103z genericSTM32F103Z.build.board=GENERIC_STM32F103Z genericSTM32F103Z.menu.device_variant.STM32F103ZC=STM32F103ZC genericSTM32F103Z.menu.device_variant.STM32F103ZC.build.cpu_flags=-DMCU_STM32F103ZC

Стивестронг
Пт 14 апреля 2017 г., 18:20
доски.TXT LINE 11 не изменилась, так что с самого начала это было неправильно.
Строка 39 Я немного изменился, я также не был уверен в правильном значении.

О именовании, я ничего не имею против "Generic_stm32f407v"/z для имен папок.
IDE имен: «Общий STM32F407VET6 (Flash 512KB, 128+64 КБ ОЗУ)»

Любые другие мнения?

Проблема, которую я вижу, заключается в том, как назвать другой, Меньшая, общая плата F407VET6. У него будет другая распина, чем черный F4...
Это будет Blue_ (pill_) f4?
Я думаю, что это позже должно быть общим, так как у него действительно нет ограничений на использование PIN -кода, в отличие от Black F4.

Пито
Пт 14 апреля 2017 г., 18:26
На основании текущего стандарта именования - Стандарт именования для STM32F407V и Z: genericSTM32F407V.name=Generic STM32F407V series genericSTM32F407V.build.variant=generic_stm32f407v genericSTM32F407V.build.board=GENERIC_STM32F407V genericSTM32F407V.menu.device_variant.STM32F407VE=STM32F407VE genericSTM32F407V.menu.device_variant.STM32F407VE.build.cpu_flags=-DMCU_STM32F407VE genericSTM32F407V.menu.device_variant.STM32F407VE.build.ldscript=ld/stm32f407ve.ld genericSTM32F407V.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f407v_dfu.ld genericSTM32F407Z.name=Generic STM32F407Z series genericSTM32F407Z.build.variant=generic_stm32f407z genericSTM32F407Z.build.board=GENERIC_STM32F407Z genericSTM32F407Z.menu.device_variant.STM32F407ZE=STM32F407ZE genericSTM32F407Z.menu.device_variant.STM32F407ZE.build.cpu_flags=-DMCU_STM32F407ZE genericSTM32F407Z.menu.device_variant.STM32F407ZE.build.ldscript=ld/stm32f407ze.ld genericSTM32F407Z.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f407z_dfu.ld

Пито
Пт 14 апреля 2017 г., 18:48
Проблема, которую я вижу, заключается в том, как назвать другую, меньшую, универсальную плату F407Vet6. У него будет другая распина, чем черный F4...
Это будет Blue_ (pill_) f4?
Самый простой ответ - у нас около 15 баллов F103, но только несколько общих, никто не жаловался. Не уверен, что это правильный ответ, хотя :)
Представьте себе растущий спрос со стороны сообщества STM32Duino, производители начнут производить почти одинаковые 407 досок, с 6 различными цветами печатной платы и с 20 размерами ПХБ и с 20 -контактными вариантами назначения.. Кто тогда будет поддерживать все это? Мы не используем нумерацию PIN-кода Arduino, но PC12, PG4-тип типа. Периферийные устройства почти одинаковы. Единственным важным отличием может быть размер вспышки.

Стивестронг
Пт 14 апреля 2017 г., 18:58
Да, но голубые таблетки и кленовые mini разные...

Пито
Пт 14 апреля 2017 г., 19:01
Они разные, потому что исторические причины. Вы можете легко использовать вариант серии 103CB с MM.
С этими F4XX есть Zillion Alternate Functions и, возможно, Pin Remmapings. Это трудно управлять с помощью любого количества вариантов.. : шок:
Если существует консенсус, единственный «интерфейс» в отношении пользователя - это схема нумерации PING, полученная из булавок MCU, как PA10, PB4,.. - Тогда использование Generics (на основе пакета MCU) в порядке, IMHO.
Переключение/выключение существующих/неэффективных периферийных устройств должно быть обязанностью пользователя. Более того, мы используем флэш -память 128 КБ с C8, а Виктор использует 64 -килограммовую ОЗУ/512 КБ вспышку со всеми его вариантами R, так что что :)

На основании, скажем, 2 Generic V/Z, варианты VE/ZE, на случай, если есть популярный вариант с кристалем 12 МГц или 25 МГц (единственная разница, которую я могу себе представить), мы можем создать вариант серии STM32F407V_25M.

victor_pv
Пт 14 апреля 2017 г., 19:25
Одно разъяснение, F1 Mini и BluePill не отличаются по историческим причинам, а скорее потому, что способ вызвать повторное открытие USB.
У серийного USB -кода есть #ifdef для управления тем или иным, в зависимости от типа некоторых определений, передаваемых компилятору, поэтому им необходимо иметь 2 разных варианта для компиляции в IDE Arduino IDE.

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

Лично я думаю, что мы должны сделать варианты для различных серий MCU (Vet, Zet) и сделать только отдельные доски в одной и той же серии, если это действительно необходимо из -за несовместимости. Таким образом, вероятно, черный или синий имени - хорошая идея, пока мы не узнаем, что есть черная доска и синяя доска, которая требует значительно другого кода, чтобы запустить.
Вероятно, большинство общих плат на 100% совместимы на базовом уровне, что различается только на периферийных устройствах, таких как NRF, порты SDCARD и т. Д. Но если мы найдем 2 платы с SDCARD, и они используют другой PIN -код для CS, то мы сможем добавить субопкцию в меню платы, либо отдельная запись платы.

РЕДАКТИРОВАТЬ:
Забыл добавить.
Эти MCU имеют 192 КБ ОЗУ, но не все это доступно в одних и тех же автобусах. Если я помню правильный DMA не может быть сделан из CCM, поэтому LDSCRIPT должен будет управлять двумя различными областями ОЗУ и распределить от любого из них в зависимости от чего -то, скорее всего, по умолчанию с оперативной памятью, которая может использоваться всеми периферийными устройствами и и из CCM только при указании.

Пито
Пт 14 апреля 2017 г., 19:43
Да, оперативная память, это 128 КБ + 64 КБ. Блок 64 КБ отличается, без доступа к DMA, и нет выполнения кода, AFAIK. Конечно, это может быть объединено линкером, чтобы получить 192 КБ для C, как указывает Виктор (с некоторыми ограничениями). Но все 407 имеют одинаковую архитектуру RAM, поэтому, кроме размера вспышки, это то же самое.
Основное различие между VE и ZE - область применения FSMC - количество булавок, доступных для управления внешними воспоминаниями. Но для FSMC нам не нужен «драйвер», эти 5 строк C для настройки легко управлять (плюс небольшая редактирование в сценарии линкера). Только Z позволяет припаять в памяти 512 КБ+ SRAM, т.е. с черной Zet Board. Конечно, есть больше GPIOS и другие вещи, доступные с Z (т.е. +Vref PIN).
FSMC в V -версиях обычно используется только для дисплеев TFT (16 -битные данные).

Итак, как сказал Виктор - Let Naw Master 2 Generics - V и Z, Variant VE и ZE, Конвенция о именах как вышеуказанный стандарт именования тока.

Для чипа 100 пенсов вы выберете Общая серия STM32F407V
Для 144 -дюймового чипа вы выберете Общая серия STM32F407Z из меню.

AG123
Пт 14 апреля 2017 г., 21:03
Стив невероятен, мне интересно, как он так быстро работал : D
удалось в составлении набора кодов Black_f4_f4_variant
https: // github.com/stevstrong/arduino_s ... F4_variant

Обратите внимание, что я не использую доски.TXT и платформы.TXT, я вручную получаю необходимые переменные из этого и исправляю их в Eclipse
Я сделал довольно много определения, некоторые из которых не требуются
Определяет: STM32_HIGH_DENSITY STM32F4 BOARD_black_f4 CONFIG_MAPLE_MINI_NO_DISABLE_DEBUG DEBUG_LEVEL=DEBUG_NONE VECT_TAB_ADDR=0x8000000 VECT_TAB_BASE F_CPU=72000000L SERIAL_USB USB_VID=0x1EAF USB_PID=0x0004 USB_MANUFACTURER="Unknown"

ZMEMW16
Пт 14 апреля 2017 г., 21:14
упс, извини, я поймал бар свитка
Разве это не должно скомпилировать, LED1 неопределен?
Я также пытаюсь получить 2 светодиода, компилируется, но не Hi-Lighted в коде : D
Стивен

Стивестронг
Пт 14 апреля 2017 г. 9:16 вечера
ОК, попробуйте переименовать Hardwarespi .CPP и .H файлы, они должны быть фактически удалены, кажется, что что -то пошло не так, отправившись на GitHub с GitHub для Windows.
Проверьте black_f4.CPP и .H файлы для определения.
Я старался сохранить некоторые определения, совместимые с Disco F4.

Пито
Пт 14 апреля 2017 г., 21:21
Обратите внимание, что я не использую доски.TXT и платформы.TXT, я вручную получаю необходимые переменные из этого и исправляю их в Eclipse
Я сделал довольно много определения, некоторые из которых не требуются
Я бы порекомендовал не смешивать такие эксперименты с тем, чего хочет достичь Виктор в этой теме - Libmaple на основе F4 Core.
Ум выше стандартов.
Также нам нужно согласиться, как называть эти SPI, I2C и другие.

AG123
Пт 14 апреля 2017 г., 21:21
@zmemw16
В моем случае он составил

Stm32f4/variants/black_f407vet6/black_f4.час
https: // github.com/stevstrong/arduino_s ... black_f4.час
Предоставляет перечисления для PA0 для PE15

Я думаю, потому что я помещаю STM32F4/Variants/Black_f407Vet6 в моем включении, G ++ как -то «умный» и включает в себя Black_f407Vet6/black_f4.час

@Pito
Хотя работа в Eclipse - это не «родной ардуино», это помогает мне в том, что теперь я могу отлаживать, если мне нужно
Кодовая база из филиала Стива Black_f4_variant, нет никаких других кодов

@Стив
переименование STM32F4/Cores/Maple/Libmaple/Hardwarespi.CPP и STM32F4/Cores/Maple/Libmaple/Hardwarespi.час
Избегал ошибок, компилировал и успешно

Пито
Пт 14 апреля 2017 г., 21:24
Снова, подумайте дважды.. @AG123: и прочитайте то, что люди здесь пишут..
Вы должны следовать некоторым стандартам, в противном случае результатом будет беспорядок..
Для ваших экспериментов в Eclipse Откройте другую ветку.

Позвольте этой теме для усилий Виктора и Стива.

Они должны согласиться с некоторыми общими стандартами.
Мы согласились с именами для досок.TXT - см. Выше. Которые должны быть реализованы.
Затем - именование SPI, I2C и других булавок - позвольте вам согласиться с именем. BOARD_SPI3B_NSS_PIN

victor_pv
Пт 14 апреля 2017 г., 21:34
Пито написал:Да, оперативная память, это 128 КБ + 64 КБ. Блок 64 КБ отличается, без доступа к DMA, и нет выполнения кода, AFAIK. Конечно, это может быть объединено линкером, чтобы получить 192 КБ для C, как указывает Виктор (с некоторыми ограничениями). Но все 407 имеют одинаковую архитектуру RAM, поэтому, кроме размера вспышки, это то же самое.

AG123
Пт 14 апреля 2017 г., 21:38
В Eclipse Gnu Arm Eclipse, в другом проекте, который использует ST Cube-MX HAL, я нашел сценарии LD, которые выглядят как таковые:

мем.лд MEMORY { RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K CCMRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K FLASHB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0 EXTMEMB0 (rx) : ORIGIN = 0x00000000, LENGTH = 0 EXTMEMB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0 EXTMEMB2 (rx) : ORIGIN = 0x00000000, LENGTH = 0 EXTMEMB3 (rx) : ORIGIN = 0x00000000, LENGTH = 0 MEMORY_ARRAY (xrw) : ORIGIN = 0x20002000, LENGTH = 32 }

ZMEMW16
Пт 14 апреля 2017 г., 21:45
Приносим извинения, неправильный поток за синтаксис Hi-Lighting и ключевые слова.
Reld Scripts, btgt.
Стивен

Пито
Пт 14 апреля 2017 г., 21:48
CCM: http: // www.OpenSTM32.org/с помощью+ccc+память

victor_pv
Пт 14 апреля 2017 г., 21:58
Итак, остается вопрос, что мы помещаем в CCM?

Пито
Пт 14 апреля 2017 г. 22:03
Я бы начал с 128 КБ. Пусть пользователи решат. Хорошо для любой буферизации без DMA.. Довольно ограниченное использование поэтому.
PS: Единственное практическое использование CCM, которое я получил ~ 5y в проекте Elua - мне удалось присоединиться к 128+64 такого, я получил ~ 150 КБ для моих экспериментов Elua..

AG123
Пт 14 апреля 2017 г. 22:07
Я бы посоветовал для начала, мы могли бы использовать 1 -й 128K, но поместить записи в LDScripts, откладывая CCMRAM

такой как MEMORY { RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K CCMRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K ...

Стивестронг
Пт 14 апреля 2017 г. 22:09
Для начала давайте начнем с 128K, тогда, если мы знаем, как поместить данные на CCM, мы решим, как это сделать в будущем.

AG123
Пт 14 апреля 2017 г., 22:13
ОК, подписываюсь на данный момент

victor_pv
Пт 14 апреля 2017 г. 11:51
Стивестронг написал:Для начала давайте начнем с 128K, тогда, если мы знаем, как поместить данные на CCM, мы решим, как это сделать в будущем.

AG123
Сб 15 апреля 2017 г. 9:41
Да, Blinky Works (оба светодиода), моя дурака, кажется, является единственным определением F_CPU=168000000L

Стивестронг
Сб 15 апреля 2017 г. 10:40
Я только что посвятил себя черной ветви F4. Следующие изменения:
- Переименованная цель от «черного» до общего F407V (файлы из старой папки были удалены, в новую папку добавлялись те же файлы)
- удалили некоторые из неиспользованных файлов.

Стивестронг
Сб 15 апреля 2017 г. 10:49
Я согласен с AG123, мы могли бы автоматически инициировать serialusb во время запуска, обусловленного определением "serial_usb".
Кстати, вам не нужно передавать какой -либо параметр, он должен работать так: #ifdef SERIAL_USB setupUSB(); SerialUSB.begin(); #endif

Стивестронг
Сб 15 апреля 2017 г. 11:05
В аналогичном контексте я хотел бы объединить серийное именование, независимо от любого другого условия:

Serial1 => USART1
Serial2 => USART2
Serial3 => USART3
...
«Сериал» не будет использоваться
или
назначен пользователем в его эскизе (например: #define serial serial1)
или
Присвоен в соответствии с предпочтениями платы в файле определения платы (например: #define serial serial1)
или
назначен для serialusb.

Любой комментарий/возражение?

AG123
Сб 15 апреля 2017 г. 12:00
Привет, Стив,

Я переосмыслил USB и пришел к такому выводу, мы должны *нет* Инициализируйте USB или USB-сериал в коде Libmaple, USB-инициализация должна быть выполнена с помощью эскиза

1) Инициализация USB-сериала делает бинарное толще
2) Помимо только USB-сериал, эскиз может воспроизводить любое из большого числа USB-концертов
http: // www.USB.org/разработчики/docs/devClass_docs/
эн.глин. Эскиз может говорить на USB-сериал для хоста, но он также может говорить на USB-трансфер, USB Mass Storage, USB Ethernet, USB HID (играйте на клавиатуре, мышью, джойстику, он может автоматизировать вашу мышь и нажимать «Огонь» для вас Делает вас в соревновательных играх, или он может превратиться в клавиатуру и мыши и ввести эссе в записном документе или запустить краску & Нарисуй "Привет, мир" :ржу не могу: ). Эскиз также может говорить на USB-видео (интерфейс USB-HDMI?), USB Audio (E.глин. становится USB -наушником, микрофоном), USB -камерой или эскизом может говорить практически на любой пользовательский USB -протокол 1, чтобы изобретать
3) Если я правильно понимаю USB, MCU должен продолжать мониторинг USB -сообщений / прерывания от USB -хоста. Это может создать «маленькие сюрпризы» для чувствительных приложений.глин. Для логического анализатора / осциллографа обслуживание USB -прерывания может привести к тому, что код анализатора / сферы пропустить бит

Следовательно, USB (включая инициализацию USB) является работой эскиза, а не Libmaple

Мы можем поставить учебник E.глин. В вики о том, как инициализировать сериал USB, чтобы пользователь, начинающий, мог настроить его для отправки сообщений на хост (его консоль)
STM32duino вырос за пределами скромного начала Arduino Uno, это полноценное USB -устройство, в первую очередь это полноценное устройство USB

всего 2 цента

Стивестронг
Сб 15 апреля 2017 г. 12:57
с serialusb:text data bss dec hex filename 14840 6392 6064 27296 6aa0 .pioenvs\genericSTM32F407VE\firmware.elf

victor_pv
SAT 15 апреля 2017 г. 12:59 вечера
Стивестронг написал:В аналогичном контексте я хотел бы объединить серийное именование, независимо от любого другого условия:

Serial1 => USART1
Serial2 => USART2
Serial3 => USART3
...
«Сериал» не будет использоваться
или
назначен пользователем в его эскизе (например: #define serial serial1)
или
Присвоен в соответствии с предпочтениями платы в файле определения платы (например: #define serial serial1)
или
назначен для serialusb.

Любой комментарий/возражение?

Беннебой
Сб 15 апреля 2017 г. 13:37
Любая рекомендация для дешевой доски, чтобы помочь проверить эти усилия?

Стивестронг
Сб 15 апреля 2017 г. 13:41
Ищите (черную) плату STM32F407VET6 на eBay или AliexPress.

Беннебой
Сб 15 апреля 2017 г. 13:49
http: // www.eBay.сопутствующий.UK/ITM/STM32F407VET6 ... Swgmjxysvo

Вот этот? Это дорого?

Стивестронг
Сб 15 апреля 2017 г. 13:54
Это самый дешевый из всех, что я видел раньше.
Я ветвю свою доску почти 12 евро.

AG123
SAT 15 апреля 2017 г. 14:00
Привет, в настоящее время как серийный USB или просто серийная работа на STM32F1?

Мне показалось, что если Serial_USB определяется Maple / Maple Mini, подобные устройствам, будут перечислять на USB как 1EAF: 0004 в качестве последовательного устройства USB, фактически это USB -инициализация
В то время как, если serial_usb не определен, он вообще не будет перечислять

Это моя мотивация в первом посте, так как казалось, что нам нужно перечислить USB-порт как USB-сериал для STM32F1
Код можно найти по адресу stm32f1/cores/maple/usb_serial.Строка CPP 200: /* * Bootloader hook implementations */ #if BOARD_HAVE_SERIALUSB enum reset_state_t { DTR_UNSET, DTR_HIGH, DTR_NEGEDGE, DTR_LOW }; ... #ifdef SERIAL_USB static const uint8 magic[4] = {'1', 'E', 'A', 'F'}; ... #endif

Стивестронг
SAT 15 апреля 2017 г. 14:13
То, что вы упомянули, - это «волшебная последовательность» для сброса платы через серийный USB, чтобы войти в загрузчик и иметь возможность загружать через DFU.
Это не имеет ничего общего с перечислением.
Но у F4 нет (пока?) любой загрузчик с возможностью загрузки DFU.

AG123
SAT 15 апреля 2017 г. 14:17
Bennehboy ​​написал:http: // www.eBay.сопутствующий.UK/ITM/STM32F407VET6 ... Swgmjxysvo

Вот этот? Это дорого?

AG123
SAT 15 апреля 2017 г. 14:32
Стивестронг написал:То, что вы упомянули, - это «волшебная последовательность» для сброса платы через серийный USB, чтобы войти в загрузчик и иметь возможность загружать через DFU.
Это не имеет ничего общего с перечислением.
Но у F4 нет (пока?) любой загрузчик с возможностью загрузки DFU.

Martinayotte
SAT 15 апреля 2017 г. 14:33
Стивестронг написал:Но у F4 нет (пока?) любой загрузчик с возможностью загрузки DFU.

Стивестронг
SAT 15 апреля 2017 г. 15:08
Да, я знаю, что DFU существует, но всегда устанавливать джемпер Boot0 в нужное положение - кошмар...
Использование зонда ST-Link гораздо более элегантно и практично.

michael_l
SAT 15 апреля 2017 г. 15:31
Черный F407 имеет SD-карту и даже борту Winbond Flash. Было бы неплохо иметь возможность использовать их по -разному. Поэтому я думал, какие возможности должны заставить доску работать в качестве хранилища, последовательного устройства и CDC? Чтобы сделать вещи не так просты, было бы неплохо иметь возможность динамически изменить USB во время выполнения .. Как переключаться с USB-серийного и массового хранилища «на лету». Спасибо.

Я использовал Spiffs с Winbond Flash, и это работает просто отлично. Итак, у нас есть встроенная файловая система.

Стивестронг
Сб 15 апреля 2017 г. 15:41
Мы поместили это в список TODO, так как потребуется довольно много времени, чтобы работать SPI, даже не говоря о SDIO...
Просто для записи, некоторые ссылки:
https: // github.com/mfauzi/stm32f4/tree/ ... Amples/MSC
http: // wiki.увидеть.CC/ARCH_MAX_V1.1/

AG123
Сб 15 апреля 2017 г. 15:42
Привет, Майкл

Хотя я действительно не изучал коды F103 в больших деталях, мы обсудили этот USB-сериал здесь, в перспективе.
В настоящее время идея заключается в том, что если определяется определение -deserial_usb, как и в случае с F103 E.глин. Maple Mini. Коды инициализации инициализируют USB -сериал #ifdef SERIAL_USB setupUSB(); SerialUSB.begin(); #endif

Беннебой
SAT 15 апреля 2017 г., 17:37
Я заказал 2 из этих черных 407, рад помочь, как только я могу, если это просто тестирование кода.

victor_pv
SAT 15 апреля 2017 г. 18:53
Bennehboy ​​написал:http: // www.eBay.сопутствующий.UK/ITM/STM32F407VET6 ... Swgmjxysvo

Вот этот? Это дорого?

victor_pv
SAT 15 апреля 2017 г. 18:57
Стивестронг написал:Мы поместили это в список TODO, так как потребуется довольно много времени, чтобы работать SPI, даже не говоря о SDIO...
Просто для записи, некоторые ссылки:
https: // github.com/mfauzi/stm32f4/tree/ ... Amples/MSC
http: // wiki.увидеть.CC/ARCH_MAX_V1.1/

victor_pv
SAT 15 апреля 2017 г., 19:02
Стивестронг написал:Да, я знаю, что DFU существует, но всегда устанавливать джемпер Boot0 в нужное положение - кошмар...
Использование зонда ST-Link гораздо более элегантно и практично.

AG123
Сб 15 апреля 2017 г., 19:48
Привет, Виктор,
Спасибо, я немного прочитал в RM0009 F4 Справочное руководство Раздел 9.2.1
http: // www.ул.com/resource/en/reference ... 031020.PDF
1) Регистры работают, позволяя нам установить значения Boot0, Boot1 в программном обеспечении
2) После сброса регистр вернется к настройкам на бутанках

Казалось бы, это предполагает, что нужен загрузчик
Тем не менее, еще один «более простой» способ - это определить, чтобы установить флаг, просто эта схема приведет к тому, что плата загрузится в системный загрузчик (i.эн. DFU) при каждом альтернативном сбросе. это не «идеально», но может помочь E.глин. В случаях для отладки, в которых мы можем повторно переустановить изображение

всего 2 цента

Обратите внимание, что я в значительной степени новичок во всем этом, вскочил в него из любопытства, читая RM0009, довольно очевидно, что это может быть очень глубоким концом : P
Я даже не знаком с платформой F1 на самом подробном уровне. Платформа F4 значительно сложна, DMA, SPI, прерывания очень сложны, я предполагаю, что это то, что объясняет его очень богатую функциональность и высокую производительность, я чувствую, что я в значительной степени трогаю, едва ли поверхность

victor_pv
Сб 15 апреля 2017 г. 8:10 вечера
AG123 написал:Привет, Виктор,
Спасибо, я немного прочитал в RM0009 F4 Справочное руководство Раздел 9.2.1
http: // www.ул.com/resource/en/reference ... 031020.PDF
1) Регистры работают, позволяя нам установить значения Boot0, Boot1 в программном обеспечении
2) После сброса регистр вернется к настройкам на бутанках

Казалось бы, это предполагает, что нужен загрузчик
Тем не менее, еще один «более простой» способ - это определить, чтобы установить флаг, просто эта схема приведет к тому, что плата загрузится в системный загрузчик (i.эн. DFU) при каждом альтернативном сбросе. это не «идеально», но может помочь E.глин. В случаях для отладки, в которых мы можем повторно переустановить изображение

всего 2 цента

Обратите внимание, что я в значительной степени новичок во всем этом, вскочил в него из любопытства, читая RM0009, довольно очевидно, что это может быть очень глубоким концом : P
Я даже не знаком с платформой F1 на самом подробном уровне. Платформа F4 значительно сложна, DMA, SPI, прерывания очень сложны, я предполагаю, что это то, что объясняет его очень богатую функциональность и высокую производительность, я чувствую, что я в значительной степени трогаю, едва ли поверхность

AG123
SAT 15 апреля 2017 г. 8:14 вечера
Другой способ, однако, заключается в том, что мы можем использовать определение, чтобы включить кнопку на плате, чтобы, когда эта кнопка нажимается, она устанавливает флаг и выполнял сброс, который бросил бы его в режим DFU в следующем раунде
На плате ветеринара есть 3 кнопки пользователя и 1 кнопка сброса, но я предполагаю, что это в значительной степени конкретно, это может вызвать проблему обслуживания
---
На самом деле мои мысли - что -то вроде этого, нам не нужно беспокоиться об этом, работа в ботинках работают, а DFU работает

Для пользователей с Dongle ST-Link или JTAG/SWD они могли бы использовать свой ключ ST-Link или JTAG-это было бы очень удобно для пользователей с инструментами

Тем не менее, есть пользователи (новички или иное), которые сталкиваются с этим и становятся любопытны Можно идти вперед, чтобы установить их бутинки, если они не хотят инвестировать в Dongle ST-Link или JTAG. Те же самые пользователи могут по своей собственной инициативе, проводящий двухсторонний переключатель (3 разъема), чтобы выбрать 1 или 0 для загрузочного штифта, что делает вещи несколько проще

Стивестронг
SAT 15 апреля 2017 г. 9:58 вечера
Давайте не будем связываться с новичками, доски F4 не являются новичками, доска.
Я думаю, что у пользователей уже много возможностей для загрузки (USB DFU, Serial, Stlink)
Давайте вместо этого сосредоточимся на более важных следующих шагах:
- Виктор хотел адаптировать SPI, чтобы запустить на доске F4 -у него есть доска для проверки. Если бы я не смог бы сделать тест.
- Я хотел бы оценить возможности USB, такие как CDC+MSC (USB Serial в сочетании с устройством массового хранения).
Или это должно быть серийным+dfu?
- К сожалению, я мог бы оценить параллельные дисплеи, управляемые GPIO, затем перейти к интерфейсу FSCM.

Кто -нибудь еще, кто хочет сделать другие части (i2c, Ethernet) или иметь другие идеи, что имеет смысл в первую очередь?
Я включу список задач и добровольцы в моем репо.

ZMEMW16
SAT 15 апреля 2017 г. 11:01
Стив,
Я попробовал клонировать репо Black_f4_variant, он продолжал что -то тянуть без Black_f4, ссылка дана
https: // github.com/stevstrong/arduino_stm32.git
В конце концов я понял, никогда не замечал или не случался с GitHub раньше, так как я обычно не получаю варианты и получаю Zip.
Только что попробовал основную репозиторию arduino_stm32, он также дает базовую ссылку.

Возможно, кто -то мог бы подтвердить это для меня ?

Стивен

victor_pv
Солнце 16 апреля 2017 г. 12:30
Стивестронг написал:Давайте не будем связываться с новичками, доски F4 не являются новичками, доска.
Я думаю, что у пользователей уже много возможностей для загрузки (USB DFU, Serial, Stlink)
Давайте вместо этого сосредоточимся на более важных следующих шагах:
- Виктор хотел адаптировать SPI, чтобы запустить на доске F4 -у него есть доска для проверки. Если бы я не смог бы сделать тест.
- Я хотел бы оценить возможности USB, такие как CDC+MSC (USB Serial в сочетании с устройством массового хранения).
Или это должно быть серийным+dfu?
- К сожалению, я мог бы оценить параллельные дисплеи, управляемые GPIO, затем перейти к интерфейсу FSCM.

Кто -нибудь еще, кто хочет сделать другие части (i2c, Ethernet) или иметь другие идеи, что имеет смысл в первую очередь?
Я включу список задач и добровольцы в моем репо.

AG123
Солнце 16 апреля 2017 г. 2:29
ZMEMW16 написал:Стив,
Я попробовал клонировать репо Black_f4_variant, он продолжал что -то тянуть без Black_f4, ссылка дана
https: // github.com/stevstrong/arduino_stm32.git
В конце концов я понял, никогда не замечал или не случался с GitHub раньше, так как я обычно не получаю варианты и получаю Zip.
Только что попробовал основную репозиторию arduino_stm32, он также дает базовую ссылку.

Возможно, кто -то мог бы подтвердить это для меня ?

Стивен

ZMEMW16
Солнце 16 апреля 2017 г. 5:02
Спасибо, кажется, у меня теперь есть репо :)
Пожалуйста, укажите мне на список Todo или есть страница «Тестирование» ?

Стивен

AG123
Солнце 16 апреля 2017 г. 9:20 утра
STM32F4 - это масштабная платформа с точки зрения объема предлагаемых ресурсов и сложности (я бы подумал, что это правда по сравнению с F3), даже если это не означает, что каждый чип E.глин. 401-407-42X имеет все эти ресурсы. На самом деле STM32F3 не так далека от F3, по крайней мере, около 50%-2/3 с ресурсов, доступных на F4
Прикрепление границ регистра, абстрагируемых от RM0008 и RM0009 на случай, если это поможет, обратите внимание, что эта копия в основном на моей «царапине» следует обратиться к оригинальным руководствам для любых ссылок
http: // www.ул.com/resource/en/reference ... 171190.PDF
http: // www.ул.com/resource/en/reference ... 031020.PDF

michael_l
Солнце 16 апреля 2017 12:28
Я только что заказал черный 407. Так что я могу присоединиться к тестированию, когда оно прибудет. Меня интересуют USB и SPI. USB -массовое хранилище и CDC было бы неплохо работать. Также заинтересован в банке. Я знаю C/C ++, но внутренние внутренние внутренности STM32 несколько новых.

Как насчет интерфейса CAN? Не было времени проверить ссылку, но было бы неплохо провести USB -сериал и в то же время может. В F103 это невозможно, по крайней мере, без больших усилий.

Интересно, сможем ли мы повторно использовать код может из F103 Repo для F4. Если у нас нет никакого базового кода, можно ли использовать код из HAL/CMSIS ST или какой метод реализации в этом случае?

AG123
Солнце 16 апреля 2017 12:56
USB Serial работает довольно хорошо, благодаря Стиву #include void checkcmd(void); //note this is for the black f407vet6 board int ledPin = BOARD_LED_PIN; //PA6 int led1 = BOARD_LED2_PIN; //PA7 int print = false; // the setup() method runs once when the sketch starts void setup() { SerialUSB.begin(0); //initialize the digital pin as an output: pinMode(ledPin, OUTPUT); pinMode(led1, OUTPUT); digitalWrite(ledPin, HIGH); } //the loop() method runs over and over again, //as long as maple has power void loop() { int i; for (i = 0; i < 10; i++) { digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); } checkcmd(); if (print) SerialUSB.println("Hello world F407"); for (i = 0; i < 5; i++) { digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); delay(500); if (print) SerialUSB.println("Hello world F407"); checkcmd(); } } // listen for the keys 'p' print or 's' stop from the usb serial console void checkcmd() { char r; if(SerialUSB.available()) { r = SerialUSB.read(); } else return; if(r=='p') { //print print = true; } else if (r=='s') { //stop print = false; } }

AG123
Солнце 16 апреля 2017 г. 13:01
ИМХО, если кто -то заинтересован в Discovery STM32 F4 (07)
http: // www.ул.com/en/evaluation-tools/s ... овсяной.HTML
Присоединение к этому проекту Разработка Libmaple для F4, возможно, настолько близким, насколько вы можете * получить * получить :ржу не могу:
Платформа F4 ошеломляет

Вам нужно только просмотреть разделы справочного руководства RM0009
http: // www.ул.com/resource/en/reference ... 031020.PDF

Чтобы понять, насколько ошеломляет эта платформа, и проблемы, STM32F3 (Cortex-M3) и STM32F4 (Cortex-M4) являются почти эквивалентом библиотеки класса Java I.эн. Огромный с множеством функций, только что все это *оборудование *, сама SOC, оборудование - это «API»
: D

Беннебой
Солнце 16 апреля 2017 г. 13:34
Поцелуй, получите хорошее совпадение с 103, SPI, I2C, сериалом и т. Д., Затем начнет создавать все пение всех танцующих элементов....

victor_pv
Солнце 16 апреля 2017 г. 14:45
michael_l написал:Я только что заказал черный 407. Так что я могу присоединиться к тестированию, когда оно прибудет. Меня интересуют USB и SPI. USB -массовое хранилище и CDC было бы неплохо работать. Также заинтересован в банке. Я знаю C/C ++, но внутренние внутренние внутренности STM32 несколько новых.

Как насчет интерфейса CAN? Не было времени проверить ссылку, но было бы неплохо провести USB -сериал и в то же время может. В F103 это невозможно, по крайней мере, без больших усилий.

Интересно, сможем ли мы повторно использовать код может из F103 Repo для F4. Если у нас нет никакого базового кода, можно ли использовать код из HAL/CMSIS ST или какой метод реализации в этом случае?

victor_pv
Солнце 16 апреля 2017 г. 14:48
ZMEMW16 написал:Стив,
Я попробовал клонировать репо Black_f4_variant, он продолжал что -то тянуть без Black_f4, ссылка дана
https: // github.com/stevstrong/arduino_stm32.git
В конце концов я понял, никогда не замечал или не случался с GitHub раньше, так как я обычно не получаю варианты и получаю Zip.
Только что попробовал основную репозиторию arduino_stm32, он также дает базовую ссылку.

Возможно, кто -то мог бы подтвердить это для меня ?

Стивен

ZMEMW16
Солнце 16 апреля 2017 г. 18:23
он тянет все, что находится в главной ветви, - это мой вывод.

Я попытался добавить файл в свой локальный репо и посмотреть, смогу ли я обновить свой GitHub.
попросили ввести в систему/пароль и отказ от репо Стива.
Я/не хотел этого делать!
Обычно это я неправильно, я все еще студент (они все сломают) в глубине души :)
Стивен

michael_l
Солнце 16 апреля 2017 г. 18:43
victor_pv написал:michael_l написал:Я только что заказал черный 407. Так что я могу присоединиться к тестированию, когда оно прибудет. Меня интересуют USB и SPI. USB -массовое хранилище и CDC было бы неплохо работать. Также заинтересован в банке. Я знаю C/C ++, но внутренние внутренние внутренности STM32 несколько новых.

Как насчет интерфейса CAN? Не было времени проверить ссылку, но было бы неплохо провести USB -сериал и в то же время может. В F103 это невозможно, по крайней мере, без больших усилий.

Интересно, сможем ли мы повторно использовать код может из F103 Repo для F4. Если у нас нет никакого базового кода, можно ли использовать код из HAL/CMSIS ST или какой метод реализации в этом случае?

victor_pv
Пн 17 апреля 2017 г., 4:57
michael_l написал: Да, я могу попытаться проверить это.

РЕДАКТИРОВАТЬ: Я сравнил раздел BXCAN от F1 и F4 PDF, и они, кажется, точно такие же. Так что это хорошие новости

AG123
Пн 17 апреля 2017 г. 6:00 утра
ZMEMW16 написал:он тянет все, что находится в главной ветви, - это мой вывод.

Я попытался добавить файл в свой локальный репо и посмотреть, смогу ли я обновить свой GitHub.
попросили ввести в систему/пароль и отказ от репо Стива.
Я/не хотел этого делать!
Обычно это я неправильно, я все еще студент (они все сломают) в глубине души :)
Стивен

AG123
Пн 17 апреля 2017 г. 7:06 утра
victor_pv написал:
Я могу щелкнуть там и загрузить файл ZIP Black Branch, но если я клонирует, я думаю, что он будет клонировать все репо, включая все филиалы.
Я не клонировал это.

ZMEMW16
Пн 17 апреля 2017 г., 7:26 утра
Хорошо, здесь происходит две вещи
1 моя локальная установка для использования GitHub
2а, когда я получаю «неспецифический» репо, Say Say Unicore-MX
2b, когда я получаю «неспецифический» репо, скажем, Unicore-MX выбирает Abranch

2A. Когда я делаю git -рекурсивно <Ссылка GitHub, приведенная в коробке клонов> мое имя
2B. он делает точно так же, а не то, что я ожидал. это -t будет раздражать.

1. Я буду тщательно пройти через это, изначально я получил такой же результат от «git remote -v» в соответствии с первым руководством по идиотам, но с явлением имени пользователя128

Стивен

AG123
Пн 17 апреля 2017 г., 7:46 утра
Привет, Стивен,

Прежде чем начать работать над кодами, вам нужно выпустить git checkout Black_F4_variant

victor_pv
Пн 17 апреля 2017 г. 15:22
ZMEMW16 написал:Спасибо, кажется, у меня теперь есть репо :)
Пожалуйста, укажите мне на список Todo или есть страница «Тестирование» ?

Стивен

victor_pv
Пн 17 апреля 2017 г. 15:31
@Все,
Предложение о баране.
Поскольку оперативная память сломана в 2 блоках, я считаю, что они допускают параллельный доступ к обоим. (Кто -то может подтвердить?).
В этом случае я предлагаю посвятить небольшой блок, 16 КБ, DMA, поэтому вместо того, чтобы иметь всю нормальную оперативную память в одном блоке, иметь его в 2 блоках, а 2 -й блок, 16 КБ не назначается ни на что сердечником.
Вместо этого, если кто -то хочет использовать DMA, что, я думаю, мы будем, его можно пометить в этот блок.
Это потребует лишь небольшой модификации сценария линкера, так как мы обсуждали несколько постов выше, но не должны быть слишком сложными, и я думаю, что максимизирует производительность.

О CCM я думал о тестировании его для RTOS Heap, когда я испытал RTOS. Я думаю, что это было бы хорошим использованием, так как буферы DMA будут размещены в блоке 16 КБ, поэтому не должен быть никакого риска размещения буферов DMA в CCM, если кто -то не сделает что -то странное, как попытка выделить буфер DMA в куче RTOS.

AG123
Пн 17 апреля 2017 г. 16:13
Привет, Виктор

В отдельном «миганном», который я собрал против Cube-MX HAL, я отметил следующее в сценариях LD

Полное содержание этих сценариев LD можно найти здесь: http: // www.STM32duino.com/viewtopic.PHP ... = 30#p26346 MEMORY { RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K CCMRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K

victor_pv
Пн 17 апреля 2017 г. 16:37
AG123 написал:Привет, Виктор

В отдельном «миганном», который я собрал против Cube-MX HAL, я отметил следующее в сценариях LD

Полное содержание этих сценариев LD можно найти здесь: http: // www.STM32duino.com/viewtopic.PHP ... = 30#p26346 MEMORY { RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K CCMRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K

AG123
Пн 17 апреля 2017 г. 16:41
Строго говоря, я в значительной степени «новичок» в том, что мне еще предстоит узнать о DMA, однако, мое «интуитивное чувство» состоит в том, что если St. HAL не сегментировал на небольшие блоки, мы должны быть в значительной степени сделать Делайте с большим банком и позвольте приложению / API -смеси и динамически организовать оперативную память, так как эти MCU, в конце концов, ограничены оперативной памятью, разрыв в небольших блоках вызовет фрагментацию и отходы пространства SRAM

OT: Я разместил в другой ветке, я думаю, что STM32 F407VET6 или ZET6 или ZGT6 или VGT6 и т. Д. , е.глин. Возможно, ему даже потребуется разместить веб -сервер, запустить стек TCP/IP. Запустите 3D -принтер (Control 4 Stepper Motors, мониторинг температуры и управляйте температурой горячей, запустите ЖК -дисплей, показывающий прогресс, отправьте прогресс на веб -сервере, прочитайте SD Карта (модель SVG) выполняет нарезку, и все еще интенсивно G-коды и выполняйте 3D-печать

Память будет драгоценной, если такое приложение когда -либо будет вызвано
http: // reprap.org/wiki/arduino_mega_pololu_shield

Одна вещь, хотя платформа F407 с RAM 128 + 64 + 4K теперь означает, что Malloc и динамическое распределение памяти теперь являются возможностью, я.эн. Он будет работать как крошечный компьютер или, возможно, смартфон буквально
https: // www.YouTube.com/watch?v = 0etyfmamfjy

victor_pv
Пн 17 апреля 2017 г. 18:11
Я думаю, что намерение дизайнеров разбивает SRAM в разных блоках, чтобы одновременно добраться до них. То, что STM делает в их библиотеках, иногда не имеет большого смысла и делается больше для легкого использования, которое для скорости или размера кода. Вы можете увидеть это с помощью ядра HAL.

Это из справочного руководства, о различных блоках ОЗУ:
"AHB Masters поддерживает одновременные доступ SRAM (из Ethernet или USB OTG
HS): Например, Mac Ethernet может читать/записать из/в SRAM2, пока ЦП
Чтение/написание из/SRAM1 или SRAM3."

michael_l
Пн 17 апреля 2017 г. 18:24
victor_pv написал:michael_l написал: Да, я могу попытаться проверить это.

РЕДАКТИРОВАТЬ: Я сравнил раздел BXCAN от F1 и F4 PDF, и они, кажется, точно такие же. Так что это хорошие новости

Пито
Пн 17 апреля 2017 г. 18:30
ЦП может работать с CCM, в то время как часть 128K связывается с DMA, например,. Итак, своего рода параллельная обработка..
Может быть, стек может быть помещен в CCM. Может быть, процедуры на основе DSP/FPU могут лучше использовать CCM.. Довольно сложные вещи.. Требует будущего расследования.. Долгий путь..
F407 Arch.jpg
F407 Arch.JPG (88.55 киб) просмотрено 353 раза

AG123
Пн 17 апреля 2017 г. 18:48
OT: Пока я немного читаю RM0009 Справочное руководство F4, я отметил, что даже такие вещи, как контроллер DMA, кажутся резко отличающими Вещи, которые, возможно, F1 не смог бы сделать, как память в перенос памяти, и даже периферийные в периферические переводы, и он делает это быстро через параллельные потоковые FIFOS. И процессор с облегчением делает другие вещи, я подумал, что часть всех этих сложности учитывает высокую производительность, которую мы видим на F4, но тогда я думаю, что взаимодействие этого оборудования тоже не будет легким. Как минимум существует больше регистров для настройки, более многолетняя переключение регистров для настройки и т. Д., И это умноженное на количество различных типов на другие различные типы DMA
--------
Мои мысли о управлении SRAM - это Malloc (я.эн. Динамическое распределение памяти) приведет к более значительной роли, так как на этот раз мы можем запустить более сложные приложения на платформе, учитывая ее преимущества. Простой пример - мы можем настроить Ethernet, настроить стек TCP/IP и запустить веб -сервер на F4
https: // stm32f4-discovery.net/2015/02/e ... D-SD-CARD/

Все операции веб -сервера на самом деле не являются интенсивными DMA, но, конечно, они голодны памятью, им может потребоваться сохранить состояние каждого соединения E.глин. Хранить печенье, сохранить большие или много конструкций в куче и т. Д. и память снимается только в том случае, если пользователь отключите сеанс или тайм -аут достигнут. Я думаю, что подобные вещи случаются в стеках TCP/IP, а также TCP позволяет половину/закрытые соединения, и каждое соединение TCP сохраняет состояние, поэтому, если есть много соединений TCP, 128 + 64K легко исчезнет

Следовательно, мои мысли - что -то подобное, может быть Malloc (), который выделяет память как в 128K (откладывая резерв для DMA - Обратите внимание, что это может быть меньше, чем резерв с фиксированным размером, который мы устанавливаем для DMA в LDSCRIPTS) и 64K CCM но все эти общие памяти 128 тыс. Можно выделить через malloc_dma ().
В этом случае вы можете буквально использовать большую часть этого 128K для DMA, если вы считаете подходящим. Кроме того, для этой схемы Malloc () без предпочтений может дать приоритет памяти CCM I.эн. Нет DMA, в то время как malloc_dma () всегда будет распределяться в первых 128K, это позволило бы более интенсивно использовать память, чтобы приложения могли использовать большую часть этой памяти, если это необходимо, и все же запустить.

Это, безусловно, «поможет работать больше приложений», где иначе в фрагментировании (я.эн. Зарезервированная) модель Фиксированные небольшие блоки памяти, выделенные для DMA, не будут перераспределены как память общего назначения. Следовательно, фрагментация может привести к тому, что приложения не стержлены в плотных ситуациях памяти (и все еще могут быть карманы доступной памяти, но не будут выделены, поскольку они зарезервированы для определенной цели e.глин. DMA)

Обратите внимание, что этот сценарий «веб -сервера» приносит много новых возможностей по сравнению с F1, I.эн. Вы можете буквально управлять или настроить каждый вывод, сделать аналоговые считывания, отправлять это по Ethernet, настройку AFIO, пульт дистанционного управления (скажем, ICD или камера) - E.глин. потоковое видео 'в Интернете'
Но все это приложения для чтения памяти. не обязательно процессор или интенсивный IO интенсивный

всего 2 цента

victor_pv
Пн 17 апреля 2017 г., 19:03
michael_l написал:victor_pv написал:michael_l написал: Да, я могу попытаться проверить это.

РЕДАКТИРОВАТЬ: Я сравнил раздел BXCAN от F1 и F4 PDF, и они, кажется, точно такие же. Так что это хорошие новости

michael_l
Пн 17 апреля 2017 г., 19:37
victor_pv написал:michael_l написал:victor_pv написал:
Хороший. Проверьте, находятся ли регистры на одном базовом адресе. Я заметил, что между серией некоторые устройства имеют одинаковые регистры, но они не по одному и тому же адресу. Если нет, вам нужно будет отредактировать базовый адрес для F4, а также подтвердить, если все регистры находятся в одном и том же порядке, на случай, если что -то изменится в этом, например, 1 регистр добавлен или удален между ними обоими.

AG123
Пн 17 апреля 2017 г., 19:44
OT: F1 выглядит и работает как одолевший Arduino (Uno), но все больше и больше F4 не похожи на Arduino (Uno) & Больше похоже на мини -ПК, F7, безусловно, является мини -ПК, но это «будущие» улучшения :ржу не могу:

AG123
Пн 17 апреля 2017 г. 20:19
Пито написал:ЦП может работать с CCM, в то время как часть 128K связывается с DMA, например,. Итак, своего рода параллельная обработка..
Может быть, стек может быть помещен в CCM. Может быть, процедуры на основе DSP/FPU могут лучше использовать CCM.. Довольно сложные вещи.. Требует будущего расследования.. Долгий путь..
Интересное чтение на внутренних органах, связанных с аркой Рам http: // cliffle.com/article/2015/06/11/matrix/
http: // cliffle.com/project/dlitch-demo/

michael_l
Вт 18 апреля 2017 г. 13:48
Извините, если это основной вопрос, но где я могу найти таблицу для: номер IRQ <-> Картирование периферического прерывания для STM32F4 (07) ?

Для прерывания F103 для USB и CAN используется. Но я предполагаю, что у F4 есть больше прерываний, и они не обмениваются. Значение USB -сериал можно использовать вместе с CAN Peripheral.

Стивестронг
Вт 18 апреля 2017 г. 13:56
Таблица прерываний находится в таблице 61 на стр. 371 Справочного руководства F407.

victor_pv
Вт 18 апреля 2017 г. 15:51
Стивестронг написал:Таблица прерываний находится в таблице 61 на стр. 371 Справочного руководства F407.

Стивестронг
Вт 18 апреля 2017 г. 16:07
Виктор, это имеет смысл. Я ничего не делал в этом направлении, так что не стесняйтесь закончить это.
Я также заметил, что структура папок F4 намного проще, чем F1. Но я бы держал это так, как можно более.
Поэтому, пожалуйста, не копируйте/не слияйте вслепую все файлы из F1, только те, которые действительно необходимы.

РЕДАКТИРОВАТЬ
В настоящее время я оцениваю класс Mass Storage USB, а затем, возможно, даже в сочетании с CDC Serial.
Для этого я загрузил последнюю официальную STM32_F105-07_F2_F4_USB-host-device_lib. Он содержит несколько новых файлов по сравнению с уже существующими. Я просто «сражаюсь» со многими определениями... :?

victor_pv
Вт 18 апреля 2017 г. 16:59
Стив, я не копирую слепо, но глядя на содержание файлов один за другим, и в случае сомнений я оставляю F4.
Мне потребуется довольно много времени, но, надеюсь, в конце я поднял кучу исправлений и выявил функции из более новых файлов, ничего не нарушая.

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

Я не касаюсь ничего, связанного с USB и серийным USB, и я подозревал.

Стивестронг
Вт 18 апреля 2017 г., 17:48
Могут ли таймеры подождать? Или они необходимы для изменений, связанных с DMA?

victor_pv
Вторник 18 апреля 2017 г. 18:17
Стивестронг написал:Могут ли таймеры подождать? Или они необходимы для изменений, связанных с DMA?

michael_l
Вт 18 апреля 2017 г., 18:32
Стивестронг написал:Таблица прерываний находится в таблице 61 на стр. 371 Справочного руководства F407.

michael_l
Чт 20 апреля 2017 г. 15:22
Не мог дождаться прибытия черной доски, поэтому я купил F4 Discovery :) 407vgt9, что также довольно недорого. Так скоро я смогу протестировать банку.

michael_l
Чт 20 апреля 2017 г., 19:14
Кажется, мне нужно добавить их первым для F4. Я вижу, что есть rcc_f4.рука .C, которые содержат определения RCC.

Может ли кто -нибудь объяснить, что означает «line_num» и как я могу проверить это на F4.

РЕДАКТИРОВАТЬ: СОДЕРЖАНИЕ СОВЕРЖДЕНИЕ LINE_NUM в регистре включения часов ?
Bit 25 CAN1EN: CAN1 clock enable Set and cleared by software. 0: CAN1 clock disabled 1: CAN1 clock enabled

Стивестронг
Чт 20 апреля 2017 г. 20:00
michael_l написал:LINE_NUM средний бит в регистре включения часов ?

victor_pv
Сб 22 апреля 2017 г. 15:50
Некоторый прогресс.
Я взял последнее ядро ​​F1, которое мы использовали, которое было основано почти на последних Libmaple, а также многочисленные дополнения и исправления в течение года, и объединил файлы F2/F4 из Libmaple, некоторые из которых отсутствовали в папках F1. Я добавил USB -файлы в соответствии с репо Стивом, просто внесло несколько небольших изменений из -за разных имен в ядре F1, и все компилируется, и я получаю мигание.
Я полагаю, что USB работает, но обнаружил, что моя доска - это POS, а USB -порт только для питания, поэтому я постараюсь найти свой USB для серийного преобразователя и, по крайней мере, проверить USART.

Ядро F1 имеет много дополнений и исправлений по сравнению с ядром Aeroquad F4, хотя 99% совместимы, поэтому я думаю, что это будет лучше для строительства.
Он также более совместим с ядром F1, что, надеюсь, позволит любому, кто работает в ядре F1, найти эквивалентные функции в F4 один легче.
Я постараюсь опубликовать его в GitHub, чтобы любой мог проверить и сравнить с текущим F4 One и посмотреть, работает ли он лучше или хуже.

Размеры кода очень похожи. Использование оперативной памяти ниже, так как среди принесенных изменений было перемещение PINMAP на Flash.

Я также думаю о перемещении всех основных структур оперативной памяти в CCM, включая таблицу NVIC, так как это уменьшит задержку из -за вспышки или общего доступа к ОЗУ.

Стивестронг
Сб 22 апреля 2017 г. 15:54
Виктор, отличная работа!
Дайте мне знать, откуда я могу получить и проверить ваши изменения.

michael_l
SAT 22 апреля 2017 г. 15:58
victor_pv: звучит хорошо. Я возьму это в качестве базы и попытаюсь интегрировать драйвер Can. Это выглядит нормально, но некоторые определения необходимы.

Узнало, что RCC_AFIO прокомментирована в F1, и это необходимо для драйвера CAN. Можем ли мы добавить это ? К счастью, IRQ для Can1 то же самое для F1 и F4

Пито
Сб 22 апреля 2017 г. 16:12
Какой драйвер нужен на Win764B, чтобы попробовать USBERIAL () на F407, PLZ?
Решен..

victor_pv
Сб 22 апреля 2017 г., 19:58
michael_l написал:victor_pv: звучит хорошо. Я возьму это в качестве базы и попытаюсь интегрировать драйвер Can. Это выглядит нормально, но некоторые определения необходимы.

Узнало, что RCC_AFIO прокомментирована в F1, и это необходимо для драйвера CAN. Можем ли мы добавить это ? К счастью, IRQ для Can1 то же самое для F1 и F4

Пито
Солнце 23 апреля 2017 г. 12:40
К вашему сведению - сериал над USB работает нормально на 240 м с F407 здесь..

Пито
Солнце 23 апреля 2017 г. 10:56 утра
Может ли кто -нибудь проверить, работает ли сериал (не serialusb) выше 115K2?
Попробовал со скоростью 460K и 920K без повезло.

victor_pv
Пн 24 апреля 2017 г. 4:46 утра
Я загрузил свое ядро ​​в GitHub и обновил 1 -й пост в потоке по ссылке и немного больше информации.
Если у кого -то есть доска с действительным USB, пожалуйста, проверьте и дайте мне знать, если USB работает.

Пито
Пн 24 апреля 2017 г. 8:55 утра
Мой первый тест: Wetstone AG123 с серийным (без USBSerial), Black 407Zet Board
1. Скачал Victor's updated_stm32f4_master
2. Используется общая серия STM32F407V
3. Используется hardfpu с жесткими вызовами
4. Скомпилировано и вспыхнуло - нет - ничего в терминале..
Версия со старым открытием работает.

PS: я снял манипуляции с булавками со светодиодами в Whetstone AG123
При отладке его врезается в ReservedException9 AT: * @param buf Buffer to store items into */ static inline void rb_init(ring_buffer *rb, uint16 size, uint8 *buf) { rb->head = 0; rb->tail = 0; rb->size = size - 1; rb->buf = buf; }

AG123
Пн 24 апреля 2017 г. 8:58 утра
Попробуйте serialusb вместо этого? : D

Пито
Пн 24 апреля 2017 г. 9:15 утра
С serialusb:
-OS, -G, EABI -4.8.3-2014Q1, Hardfpu с Hard, Generic STM32F4V Series, 168 МГц Beginning Whetstone benchmark at 168 MHz ... Loops:1000, Iterations:10, Duration:8592.81 millisec C Converted Single Precision Whetstones:116.38 mflops

Пито
Пн 24 апреля 2017 г. 9:48
Попроеклся с моим тестом Blink407: получайте ошибки компиляции, так как PF9 и PF10 не определены. Старый вариант открытия работал.
Это нормально, так как новый общий 407V не обладает такими булавками. Нам нужен вариант Z для этого..

Пито
Пн 24 апреля 2017 г. 10:45 утра
Со следующими настройками разгона в generic_f407v.H и другие настройки, как указано выше: #define CYCLES_PER_MICROSECOND 240 // F_CPU in MHz // Note: Xtal frequency 8MHz #ifndef BOARD_PLL_M #define BOARD_PLL_M 4 // Xtal divider #endif #ifndef BOARD_PLL_N #define BOARD_PLL_N 240 // PLL_Freq multiplier, PLL_Freq = Xtal / PLL_M * PLL_N #endif #ifndef BOARD_PLL_P #define BOARD_PLL_P 2 // PLL_Freq post divider, F_CPU = PLL_Freq / PLL_P #endif #ifndef BOARD_PLL_Q #define BOARD_PLL_Q 10 // USB divider = PLL_Freq / 48 #endif ..

AG123
Пн 24 апреля 2017 г. 10:56 утра
Немного удивительно, когда мигающие булавки находятся за пределами мировой петли :ржу не могу:
Разгоночный скандал дал хороший рост около 50%, но mflops кажутся немного ниже, чем это возможно
http: // www.STM32duino.com/viewtopic.PHP ... 150#P26867
Возможно, это связано с прерыванием serialusb

Пито
Пн 24 апреля 2017 г., 11:07
Разрыв с серийным и старым открытием составил 143, теперь 166 с новым ядром Victor и Usbeserial..
С сериалом это может быть выше, но сериал здесь еще не работает..

Стивестронг
Пн 24 апреля 2017 г. 11:55
Мои текущие / планы на будущее:

- Я протестирую сериал USB с новым ядром Victor.
- Я проверю аппаратный сериал (Serialx, x>= 1) со скоростями 115 кбит / с и выше - как сообщил, что это не работает.
- В настоящее время я оцениваю GPIO, управляя 16 -битным параллельным дисплеем - уже обнаружил некоторые ошибки.
- Следующим шагом будет FSMC, так как это следующий логический шаг для движения параллельных отображений шины данных - сделает это вместо Pito, если все в порядке.

РЕДАКТИРОВАТЬ
Вопрос:
- В чем причина названия некоторых файлов Core/System к *_f4.*? Весь каталог в любом случае актуален только для F4, поэтому он кажется лишним.

victor_pv
Пн 24 апреля 2017 г. 12:50 вечера
Стивестронг написал:Мои текущие / планы на будущее:

- Я протестирую сериал USB с новым ядром Victor.
- Я проверю аппаратный сериал (Serialx, x>= 1) со скоростями 115 кбит / с и выше - как сообщил, что это не работает.
- В настоящее время я оцениваю GPIO, управляя 16 -битным параллельным дисплеем - уже обнаружил некоторые ошибки.
- Следующим шагом будет FSMC, так как это следующий логический шаг для движения параллельных отображений шины данных - сделает это вместо Pito, если все в порядке.

РЕДАКТИРОВАТЬ
Вопрос:
- В чем причина названия некоторых файлов Core/System к *_f4.*? Весь каталог в любом случае актуален только для F4, поэтому он кажется лишним.

victor_pv
Пн 24 апреля 2017 г. 12:57
Пито написал:Со следующими настройками разгона в generic_f407v.H и другие настройки, как указано выше: #define CYCLES_PER_MICROSECOND 240 // F_CPU in MHz // Note: Xtal frequency 8MHz #ifndef BOARD_PLL_M #define BOARD_PLL_M 4 // Xtal divider #endif #ifndef BOARD_PLL_N #define BOARD_PLL_N 240 // PLL_Freq multiplier, PLL_Freq = Xtal / PLL_M * PLL_N #endif #ifndef BOARD_PLL_P #define BOARD_PLL_P 2 // PLL_Freq post divider, F_CPU = PLL_Freq / PLL_P #endif #ifndef BOARD_PLL_Q #define BOARD_PLL_Q 10 // USB divider = PLL_Freq / 48 #endif ..

AG123
Пн 24 апреля 2017 г. 13:15
@Стив,
Я думаю, что сериал буквально нанесен на карту с serialusb на ядре F1, я думаю, если мы должны держать его таким же. :рулон:

victor_pv
Пн 24 апреля 2017 г. 13:21
AG123 написал:@Стив,
Я думаю, что сериал буквально нанесен на карту с serialusb на ядре F1, я думаю, если мы должны держать его таким же. :рулон:

AG123
Пн 24 апреля 2017 г. 13:39
Мне интересно, хорошо ли это сделать что -то подобное #ifdef SERIAL_USB #include #define Serial SerialUSB #else #define Serial Serial1 #endif

Пито
Пн 24 апреля 2017 г. 14:38
При строительстве с новым ядром я получаю для Serial или Serial1 warning: undefined reference to `Serial1'

victor_pv
Пн 24 апреля 2017 г. 14:40
AG123 написал:Мне интересно, хорошо ли это сделать что -то подобное #ifdef SERIAL_USB #include #define Serial SerialUSB #else #define Serial Serial1 #endif

AG123
Пн 24 апреля 2017 г. 15:29
Одна из этих вещей в глубине души состоит в том, что если определить serial_usb, мы создадим объект Serialusb и определили Serial, чтобы ссылаться на его.
Однако, если пользователь решит Undef serial_usb (скажем, на платформах.TXT), инициализация/перечисление USB не будет.

Эскиз может затем заполнить USB -инициализацию / перечисление и работать в качестве другого USB -устройства класса E.глин. USB Mass Storage, USB Audio, USB CDC, USB CDC Ethernet и т. Д. Я думаю, что это можно считать «продвинутым» использованием, но я думаю, что они действительно сделают эти доски полезными в качестве многоцелевого USB-устройства.

затем для «базового» использования E.глин. Serial_usb определено, мы могли бы заставить его работать, как Arduino Uno ', следовательно, эскизы, которые ищут предварительно определенные серийные. Это может помочь во многих случаях, так как я подумал, что многие наброски, в которых используется серийная консоль, ожидайте, что сериал будет просто там.
Хотя обычно это просто находка и замена, в эскизах, которые ссылаются на сериал, ссылки могут буквально заваленные «по всему эскизу»
эн.глин. Эскиз буквально играет роль команд оболочки и интерпретирует команды, или, в этом отношении, сериал используется в качестве в основном команды интерфейса последовательного интерфейса по умолчанию от хоста и отправлять данные обратно

Я предполагаю, что это серийное использование может быть довольно распространено в эскизах

всего 2 цента

michael_l
Пн 24 апреля 2017 г., 17:51
Пожалуйста, используйте улучшенный USB -серийный код Stevestrong для F4, который он создал для F1 изначально. На самом деле я не уверен, что это уже включено в текущую репо F4. Есть огромная разница с точки зрения скорости.

Стивестронг
Пн 24 апреля 2017 г., 19:46
victor_pv написал: Мне нужно держать их в одних и тех же папках, чтобы отслеживать еще несколько изменений, затем мы можем реорганизоваться таким образом, чтобы иметь больше смысла. Для меня было бы что -то вроде:
Оставьте общие файлы в Core и Libmaple.
Возьмите конкретные файлы MCU вместе в одну папку, названную серией ЦП.
Поскольку они находятся в их собственной папке, возьмите _f4 _f1 и т. Д.
Упростить структуру в папке Libmaple, слишком много подпапок.

victor_pv
Пн 24 апреля 2017 г., 19:51
michael_l написал:Пожалуйста, используйте улучшенный USB -серийный код Stevestrong для F4, который он создал для F1 изначально. На самом деле я не уверен, что это уже включено в текущую репо F4. Есть огромная разница с точки зрения скорости.

Пито
Вт 25 апреля 2017 г. 9:15 утра
Я пробовал с универсальным вариантом F407 Stevestrong. Как серийный, так и сериал.
Однако есть проблема с флагом с рецептом Combiner на Словере, однако.

Пито
Вт 25 апреля 2017 г. 10:37
Объединяя сериал в ядре Виктора:
1. Во время строительства я получаю предупреждение: неопределенная ссылка на «сериал»
2. При отладке его сбоя в Addr 8002968 (или 2962)
3. Мне кажется, что структуры Ring_buffer или BUF не установлены должным образом или что -то в этом роде.
Serial 407 VP assues.jpg
Serial 407 VP выпуск.JPG (177.18 киб) просмотрено 453 раза

victor_pv
Вт 25 апреля 2017 г. 13:43
Пито написал:Объединяя сериал в ядре Виктора:
1. Во время строительства я получаю предупреждение: неопределенная ссылка на «сериал»
2. При отладке его сбоя в Addr 8002968 (или 2962)
3. мне кажется, что кольцо или буф устанавливаются должным образом или что -то в этом роде.
Serial 407 VP выпуск.JPG

AG123
Вт 25 апреля 2017 г. 14:43
Попробуйте ключ ST-Link, если у вас есть этот удобный, ST-Link должен работать через OpenOcd, хотя
Для openocd я использовал двоичные файлы из GNU-Arm-Eclipse
http: // gnuarmeclipse.GitHub.io/openocd/install/
Обратите внимание, что я использую Linux, хотя
Я думаю, что можно подключиться через ключ J-Link через OpenOCD

Пито
Вт 25 апреля 2017 г. 15:14
Я пытался установить плагин Eclipse J-Link в течение последних 3 или 4 часов. Вы следуете моему гиду? 0. Предварительные условия: отладчик jlink (любая черная или серая коробка :) ) и Jlink SW Pack в Segger установили и работали с HW Fine (!)
https: // www.Сеггер.com/загрузки/jlink
J-Flash работает одинаково как утилита ST-Link, так что вы можете проверить..

Это вид спереди в коробке jlink.
Jlink Header.JPG
Jlink Header.JPG (22.89 киб) просмотрено 97 раз

За исключением SWDIO и SWDCLK и GND, вы должны подключить VCC (1) к 3.3v (он не питает чип, но обнаруживает только напряжение чипа)!
Ваша доска должна быть включена.
Я тоже подключил сброс (15)..

1. Установите последнюю ночную сборку Slaeber IDE от:
https: // oss.сонатип.org/content/reposi ... -Снимок/

2. Обновите Sloeber и установите плагин Segger JLink, GNU GDB и плагин поддержки (и другие..) через «Установить новое программное обеспечение» в Slaeber от:
http: // eclipse.Baeyens.это/обновление/v4/ночной

3. Установите пакеты Manger для STM32F103 (или других, когда это необходимо):
http: // gnuarmeclipse.GitHub.io/plugins/packs-manager/
Изменить: мне нужно установить менеджер пакетов из http: // gnuarmeclipse.Sourceforge.net/updates-test Чтобы добавить STM32F407
РЕДАКТИРОВАТЬ: при установке последних пакетов MCU Установите последние (т.е. 2.11.0 для F407).

4. Настройте среду проекта и отладки (выберите STM32F103 в настройке>Устройства):
http: // gnuarmeclipse.GitHub.io/debug/jlink/
Примечание: руководство сообщает вам, что вам нужно начать jlinkgdbserclcl.exe, здесь он работает с jlinkgdbserver.Exe

5. Здесь я должен сначала запустить сервер JLink GDB вручную в качестве внешнего инструмента (добавьте «Jlink GDB -сервер» в «Конфигурацию внешних инструментов»). Когда начинаются приложения Jlink GDB Server, просто нажмите OK. Только после этого я нажимаю на свой Debug_Project под значком ошибки.. (Как это хитрость, чтобы получить его в соответствии с книгами??).
«Start Jlink GDB -сервер локально» отключен здесь (конфигурация отладки).

6. Когда пакет для STM32F103 установлен в Slaeber, вы можете связываться с периферийными устройствами, поскольку пакет включает в себя F103 .SVD -файл с Registers 'и Peripheral's DEF для вас:
http: // gnuarmeclipse.GitHub.io/debug/pe ... регистры/

victor_pv
Вт 25 апреля 2017 г. 15:39
Пито написал:Я пытался установить плагин Eclipse J-Link в течение последних 3 или 4 часов. Вы следуете моему гиду? ..
1. Установите последнюю ночную сборку Slaeber IDE от:
https: // oss.сонатип.org/content/reposi ... -Снимок/

2. Обновите Sloeber и установите плагин Segger JLink, GNU GDB и плагин поддержки (и другие..) через «Установить новое программное обеспечение» в Slaeber от:
http: // eclipse.Baeyens.это/обновление/v4/ночной

3. Установите пакеты Manger для STM32F103 (или других, когда это необходимо):
http: // gnuarmeclipse.GitHub.io/plugins/packs-manager/
Изменить: мне нужно установить менеджер пакетов из http: // gnuarmeclipse.Sourceforge.net/updates-test Чтобы добавить STM32F407
РЕДАКТИРОВАТЬ: при установке последних пакетов MCU Установите последние (т.е. 2.11.0 для F407).

4. Настройте среду проекта и отладки (выберите STM32F103 в настройке>Устройства):
http: // gnuarmeclipse.GitHub.io/debug/jlink/
Примечание: руководство сообщает вам, что вам нужно начать jlinkgdbserclcl.exe, здесь он работает с jlinkgdbserver.Exe

5. Здесь я должен сначала запустить сервер JLink GDB вручную в качестве внешнего инструмента (добавьте «Jlink GDB -сервер» в «Конфигурацию внешних инструментов»). Когда начинаются приложения Jlink GDB Server, просто нажмите OK. Только после этого я нажимаю на свой Debug_Project под значком ошибки.. (Как это хитрость, чтобы получить его в соответствии с книгами??).
«Start Jlink GDB -сервер локально» отключен здесь (конфигурация отладки).

6. Когда пакет для STM32F103 установлен в Slaeber, вы можете связываться с периферийными устройствами, поскольку пакет включает в себя F103 .SVD -файл с Registers 'и Peripheral's DEF для вас:
http: // gnuarmeclipse.GitHub.io/debug/pe ... регистры/

Пито
Вт 25 апреля 2017 г. 15:45
Да, я тоже установил конюшню Sloeber, но после нескольких дней, когда я с ней собрался. Вы можете попытаться установить вещи GNU ARM из теста обновлений (см. Ссылку выше), мне нужно было это для переустановки Manager GNU ARM Pack Manager, чтобы иметь возможность добавить F407 к уже установленному F103.
И да, мне потребовалась неделя, чтобы освоить материал, но теперь он работает так, как рекламируется (за исключением начала сервера JLink, должен быть сделан вручную здесь с помощью внешних инструментов.).

AG123
Вт 25 апреля 2017 г. 15:53
Я испортил свое затмение с Slaeber, в конце концов я решил просто остаться с затмением GNU Arm (хотя не уроженец Arduino, хотя) :ржу не могу:

victor_pv
Вт 25 апреля 2017 г. 16:09
Удаленный Slaeber, удалил рабочую область, установил ночную сборку с вчерашнего дня и смог установить J-Link, наконец...
Теперь посмотрим, смогу ли я выполнить остальные шаги, не испортив их снова, маловероятно :ржу не могу:

Пито
Вт 25 апреля 2017 г. 16:10
Спросите, есть ли какая -либо проблема, чтобы сэкономить время :)

victor_pv
Ср 26 апреля 2017 г., 4:06
Пито написал:Спросите, есть ли какая -либо проблема, чтобы сэкономить время :)

AG123
Ср 26 апреля 2017 г. 6:25
На самом деле это хорошая идея, просто наличие ядра, основанного на Libmaple, возможно, предложит (другую) альтернативу, вполне вероятно, что по мере развития ядер они будут расходятся с точки зрения предлагаемых функций
Но работа над ядрами Danieleff и STM действительно может сэкономить ресурсы и усилия, так как я предполагаю, что по мере продвижения по созданию ядер мы делаем подобные вещи, как попытка выполнить одну и ту же базовую работу в различных сериях (E.глин. F1, F2, F3, F4, F7 и т. Д.)

Разработка такого пути, нацеливаясь на F4, может, однако, позволить нам нацелиться на определенные SOC (e.глин. F4) функции и комбинированные функции платы или, возможно, по -разному реализовать некоторые функции. эн.глин. Как мы работаем с CCM сейчас, может быть не таким же, как и ядро, основанное на HAL, это. эн.глин. Основное ядро ​​на основе HAL может по -разному использовать CCM для поддержания совместимости между сериями. эн.глин. Мы можем расставить приоритеты для использования CCM против общего 128K, в то время как конфигурация по умолчанию в, возможно, HAL Core может сначала использовать общий 128K и впоследствии использовать CCM после того, как общий 128K закончится

всего 2 цента

michael_l
Ср 26 апреля 2017 г. 6:40
STM32F4 имеет довольно хорошее количество оперативной памяти и вспышки по сравнению с F103. С F103, имеющим ядро ​​Libmaple, оправдано таким образом, что у нас есть максимальное количество драгоценного оперативного памяти (16 тысяч или около того). То же самое может не применяться для F4. В основном HAL Daniel доступен, чтобы мы могли сосредоточиться на создании библиотек Arduino в первую очередь. Хорошо, может быть, это было чрезмерное упрощение, но в любом случае... Позже, если какой -то области нуждается в оптимизации, я считаю, что это может быть сделано за периферийные устройства. Лично я хотел бы видеть богатый ардуино F4 Core, способный использовать все периферические платы F4.

AG123
Ср 26 апреля 2017 г., 6:58
Да, платформа F4 со скромно более высоким количеством оперативной памяти и флэш и другими функциями e.глин. FPU делает его более полезным для «реальных» приложений. Скорее я склонен думать, что приложения, нацеленные на платформу F4, в конечном итоге примут форму использования ее в качестве небольшого компьютера (мини -ПК), больше не похож на Arduino Uno
эн.глин. На F4 с несколько большей оперативной памятью довольно целесообразно запускать графический интерфейс микро (Windows), выполняя все другие вещи ADC, DAC, SPI и т. Д. В то время как в F1 20K легко заканчивается для «интенсивного использования Ram», как графический интерфейс в стиле Windows
На самом деле для F4 192K не очень щедрое количество оперативной памяти, но многие позволят больше приложений работать там, где иначе не может
эн.глин. Такие приложения, как Micropython и Elua, в основном нацеливаются на платформы, такие как F4 из -за комбинированных функций большего количества оперативной памяти, вспышки и более быстрого процессора (интуированные языки имеют накладные расходы)

victor_pv
Ср 26 апреля 2017 г. 12:55
AG123 написал:Да, платформа F4 со скромно более высоким количеством оперативной памяти и флэш и другими функциями e.глин. FPU делает его более полезным для «реальных» приложений. Скорее я склонен думать, что приложения, нацеленные на платформу F4, в конечном итоге примут форму использования ее в качестве небольшого компьютера (мини -ПК), больше не похож на Arduino Uno
эн.глин. На F4 с несколько большей оперативной памятью довольно целесообразно запускать графический интерфейс микро (Windows), выполняя все другие вещи ADC, DAC, SPI и т. Д. В то время как в F1 20K легко заканчивается для «интенсивного использования Ram», как графический интерфейс в стиле Windows
На самом деле для F4 192K не очень щедрое количество оперативной памяти, но многие позволят больше приложений работать там, где иначе не может
эн.глин. Такие приложения, как Micropython и Elua, в основном нацеливаются на платформы, такие как F4 из -за комбинированных функций большего количества оперативной памяти, вспышки и более быстрого процессора (интуированные языки имеют накладные расходы)

Беннебой
Ср 26 апреля 2017 г. 13:05
Должен сказать, что как относительный новичок, одно единое ядро, которое охватывает все варианты, чрезвычайно привлекательна. Меньше учиться, легче масштабировать вещи вверх/вниз.

Стивестронг
Ср 26 апреля 2017 г. 13:29
Виктор, кажется, что вы решили пойти по пути Даниэля.
Я тоже должен сначала попробовать.

Самый первый взгляд на эти источники на GitHub показывает, по -видимому, логическая структура.

И я должен согласиться с тем, что для F4 подход даст больше ценности и более быстрого времени разработки, чем на основе Libmaple.
Также обеспечивая маргинальную совместимость с MBBE.

Значит, я думаю, что мы все можем завершить в данный момент:

Реализация "на основе Libmaple" не будет продолжена.

Давайте переключимся на дорожку Даниэля и сосредоточим все наши силы в одном направлении (надеюсь, Даниэль приветствует это решение : mrgreen: )

Я, однако, я все равно буду продолжать использовать arduino_stm32 (репо Роджер) для F1.
И я думаю, что мы можем использовать его в качестве основы для повышения производительности некоторых периферийных устройств (USB Serial, SPI, аппаратный сериал,...) для F4.

Пито
Ср 26 апреля 2017 г. 14:05
Я пытался с репонированием Даниэля - он работает нормально, не найдены проблемы, попробовали SPI1 (SDFAT Bench Works), Whetstone, DEMO CMSIS FFT (с простым отбором ADC), Serial, Serialusb и Bliging PF9/PF10 с моим вариантом ZE. Материал с STM HAL просто работает (поэтому мои несколько сообщений вернулись на Chibios 'STM HAL в качестве шаблона).
Есть ли что -то конкретное, что может сделать Libmaple, и STM HAL не может??

Стивестронг
Ср 26 апреля 2017 г. 14:13
Пито написал:Есть ли что -то конкретное, что может сделать Libmaple, и STM HAL не может??

AG123
Ср 26 апреля 2017 г. 14:23
Да, давайте пойдем с STM32Generic, надеюсь, Даниэль приветствует это решение : mrgreen:

ой & Для F4 1 -й должен получить F4 с акселератором Art (500 MFLOPS PSUedo WHETSOTONE BECHMARK при 240 МГц), по крайней мере, что справится со всеми кодами, как бы ни было толстым, если вы получите STM32F405RGT6, это 1 м. Flash, на этот раз мы видим суффикс M для Flash :ржу не могу:

victor_pv
Чт 27 апреля 2017 г. 14:00
Стив, согласился с F1, для чертежа и подобного Libmaple просто отлично работает с быстрыми скоростями и небольшими ресурсами, я не думаю, что HAL приближается к нему. И у нас работает загрузчик, и знание Libmaple, чтобы исправить или что -либо делать.

Я обновлю первый пост в этой теме, чтобы заявить, что до тех пор, пока мы не найдем преимущество в ядре Libmaple F4 над HAL, мы рассмотрим этот поток мертвым, и сосредоточено на ядрах Daniel и, возможно, на ядрах STM, поскольку они также используют HAL Таким образом, водители должны быть совместимы между двумя в высокой степени.

минимальный
Сб 17 июня 2017 г., 7:43
AG123 написал:USB Serial работает довольно хорошо, благодаря Стиву #include void checkcmd(void); //note this is for the black f407vet6 board int ledPin = BOARD_LED_PIN; //PA6 int led1 = BOARD_LED2_PIN; //PA7 int print = false; // the setup() method runs once when the sketch starts void setup() { SerialUSB.begin(0); //initialize the digital pin as an output: pinMode(ledPin, OUTPUT); pinMode(led1, OUTPUT); digitalWrite(ledPin, HIGH); } //the loop() method runs over and over again, //as long as maple has power void loop() { int i; for (i = 0; i < 10; i++) { digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); } checkcmd(); if (print) SerialUSB.println("Hello world F407"); for (i = 0; i < 5; i++) { digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); delay(500); if (print) SerialUSB.println("Hello world F407"); checkcmd(); } } // listen for the keys 'p' print or 's' stop from the usb serial console void checkcmd() { char r; if(SerialUSB.available()) { r = SerialUSB.read(); } else return; if(r=='p') { //print print = true; } else if (r=='s') { //stop print = false; } }

Стивестронг
Сб 17 июня 2017 г., 7:47
Эта ветка закрыта.

Если вы хотите использовать Libmaple Core с F4 Generic Poard, пожалуйста, следуйте этой ветке:
http: // www.STM32duino.com/viewtopic.PHP?F = 39&T = 1976

Кстати, вместо serialusb просто используйте сериал.

крошечные платы STM32 F4

SPI на STM32F4