Добавление USB -сериала

Rogerclark
Солнце 25 сентября 2016 г. 8:24
Привет, ребята

Я начал добавлять USB-сериал в ядро ​​F103C, но в настоящее время я получаю ошибки, потому что-werror = Impricity-Function-Function-Declaration, поэтому я не уверен, удалить ли этот вариант компилятора или каким-то образом решить проблему.

Проблема в том, что USBERIAL_RX_HANDLER () вызывается из USBD_CDC_IF.C, но это не объявлено ни в одной цепочке, цепочке для этого файла.

Я взглянул на то, что Vassilis сделал для Hal MX и USBSerial_tx_handler (uint8_t *data, uint16_t len); определяется в варианте.CPP и объявлен в варианте.час

Однако, насколько я могу судить, вариант.H не включен в какой -либо файл, который USBD_CDC_IF.C включает

Мой общий план состоял в том, чтобы объявить оба
__weak void USBSerial_Tx_Handler(uint8_t *data, uint16_t len); // This function should be implemented in variant.cpp __weak void USBSerial_Rx_Handler(uint8_t *data, uint16_t len); // This function should be implemented in variant.cpp

Sheepdoll
Солнце 25 сентября 2016 г., 17:16
Я провел большую часть выходных, пытаясь получить вещи, чтобы бежать на OSX 10.11.6 (El Capitan) с Arduino 6.11. Я продолжал сталкиваться с проблемами с USBD_CDC_IF.в. Некоторые из которых я писал Роджер. Не понимал, что у нас такая же основная проблема с корнем.

В моем случае я настраивал тень проекта в Eclipse (AC6 OpenStm32) Eclipse не позволяет прямую манипулирование включением файлов. Это каким -то образом должно магически индексировать проект и найти все включает.

Я смог из Arduino IDE, используя Nucleo с Stlink из старых инструментов и нового кода ST, чтобы получить простой аппаратный серийный эхо -эхо -эхо, чтобы запустить на NucleOF103. Помимо этого только echos 2 chars, затем висит. Texane Tool также кирпит нуклео. ST поставлял OSX Down Loader не работает. Кажется, он хочет скопировать в node_f103rb в файловой системе. Нуклео прикрепляется к Mac как /объемам /нуклео не уверен, откуда узел. Этот шаблон определяется в досках.текст. Скрипт загрузки просто проходит через.

Чтобы расстроить ядрек. Это сработало, когда я строил пустой проект и запустил отладь.

При попытке импортировать один из проектов HALMX Eclipse сохраняет барфинг на USBD_CDC_IF.в. В чипе есть переключатель #define.H, который включает в себя вариант.H, который, в свою очередь, включает USB DEFS. Предварительный процессор Eclipse не видит этого #define.

вариант.H зависит от чипа.H, который, в свою очередь, зависит от Arduino.час. Я предполагаю, что каким -то образом есть включение в USBD_CDC_IF.c это не является частью Arduino.H Путь.

Я посмотрел на то, что я сделал прошлой весной, который должен был использовать инструмент Python Makefile, который преобразует SW4STM32 .Проект в обычный makefile. Импорт проекта HALMX непосредственно с использованием импортера AC6 игнорирует весь код выше каталога SRC. Добавление отсутствующего файла через перетаскивание в проект не добавляет их в локальный путь сборки. Добавление путей к CDT через проект «свойства», похоже, приносит их в синтаксис.

Импорт проекта в качестве файла Make в Eclipse, кажется, создает правильное дерево пути. Похоже, нет никакого способа добавить отдельные файлы в IDE (как это было бы в Visual Sudio на AVR.) Грязный, что не может щелкнуть правой кнопкой мыши .H файл и сообщите системе отсутствующий путь.

