tomvdb
Вт 18 июля 2017 г. 9:35 утра
Привет,
Спасибо за всю работу на ядре STM для Arduino. Это круто.
В нашем местном Makerspace мы собираем мини -контроллер Mini Robot на основе STM32. Он использует STM32F042P6. Идея использования Arduino для программирования его обращается со многими нашими членами.
Я провел некоторое время, следуя https: // github.com/stm32duino/wiki/wiki ... nt- (доска) Чтобы добавить нашу плату, измененные файлы здесь:https: // github.com/tomvdb/edubot
Мне удалось добавить его и собрать мигание, которое работает Мне все еще нужно проверить другие ферипералы.
Одна из проблем, которые у меня были на пути, была с шагом 5, добавив конфигурацию системных часов. Сгенерированная система SystemClock_config вызывает функцию error_handler, если есть проблема. Эта функция не является частью STM32Core, поэтому она не выполняет компиляцию. Я удалил ссылку на это из SystemClock_Config, и она работала нормально. Просто что -то, что нужно принять к сведению.
Спасибо за всю работу на ядре STM для Arduino. Это круто.
В нашем местном Makerspace мы собираем мини -контроллер Mini Robot на основе STM32. Он использует STM32F042P6. Идея использования Arduino для программирования его обращается со многими нашими членами.
Я провел некоторое время, следуя https: // github.com/stm32duino/wiki/wiki ... nt- (доска) Чтобы добавить нашу плату, измененные файлы здесь:https: // github.com/tomvdb/edubot
Мне удалось добавить его и собрать мигание, которое работает Мне все еще нужно проверить другие ферипералы.
Одна из проблем, которые у меня были на пути, была с шагом 5, добавив конфигурацию системных часов. Сгенерированная система SystemClock_config вызывает функцию error_handler, если есть проблема. Эта функция не является частью STM32Core, поэтому она не выполняет компиляцию. Я удалил ссылку на это из SystemClock_Config, и она работала нормально. Просто что -то, что нужно принять к сведению.
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_PeriphCLKInitTypeDef PeriphClkInit;
/**Initializes the CPU, AHB and APB busses clocks
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSI14;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSI14State = RCC_HSI14_ON;
RCC_OscInitStruct.HSICalibrationValue = 16;
RCC_OscInitStruct.HSI14CalibrationValue = 16;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
Error_Handler();
}
/**Initializes the CPU, AHB and APB busses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
{
Error_Handler();
}
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1;
PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_HSI;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
{
Error_Handler();
}
/**Configure the Systick interrupt time
*/
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
/**Configure the Systick
*/
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
/* SysTick_IRQn interrupt configuration */
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}
tomvdb
Вт 18 июля 2017 г. 11:05
Хорошо, мне удалось взломать погрузчик DFU вместе. Это не красиво, но работает:
Я использовал это https: // chackaday.IO/Project/4139-STM32- ... -конвертер Чтобы преобразовать файл HEX в файл DFU, а затем использовал инструмент командной строки DFUSE.
Мне пришлось сменить платформы.TXT для генерации шестнадцатеричного файла вместо файла bin, а также добавить следующее раздел загрузки DFU:
Я использовал это https: // chackaday.IO/Project/4139-STM32- ... -конвертер Чтобы преобразовать файл HEX в файл DFU, а затем использовал инструмент командной строки DFUSE.
Мне пришлось сменить платформы.TXT для генерации шестнадцатеричного файла вместо файла bin, а также добавить следующее раздел загрузки DFU:
# dfu upload
tools.dfu_upload.cmd=dfu_upload
tools.dfu_upload.cmd.windows=dfu_upload.bat
tools.dfu_upload.path.windows={runtime.tools.STM32Tools.path}/tools/win
tools.dfu_upload.path.macosx={runtime.tools.STM32Tools.path}/tools/macosx
tools.dfu_upload.path.linux={runtime.tools.STM32Tools.path}/tools/linux
tools.dfu_upload.path.linux64={runtime.tools.STM32Tools.path}/tools/linux64
tools.dfu_upload.upload.params.verbose=-d
tools.dfu_upload.upload.params.quiet=
tools.dfu_upload.upload.pattern="{path}/{cmd}" "{build.path}/{build.project_name}.hex" "{build.path}/{build.project_name}.dfu"
Wi6labs
Вт 18 июля 2017 г. 11:55 утра
Привет, tomvdb,
Спасибо, что использовали ядро STM32 для Arduino.
Мне нравится видеть, что все работает для вас.
Одна из проблем, которые у меня были на пути, была с шагом 5, добавив конфигурацию системных часов. Сгенерированная система SystemClock_config вызывает функцию error_handler, если есть проблема. Эта функция не является частью STM32Core, поэтому она не выполняет компиляцию. Я удалил ссылку на это из SystemClock_Config, и она работала нормально. Просто что -то, что нужно принять к сведению. Это уверен, что чего -то не хватает на шаге 5. Я увижу с ST, если мы должны добавить error_handler или предложение внутри вики.
Хорошо, мне удалось взломать погрузчик DFU вместе. Это не красиво, но это работает Отличная работа. Это правда, нативное ядро STM32 не поддерживает (пока?) режим DFU. Вы видели PR #61?
Вы можете открыть запрос на привлечение, чтобы предложить свою работу. Сообщество может помочь вам сделать его более красивым
Спасибо, что использовали ядро STM32 для Arduino.
Мне нравится видеть, что все работает для вас.
Одна из проблем, которые у меня были на пути, была с шагом 5, добавив конфигурацию системных часов. Сгенерированная система SystemClock_config вызывает функцию error_handler, если есть проблема. Эта функция не является частью STM32Core, поэтому она не выполняет компиляцию. Я удалил ссылку на это из SystemClock_Config, и она работала нормально. Просто что -то, что нужно принять к сведению. Это уверен, что чего -то не хватает на шаге 5. Я увижу с ST, если мы должны добавить error_handler или предложение внутри вики.
Хорошо, мне удалось взломать погрузчик DFU вместе. Это не красиво, но это работает Отличная работа. Это правда, нативное ядро STM32 не поддерживает (пока?) режим DFU. Вы видели PR #61?
Вы можете открыть запрос на привлечение, чтобы предложить свою работу. Сообщество может помочь вам сделать его более красивым
tomvdb
Вт 18 июля 2017 г. 12:29
Это выглядит очень хорошо. Очень счастлив от моей стороны. Я протестировал ШИМ и аналоговые входы. Все кажется хорошо. Я нашел ошибку в pins_arduino.h В отношении макроса цифрового типа. Не хватало скобок. Исправлена это, и теперь мое прерывание работает.
Получить запрос на исправление
https: // github.com/stm32duino/arduino_c ... 32/тяга/65
Отличная работа. Это правда, нативное ядро STM32 не поддерживает (пока?) режим DFU. Вы видели PR #61?
Вы можете открыть запрос на привлечение, чтобы предложить свою работу. Сообщество может помочь вам сделать его более красивым Я зарекомендовалсь #61. Я скопировал различные файлы из других проектов, чтобы заставить его работать, поэтому я не уверен, что могу просто добавить их в. Кроме того, у него нет двоичных файлов Linux/Mac. Все еще будет играть с этим.
Очевидно, я хотел бы, чтобы наши другие участники Makerspace тоже играли с этим. Но наличие пользовательской платы это означало бы, что им необходимо вносить модификации и т. Д. Для STM32 Arduino Core. Короче говоря, можем ли мы сделать запрос на привлечение для добавления пользовательских плат ? или что было бы лучшим способом справиться с этим?
Получить запрос на исправление
https: // github.com/stm32duino/arduino_c ... 32/тяга/65
Отличная работа. Это правда, нативное ядро STM32 не поддерживает (пока?) режим DFU. Вы видели PR #61?
Вы можете открыть запрос на привлечение, чтобы предложить свою работу. Сообщество может помочь вам сделать его более красивым Я зарекомендовалсь #61. Я скопировал различные файлы из других проектов, чтобы заставить его работать, поэтому я не уверен, что могу просто добавить их в. Кроме того, у него нет двоичных файлов Linux/Mac. Все еще будет играть с этим.
Очевидно, я хотел бы, чтобы наши другие участники Makerspace тоже играли с этим. Но наличие пользовательской платы это означало бы, что им необходимо вносить модификации и т. Д. Для STM32 Arduino Core. Короче говоря, можем ли мы сделать запрос на привлечение для добавления пользовательских плат ? или что было бы лучшим способом справиться с этим?
Wi6labs
Ср. 19 июля 2017 г. 9:20 утра
Во -первых, спасибо за исправление.
Во -вторых, ты прав. Может я говорил слишком быстро. Чтобы добавить пользовательскую плату, которая влияет на ядро, будет сложно.
Но предложите некоторые функции до кольца, потому что вы находите способ добавить его и сделать это достаточно общим, чтобы работать со всеми вариантами, мы возьмем это.
У меня нет последнего слова. Вы открываете реальную дискуссию об этой теме.
Во -вторых, ты прав. Может я говорил слишком быстро. Чтобы добавить пользовательскую плату, которая влияет на ядро, будет сложно.
Но предложите некоторые функции до кольца, потому что вы находите способ добавить его и сделать это достаточно общим, чтобы работать со всеми вариантами, мы возьмем это.
У меня нет последнего слова. Вы открываете реальную дискуссию об этой теме.
tomvdb
Ср. 19 июля 2017 г., 11:28
В идеале можно было бы использовать менеджер совета директоров для создания варианта из моей пользовательской платы, который зависит от ядра STM32-Aduino. Таким образом, пользователю нужно сначала установить STM32-ядер, а затем моя пользовательская плата (которая по сути добавляет вариант).
Обычно пользовательская плата не должна изменять какие -либо файлы на ядро, за исключением следующего:
Обычно пользовательская плата не должна изменять какие -либо файлы на ядро, за исключением следующего:
Edit cores/arduino/stm32/stm32_def_build.h and add the CMSIS_STARTUP_FILE definition.
tomvdb
Ср. 19 июля 2017 г. 13:42
Итак, мне удалось выяснить, как добавить вариант, не возившись с ядром (за одним исключением). Я в основном создал свой собственный пакет для своей доски. Это включает в себя создание файла JSON с информацией о загрузке пакета.
Мой расположен здесь:
Мой расположен здесь:
https://www.binaryspace.co.za/edubot/package_edubot_index.json
Rogerclark
Ср. 19 июля 2017 г., 21:55
Спасибо.
Кто -то на другом форуме недавно рассказал мне о том, чтобы добавить новые доски в существующее ядро, но у меня не было времени, чтобы попробовать это.
Я посмотрю на ваши файлы, как будто мы сможем разделить доски на разные файлы JSON, это будет просто количество вариантов в основном репо
Мы также могли бы делать такие вещи, как испечь файлы json для синей таблетки, черной таблетки и т. Д
Кто -то на другом форуме недавно рассказал мне о том, чтобы добавить новые доски в существующее ядро, но у меня не было времени, чтобы попробовать это.
Я посмотрю на ваши файлы, как будто мы сможем разделить доски на разные файлы JSON, это будет просто количество вариантов в основном репо
Мы также могли бы делать такие вещи, как испечь файлы json для синей таблетки, черной таблетки и т. Д
Wi6labs
Чт 20 июля 2017 г. 13:06
tomvdb,
Единственное изменение, которое я все еще должен был сделать в исходном ядре, было добавить правильное определение файла запуска CMSIS в Cores/arduino/STM32/STM32_DEF_BUILD.H, но, поскольку это общее Partnumber и не связано с конкретной платой, я думаю, что это нормально, поскольку ее нужно добавить только один раз для каждой части (и может быть добавлен в ядро с помощью запроса на вытяжение или просто добавив все возможности за один раз). Планируется полностью завершить STM32_DEF_BUILD.H Файл. Но пиар тоже работает
Роджер,
Это будет здорово, если это возможно. Я открою проблему об этой функции.
Единственное изменение, которое я все еще должен был сделать в исходном ядре, было добавить правильное определение файла запуска CMSIS в Cores/arduino/STM32/STM32_DEF_BUILD.H, но, поскольку это общее Partnumber и не связано с конкретной платой, я думаю, что это нормально, поскольку ее нужно добавить только один раз для каждой части (и может быть добавлен в ядро с помощью запроса на вытяжение или просто добавив все возможности за один раз). Планируется полностью завершить STM32_DEF_BUILD.H Файл. Но пиар тоже работает
Роджер,
Это будет здорово, если это возможно. Я открою проблему об этой функции.
tomvdb
Пт 21 июля 2017 г. 11:21
Мы играли с ним вчера вечером на нашей встрече MakerSpace, и это отлично сработало. Каждый мог просто установить ядро STM32 Arduino, используя BoardsManager, а затем мой вариант Edubot (также используя BoardsManager). Все прошло гладко без проблем, и у нас все запустили за несколько минут
fpistm
Пн 31 июля 2017 г. 15:56
Привет, Том,
Спасибо за ваш отзыв/вклад.
Ваш пиар объединен.
Чтобы добавить пользовательский вариант, вы приняли правильный подход, как описано в сторонней спецификации оборудования Arduino:
https: // github.com/arduino/arduino/wiki ... NT-OR-TOOL
О DFU планируется добавить его. Это было уже добавлено в другом репо и должно быть совместимым. Но я проверю вашу реализацию
Спасибо за ваш отзыв/вклад.
Ваш пиар объединен.
Чтобы добавить пользовательский вариант, вы приняли правильный подход, как описано в сторонней спецификации оборудования Arduino:
https: // github.com/arduino/arduino/wiki ... NT-OR-TOOL
О DFU планируется добавить его. Это было уже добавлено в другом репо и должно быть совместимым. Но я проверю вашу реализацию