Посмотрев на рабочее пространство Makefile с прошлой весны (без USB CDC) проект сборка. Я замечаю в затмении .Проект XML, который я сопоставлял флагов компилятора, который включает в себя компилятор use_hal_driver. Я также заметил, что в клеве HALMX может быть какой -то код F4XX как CDC, в котором я собирался из базы кода Vassillis Code. Теоретически низкий уровень HAL должен быть автоматически генерируется STMCube32MX. В вызовах HAL API есть достаточно небольших различий в вызовах HAL в верхнем уровне, чтобы быть раздражающим.

Это означает, что компилятор STM32F401XE #Define Compiler и STM32F103XE (с платформы.TXT/Доски.txt) должен быть проверен с помощью #ifdefs. Чтобы настроить глобальные структуры и обработчики USB.

Arduino IDE строит все в папках. Итак, мой проект строится в Arduino IDE, но я не вижу данных о серийных выводах. Несмотря на все его раздражающее разочарование, Eclipse IDE полезен в том смысле, что он делает серо -серию разделов #IFDEF, которые не видят компиляторной системой. Это также означает, что существует некоторая проблема с тем, как мы включаем код USB CDC в проект. Почему я не большой поклонник таких вещей, как перезаписание и наследование абстрактного оператора. Такие хорошо работают на таком языке, как PostScript, LISP или FORTH, которые были определены как объект, ориентированный в первом темпе. ИМО эти вещи не имеют места в C, где обнаружены указатели, а программист (не кодировщик) полностью контролирует систему.

Все, что я хочу сделать, это щелкнуть правой кнопкой. Не тратьте все лето, создавая систему CVS и изучение определения проекта и презентация Power Point, подходящая для обзора управления.

Рик Кимбалл
Солнце 25 сентября 2016 г., 19:10
Моя установка-это доска Nucleo (на самом деле ядро-ядро-плата Nucleo-F030 со всеми прыгунами, удаленными из F030), действуя как Stlink-V2.1 подключено к синей/красной таблетке. Он обнаруживает кору-м3 и знает, что это такое. На самом деле, я могу перетаскивать скомпилированные .бин файлов на него, и они успешно вспыхнули в чип. https: // flic.kr/p/jqgmkm
Sheepdoll написал:Я смог из Arduino IDE, используя Nucleo с Stlink из старых инструментов и нового кода ST, чтобы получить простой аппаратный серийный эхо -эхо -эхо, чтобы запустить на NucleOF103. Помимо этого только echos 2 chars, затем висит.

Rogerclark
Солнце 25 сентября 2016 г., 8:39 вечера
Источник инструмента загрузки ядер STM находится в репо, так что вы можете взглянуть на код.

Скрипт загрузки Windows (файл BAT) довольно хакерский, и я намерен заменить его лучшим, который использует Windows WMIC встроенную EXE для поиска тома Nucleo. Но в данный момент у меня нет нуклео F1, чтобы проверить это.
(STM Скажите мне, что они прислали мне несколько досок для тестирования, но я в настоящее время жду их прибытия)


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


Вернуться к причине моего поста.

Я думаю, что могу создать филиал WIP, так как в настоящее время я не хочу нажать код, который не компилируется.

я.эн., Изменения, которые я внес локально, должны были просто добавить пропущенные USB -файлы и обновить Makefile, чтобы забрать пути включения в папку «промежуточное программное обеспечение», а также для улучшения Makefile для пользователей Windows (поэтому он должен найти компилятор ARM, установленный IDE)

Но поскольку Makefile мгновенно добавляет USB -файлы и пытается их построить, это означает, что я бы загрузил вещи, которые в конечном итоге стали сломанным процессом сборки.



Думаю еще раз об этом, я попробую экспортировать чистый набор файлов, с включенным USB CDCACM, из куба и подтвердить его компилированные в алитолической студии и взглянуть на то, как объявляются USB -функции верхнего уровня приложения, так что, надеюсь, я может повторить то же самое в структурной архитектуре ядра STM Core.

Sheepdoll
Пн 26 сентября 2016 г. 12:53
Я на самом деле работаю над сценарием некоторых процессов сборки (через GhostScript.) Сначала мне нужен рабочий шаблон.

Сегодня я сравнил рабочую сборку F401 Makefile с одним для F301. Вместо того, чтобы сделать новый F103 Makefile, я скопировал Makefile F401 и изменил ссылки с F4 на F1. Из командной строки это делает без ошибок.

У меня было много проблем с получением рабочего пространства F103, чтобы принять Makefile. Eclispse просто молча ушел. Оказывается, что рабочее пространство F401 находится в другом дереве пути. Очевидно, Eclipse не может импортировать проект в ту же папку, что и рабочая область. Возможно, именно поэтому OpenSTM32 пытался скопировать все папки Core/Maple. Eclipse, кажется, для внутренних инструментов копирует файлы в скрытые каталоги. Вот почему редактирование исходного источника не показывает изменения на этапе сборки.

Хороший вызовов на PIN -код SWD. Я проверю это, когда я вернусь на аппаратное обеспечение. Как отмечалось, HW Serial Out работает. Похоже, в функции serialavailable (). Некоторая проблема с кодом ST в качестве существующих выводов кода в ядро. ST не имеет этой таблицы Remap, вместо этого они выполняют поиск на выводной столе, как и другие массивы сортировки кодов Arduino Code.

Тем временем я работаю над новым сценарием, который создает Makefile с дополнительными путями непосредственно из CubeMX на основе .МОК и скрытый файл куб создает .MxProject.

Rogerclark
Пн 26 сентября 2016 г., 5:10 утра
Просто быстрое обновление проблем с USB.

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

Файлы, которые я скопировал из работы Vasillis на ядро ​​HAL MX, кажется, не совсем совместимы с файлами CORE STM, сгенерированными WI6LABS.

Кроме того.

Итак, я сейчас нахожусь в процессе обновления моего STM Cube MX, и я узнаю из Wi6labs, какую версию куба они использовали.

Глядя в куб, я думаю, что можно выбрать, какая версия пакета «прошивка» установлена ​​для каждого MCU.
Однако на данный момент я не уверен, как вы выбираете, какие на установленных пакетах фактически использовать для генерации кода. Но в худшем случае было бы возможно просто иметь один установщик пакета прошивки на серию MCU.

Sheepdoll
Пн 26 сентября 2016 г., 7:16 утра
Я снова прошел немного дальше, чтобы проверить фактическое оборудование.

Я использую код из кода Vasillis примерно с марта 2016 года, который я встал в свою вилку проекта.

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

Основная проблема, по -видимому, заключается в экспортируемом "Extern usbd_handletypedef husbdevicefs;" который, утверждает компилятор, никогда не используется. Внутренне существует переменная husbdevice_0 того же типичного.C терпит неудачу. Похоже, что для связи эти две ссылки необходим для связи этих двух ссылок. Эта ошибка, если это кажется проблемой с библиотекой HAL, так как этот файл регенерируется, когда построен код проекта Cube.


У меня есть одна проблема со сканером синтаксиса CDT и UTOA. Проект включает в себя stdlib.H, хотя Makfile утверждает -nostdlib. Eclipse не позволит этому удалить правой кнопкой мыши. Я не обнаружил, где в XML это определено.
Запуск марки из командной строки работает просто отлично. Это все, что команда сборки Eclipse в любом случае делает. Такое добавляет дополнительный шаг.

Потребовались некоторые усилия, чтобы заставить GDB работать. Нормальный запуск не удается. Запуск через конфигурации отладки работает просто отлично. Код, однако, сбоя в обработке исключений, где сериал.Begin (9600) вызывается из варианта.CPP внутри IFDEF USE_USBERIAL. Значения в этих структурах, по -видимому, распределяются до того, как HAL_INIT () будет вызвана в основном.

Я выключил IFDEF. Код затем сбоя в i2c_init (), который является другой проблемой. Я думаю, что у меня все еще есть старая проводка в исходном дереве. Я также включил все в STM32Cubemx, чтобы увидеть, какой код был сгенерирован.

Не уверен в вариациях пересмотра библиотеки прошивки куба. Я заметил, что OpenStM32 (AC6) загрузил HAL непосредственно в Eclipse. Мое правило (с моих дней в Apple и Lib Revision Hell.) использовать последнюю версию, когда вообще возможно.

Я вставил эти последние изменения в свою вилку GitHub. Самый интересный файл - MakeFile https: // github.com/sheepdoll/halmx_ardu ... 3/Makefile
Если путь инструментов Arduino Arm установлен в командной строке (.профиль или что когда -либо .BSHRC называется), затем сделать может создать проект без какого -либо IDE. Я использовал трюк, чтобы положить заглушку для .INO в отдельный путь (я думаю, что жестко закодированный в Makefile) к заглушке C ++ (в настоящее время мрачный эскиз) я называю этой папкой arduino_extra, и именно здесь я ставлю вещи, которые загромождают основную идею.

Полный путь к вилке git https: // github.com/sheepdoll/halmx_arduino_stm32.git Только ucleof103 имеет значительные изменения. Есть также Makefile в NucleOF401, которая была моей первой попыткой проекта MakeFile.

Rogerclark
Пн 26 сентября 2016 г., 7:19
Спасибо

Я дам вам знать, получу ли я ответ от Wi6labs о версии (ы) прошивки

Rogerclark
Ср 28 сентября 2016 г., 11:28
Просто быстрое обновление

Wi6labs сообщили мне, что они используют
1.4.0 STM32Cubef1 и 1.4.0 STM32Cubel4. Поэтому я обновил свой STM32Cubemx в этих версиях и удалил другие версии, которые я установил
Я скопировал папку MiddleWares в системную папку, а также добавил USB_XX.C и USB_XX.H файлы в папки SRC и Inc для Libstm32f103c
Я также обновил Makefile и один из xxx_conf.H файлы для включения PCD, так как это требовалось USB -файлами.

Это компилируется, но... Результирующий библиотечный файл не работает.

Я подозреваю, что это потому, что отсутствует другой код или другой xxx_conf.h изменение файла требуется
Кроме того, файл Usserial Class от Vassilis (.в) из ядра HAL MX необходимо добавить в это ядро ​​(и может иметь последствия для нуклео)

Тем не менее, чтобы Vasasilis (и любой, кто заинтересован), мог взглянуть, я создал ветвь WIP и втолкнул эти изменения в эту ветвь.

Sheepdoll
Ср 28 сентября 2016 г. 18:14
Эти библиотеки - около 2 ревизий назад. По крайней мере, это версии, с которыми я тестировал :)

Смог добиться большего прогресса с помощью моего автомата сценария сборки в начале недели. Рабочий файл Make -файл был построен вручную с использованием элементов из сгенерированного Makefile и платы/платформы.комбинация TXT. С помощью сценария автоматизации я обнаружил, что использую неправильное определение F0. F401 Nucleo использует RE -след. Ядро f0 использует RB Nucleo.

Также в сценарии сборки определяется довольно много компилятора, который, по -видимому, не используется вилкой Хэла. Тот, который выглядит так, как будто его можно устранить для HAL -DSTM32_MEDIUM_DENCEST. Это, кажется, используется кленом глубоко внутри локализованного аппаратного кода.

На флагах также много повторений в том, как я модифицировал плату/пластин.комбинация TXT определяет флаги. -DSTM32F1 и -D__STM32F1__ Иногда, кажется, определяются более одного на линии сборки.

Я думаю, что есть некоторые места в включении, где Василлис использовал некоторые из моего кода в качестве шаблона и не изменил, что охрана определяет на заголовках включения. Если я помню Hazy, это было больше в секции Blue Pills, которая все еще использовала название проекта Nucleo, а не название проекта Blue Pills. Моя конечная цель состоит в том, чтобы эти сценарии также создали чип и исходные файлы варианта.

Я также рассматриваю возможность установить в сценарии сборки избыточный -darduino_stm_nucleo_f103rb -dboard_nucleo_f103rb командная строка определяет. Они не генерируются STM32Cubemx и существуют только на плате/платформе.текст. Код Cubemx генерирует -dboard_mxnucleof103 (обратите внимание на разницу в корпусах. Когда используются опции конкретных плат.

Причина, по которой я упоминаю об этом, так как вы, кажется, используете моды Vasillis для моего кода. Таким образом, если компилятор не верен, то файлы HAL могут создавать неправильные пути. В некоторых случаях есть предупреждение. Если определяется неправильный обозначатель чипов, код низкого уровня будет создан для тех регистров/периферийных устройств, которые могут быть немного разными. В этих случаях нет ошибок компилятора или предупреждений. Может быть, HW плавающая запястье включена, а не программное обеспечение.

Как Arduino рассчитывает определить вещи на лету, когда компилятор определяет, не установлены правильными, тогда некоторые из предварительных кодов init/allock (например, в оскорбительном USBD_CDC_IF.C, который начал эту ветку.) не выделяются. Затем, когда инициализатор высокого уровня C ++ вызывается, существует исключение из нулевого указателя, так как нет ручки (или ненициализированной ручки) в код HAL. Как написано сериал.Begin (9600) вызывается на USB до распределения структур.

Rogerclark
Ср 28 сентября 2016 г., 21:47
Привет, Джули

Я удалил свой локальный репо, содержащий код Vassilis и скопировал в чистом коде из куба (хотя и выставлен с использованием версии 1.4.0 быть совместимым с файлами HAL, первоначально добавленными Wi6labs)

Код в филиале WIP сейчас компилируется, но результирующий бинар не работает.

Мне не нравится, как USB -код генерирует множество предупреждений о актерах от UNIT8 * до Char *
Насколько я мог сказать, предупреждения были безвредны, но мне интересно, было ли это исправлено в более поздних версиях пакетов «прошивки F1», которые куб мог использовать.


Re: определяет

Я не знаю, что нормально для HAL, поэтому я не заметил, что wi6labs, кажется, сделал немного машапа с определениями из Libmaple.

Они определяются для средней плотности и т. Д. На самом деле являются лучшей конструкцией, чем то, что использует HAL, поскольку он объединяет нагрузку отдельного номера модели MCU, который Canatain Тот же внутреннее оборудование.


Я предполагаю, что нам действительно нужно сделать, так это то, что все файлы HAL и т. Д. В папке System, против чистого набора, сгенерированного из куба (прошивка 1.4.0)

Итак, мы знаем, какие изменения в Wi6labs сделали, как я подозреваю, нам нужно будет обновиться до более поздних версий файлов Cube рано или поздно, так как они уже кажутся несколькими ревизиями (я думаю, что некоторые MCU в кубе находятся в 1.5.x)

Ddrown
Чт 29 сентября 2016 г., 3:19
Rogerclark написал: Мне не нравится, как USB -код генерирует множество предупреждений о актерах от UNIT8 * до Char *
Насколько я мог сказать, предупреждения были безвредны, но мне интересно, было ли это исправлено в более поздних версиях пакетов «прошивки F1», которые куб мог использовать.

Rogerclark
Чт 29 сентября 2016 г., 4:14
Дан

Да.

Можете ли вы опубликовать свой код, или, возможно, Zip и загрузить

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

Если это возможно, вы можете взглянуть на код в филиале WIP, как все, что я сделал, это добавил папку промежуточного программного обеспечения и USB_XXX .C и .H файлы, и похоже, что это сломало библиотеку STM32F103C, так как мой эскиз для тестирования Blink больше не работает на BluePill после того, как я добавил эти файлы.

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

Sheepdoll
Чт 29 сентября 2016 г., 5:25 утра
Привет, Джули

Я удалил свой локальный репо, содержащий код Vassilis и скопировал в чистом коде из куба (хотя и выставлен с использованием версии 1.4.0 быть совместимым с файлами HAL, первоначально добавленными Wi6labs)

Код в филиале WIP сейчас компилируется, но результирующий бинар не работает.

Мне не нравится, как USB -код генерирует множество предупреждений о актерах от UNIT8 * до Char *
Насколько я мог сказать, предупреждения были безвредны, но мне интересно, было ли это исправлено в более поздних версиях пакетов «прошивки F1», которые куб мог использовать.
Я еще не видел предупреждений о типах. Может быть уровень Warn, который у меня есть компилятор на.
Re: определяет

Я не знаю, что нормально для HAL, поэтому я не заметил, что wi6labs, кажется, сделал немного машапа с определениями из Libmaple.
ST, кажется, продвигает инструменты Kiel. Это то, что вы должны использовать на семинаре. Определения создаются инструментом Cube для данного строителя проекта и специфичны для IDE.
Определения исходят из .МОК. Должен быть какой -то экспортер, основанный на правилах, который их создает. OpenStM32 (AC6), кажется, не ставит их в легкое место для MakeFile. Они должны быть где -то в проекте Eclipse.
Я подозреваю, что любые библиотеки ST будут сгенерированы с использованием Kiel, а затем связаны со стороны. Я вижу, что в филиале STM Source - это хорошее место для поиска настройки проекта, используемой для построения либера. Я думаю, что два критических ключа для HAL --DSTM32F103RBTX и -DSTM32F1, оба из которых находятся в .МОК.
Они определяются для средней плотности и т. Д. На самом деле являются лучшей конструкцией, чем то, что использует HAL, поскольку он объединяет нагрузку отдельного номера модели MCU, который Canatain Тот же внутреннее оборудование. Хэл обрабатывает это по -другому. Я не уверен, что они все такие совместимы. Как работает HAL Works, чтобы использовать #ifdef Trees, чтобы включить необходимые заголовки. Это, в свою очередь, специфичны для процессора. Я мало что посмотрел в разделы CMSIS. Похоже, что вызывает Atmel CMSIS непосредственно из ядра. Тогда у них есть преимущество, как и AVR использования одного пакета чипа.
Я предполагаю, что нам действительно нужно сделать, так это то, что все файлы HAL и т. Д. В папке System, против чистого набора, сгенерированного из куба (прошивка 1.4.0)

Итак, мы знаем, какие изменения в Wi6labs сделали, как я подозреваю, нам нужно будет обновиться до более поздних версий файлов Cube рано или поздно, так как они уже кажутся несколькими ревизиями (я думаю, что некоторые MCU в кубе находятся в 1.5.x)
В своей собственной экспериментальной работе я часто восстанавливаю код, используя инструмент Cube. Я вижу, что F0 до 1.6. Похоже, есть также постепенное обновление до MX4.16.0 до MX4.16.1. Я лично не заметил большой разницы в либерациях. По крайней мере, в том, что касается расширения примеров.

Cube довольно хорош в уважении комментариев кода пользователя. Поэтому, если файл изменен, например, Main.C и регенерированный проект, весь код в разделах пользователей остается. Я бы не стеснялся изменять за пределами областей пользователя.

Я продолжаю использовать старый графический Windows Windiff в основных каталогах. Как отмечалось в других местах, Global Mrray PinMap выполняется в новом ST, а не индексируется. Я все еще хочу автоматизировать генерацию этой таблицы. Пока я не нашел хорошего способа сделать это. А .IOC отображает установленные значения. Есть несколько мест, где есть несколько вариантов, например, если вывод настраивается на вытягивании и т. Д.

В случае Maple и Mods Vasillis, созданных для моего кода, есть попытка прикрепить аппаратные таймеры и прочее для PWM. Я не смотрел новый код ST, чтобы увидеть, как создается PWM. То же самое для АЦП.

Даниэфф
Чт 29 сентября 2016 г., 6:17
Rogerclark написал: ...
Код в филиале WIP сейчас компилируется, но результирующий бинар не работает.
...

Rogerclark
Чт 29 сентября 2016 г., 9:20 утра
Спасибо, Даниэль

Я попробую изменить платформу.txt и посмотрите, исправляет ли это это

Ddrown
Пт 30 сентября 2016 г., 16:35
Rogerclark написал:Дан

Да.

Можете ли вы опубликовать свой код, или, возможно, Zip и загрузить

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

Если это возможно, вы можете взглянуть на код в филиале WIP, как все, что я сделал, это добавил папку промежуточного программного обеспечения и USB_XXX .C и .H файлы, и похоже, что это сломало библиотеку STM32F103C, так как мой эскиз для тестирования Blink больше не работает на BluePill после того, как я добавил эти файлы.

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

Rogerclark
Сб 01 октября 2016 г. 1:17
Спасибо Дэн

Я попробую исправить эти файлы некоторое время на выходных.

Пса. Я думаю, что Вассилис сказал, что он мог работать USB; Возможно, он изменил включение Path Stuff на платформе.текст

Но я знаю, что он определенно переписывался с новым смещением вкладки VECT 0x2000 и смог заставить загрузчик прыгнуть в код ядра STM и чтобы он прошивал светодиод на Bluepill

Вассилис
Вт 04 октября 2016 г. 13:07
Я работаю над USBERIAL за последние 2-3 дня. До сих пор мне удалось сделать F103C, распознанный как CDC с моего ПК.
Следующим шагом является добавление USSerial Library в новое ядро.

Следите за обновлениями!

Rogerclark
Вторник 04 октября 2016 г., 8:30 вечера
Спасибо Вассилис.

Алологические за то, что они не исследуют это самому, но я рассматривал проблемы на ядре L476.

Вассилис
Вторник 04 октября 2016 г. 22:44
Rogerclark написал:Спасибо Вассилис.

Алологические за то, что они не исследуют это самому, но я рассматривал проблемы на ядре L476.

Rogerclark
Вт 04 октября 2016 г., 11:21
ХОРОШО

Будем надеяться, что он перейдет в 0x2000 OK ;-)

На самом деле...

Я думал о перемещении всех файлов из LIBSTM32F103C в папку варианта, и, возможно, некоторые из них включают пути,

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

Однако я не знаю, что нужно изменить, чтобы сделать эту работу E.G включает пути и т. Д

Вассилис
Ср. 05 октября 2016 г. 5:10 утра
Rogerclark написал:ХОРОШО
Я думал о перемещении всех файлов из LIBSTM32F103C в папку варианта, и, возможно, некоторые из них включают пути,

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

Однако я не знаю, что нужно изменить, чтобы сделать эту работу E.G включает пути и т. Д

Даниэфф
Ср. 05 октября 2016 г. 5:11
Вассилис написал:Rogerclark написал:Спасибо Вассилис.

Алологические за то, что они не исследуют это самому, но я рассматривал проблемы на ядре L476.

Rogerclark
Ср. 05 октября 2016 г., 6:32
Хорошая идея

Мы могли бы изменить это на постоянную. Это решение одной из проблем.

С нашим существующим репо, каждый вариант получает гораздо больше вариантов e.глин. Загрузить через USB -серийный или через Stlink и т. Д., Которые влияют на другие части сборки, E.глин. Сколько настроено USARTS, но, возможно, перемещение hw_config.C / .H до папки варианта достаточно, чтобы справиться с этим.

Эдогальдо
Ср. 05 октября 2016 г., 7:40
Привет, пожалуйста, извините меня, если мой вклад не полезен, у меня есть лишь случайное время, чтобы посмотреть на эти темы..

Насколько я знаю, позиция векторной таблицы является начальным адресом эскиза (я.эн. 0x08002000 В случае использования загрузчика V2, 0x08005000 в случае использования исходного загрузчика Maple, 0x08000000 в случае использования загрузчика No Bootloader).
Этот адрес обычно указывается в параметрах компилятора через определение платы и устанавливается в реестре MCU SCB_VTOR на этапе запуска, поэтому вопрос: какова необходимость определения для него?

Thakns заранее и лучше, E.

Rogerclark
Ср 05 октября 2016 г. 8:42
В этом ядре мы просто указали смещение

Так что, поскольку большинство людей используют новый загрузчик, смещение будет 0x2000, но в будущем нам также потребуется поддержка 0x5000 для старого загрузчика

Эдогальдо
Ср. 05 октября 2016 г. 8:47
Rogerclark написал:В этом ядре мы просто указали смещение

Так что, поскольку большинство людей используют новый загрузчик, смещение будет 0x2000, но в будущем нам также потребуется поддержка 0x5000 для старого загрузчика

Эдогальдо
Ср. 05 октября 2016 г. 10:06
Эдогальдо написал: Хорошо, но почему бы просто не положить: #if !defined (VECT_TAB_OFFSET) #define VECT_TAB_OFFSET 0x0 /*!< Vector Table base offset field. #endif /* VECT_TAB_OFFSET */

Вассилис
Сб 22 октября 2016 г. 10:03
USBERIAL был добавлен в новое ядро https: // github.com/serasidis/cbp_halmx_2

Я решил использовать код :: блоки для создания статических библиотек вместо использования .файлы MK, которые включают новую ST -репо.
Причина в том, что я больше знаком с Code :: Blocks (спасибо Slammer !).

Есть две статические библиотеки:
- libstm32f103c_gcc_rel.а Это работает по адресу 0x08000000 для использования методов загрузки ST-Link, Serial и BMP
- libstm32f103c_gcc_rel_bl.а Это работает по адресу 0x08002000 для использования метода загрузки DFU.

Я использовал плату Bluepill с generic_boot20_pc13.бин файл загрузчика.

Обе версии (с загрузчиком и Без загрузчика) Используйте USBERIAL. Плохо то, что производимый код слишком большой
21608 байт Flash, 9776 байт ОЗУ.

В любом случае. Чтобы использовать его, просто скопируйте CBP_HALMX_2 папка в ардуино -> Аппаратная папка и выберите плату, которую вы хотите Инструменты -> Доска -> HALMX 2 Вариант Nucleo-F103RB еще не поддерживается.

Rogerclark
Сб 22 октября 2016 г., 19:53
Вассилис,

Спасибо за вашу тяжелую работу по этому улучшению.

Я скачаю его сегодня и проверю на своем Redpill

Я уверен, что многим людям будет интересно попробовать ядро ​​STM, как только это будет добавлено и полностью переплетается

Вассилис
Сб 22 октября 2016 г. 8:52 вечера
Добро пожаловать, Роджер ! ;)

Rogerclark
Солнце 23 октября 2016 г. 9:28 утра
Вассилис

Я быстро смотрел, и я думаю, что вы фактически не использовали библиотеку для варианта Bluepill, но строят все системные файлы, файлы HAL и т. Д. Когда Arduino строит эскиз.

Это правильно ?

Вассилис
Солнце 23 октября 2016 г. 14:15
Роджер,

Чтобы уменьшить время компиляции, просто удалите все .C и .файлы CPP (кроме syscalls_stm32.в Файл) из cbp_halmx_2 \ halmx_2 \ cores папка.

Rogerclark
Солнце 30 октября 2016 г. 1:31
Привет, Вассилис

Фантастическая работа.

Компилируется и работает нормально

Я не удалял никаких файлов, так как было меньше файлов для компиляции, чем в ядре Libmaple, и IDE использовали кэшированные версии большинства объектных файлов.

Мне нужно будет выработать лучший способ интегрировать это в официальное репо STM.


Пса.
Я сейчас занят работой, поэтому я, вероятно, не смогу перенести это в официальное репо до следующих выходных.
Мне также нужно внимательно посмотреть на код

И... Мне нужно будет посмотреть на установку драйвера, потому что последовательное количество USB -последовательных перечисленных в качестве виртуального последовательного устройства STM, которому нужен другой драйвер от кленового последовательного (хотя, возможно, вообще не требуется драйвер или, возможно, STM распространяет драйвер через Microsoft - Я действительно не знаю сейчас)

Вассилис
Пн, 31 октября 2016 г., 7:39
Хороший ! : D

Липкий для этого ?