[Установлено: Старое ядро] Предложение: перемещать систему/libstm в основную папку

Даниэфф
Сб 05 ноября 2016 г., 10:12
Я верю, что это там, чтобы сделать компиляцию быстрее. Вот мои результаты теста:

Текущий:
  • Сопровождение статической библиотеки (после чистоты) занимает 11 секунд, 57 .o Файлы (45 от STM32F1XX_HAL, 12 из System/Libstm)
  • Компиляция эскиза Arduino в первый раз занимает 6 секунд, 23 .o Core/Arduino Files + Sketch
  • Компиляция эскиза Arduino снова занимает 3 секунды, только переписывает эскиз
Если я перемесчу все файлы из System/libstm32f103c/source и system/libstm32f103c/incule to cores/arduino/libstm (за исключением STM32F1xx_hal_conf.H) (также примечание: не нужно изменять Makefiles/Platform.текст):
  • Сопровождение статической библиотеки (после чистоты) занимает 9 секунд, 45 .o STM32F1XX_HAL файлы
  • Компиляция эскиза Arduino впервые занимает 8 секунд, 35 .o Файлы (23 Core/Arduino + 12 файлов Libstm) + эскиз
  • Компиляция эскиза Arduino снова занимает 3 секунды, только переписывает эскиз
Преимущество:
  • Работая над файлами LIBSTM, не нужно настроить среду создания GCC (в Windows/Linux), каждый раз выполнять компиляцию MakeFile+. Просто компилируйте как всегда.
  • Статическая библиотека должна создаваться только один раз, так как файлы STM32F1XX_HAL редко меняются.
  • VECT_TAB_OFFSET будет работать, так как он будет использоваться временем arduino-compile, а не статическое время компиляции библиотеки.
Недостаток:
  • Немного медленнее компиляция первого эскиза.
  • Только один либстм. Хотя я вижу это как преимущество.

Rogerclark
Сб 05 ноября 2016 г., 19:44
Я делаю это, если мы поддержим другие варианты F1 E.глин. F101 и F105?

Даниэфф
Сб 05 ноября 2016 г., 21:11
Да.
В обеих версиях STATICLIB MAKEFILE должен поддержать его (в настоящее время "CFLAGS += -DSTM32F103XB" и т. Д...); Переместить SystemClock_config от hw_config.С вариантом.CPP; (и перенесите периферические переменные в вариант, если они сильно различаются между чипами).

Rogerclark
Сб 05 ноября 2016 г., 21:38
Не могли бы вы поместить код тестового кода / рефакторинг файла где -нибудь E.глин. GitHub, чтобы я мог взглянуть ?

Вассилис
Солнце 06 ноября 2016 г. 12:56 утра
В соответствии с вашими тестами, текущее ядро ​​нужно 11+6 = 17 секунд для составления эскиза, и предлагаемый также нужен 9+8 = 17 секунд.

Вы собрали большой (сложный) набросок или простой набросок мигания ?

Даниэфф
Солнце 06 ноября 2016 г. 6:53 утра
Rogerclark написал:Не могли бы вы поместить код тестового кода / рефакторинг файла где -нибудь E.глин. GitHub, чтобы я мог взглянуть ?

Даниэфф
Солнце 06 ноября 2016 г., 7:44 утра
Вассилис написал:В соответствии с вашими тестами, текущее ядро ​​нужно 11+6 = 17 секунд для составления эскиза, и предлагаемый также нужен 9+8 = 17 секунд.

Вы собрали большой (сложный) набросок или простой набросок мигания ?

Даниэфф
Солнце 06 ноября 2016 г., 9:40
И вот USB -сериал объединен из https: // github.com/serasidis/cbp_halmx_2

По иронии судьбы мне пришлось положить часть этого в статическую либера.H включен из MiddleWares/ST/STM32_USB_DEVICE_LIBRARY/CORE/INC/USBD_DEF.час .

Кроме того, поскольку пример STM32F100 не имеет USB, он не может компилироваться для этой платы. Bluepill работает.

Rogerclark
Солнце 06 ноября 2016 г., 9:56 утра
Даниэфф написал: До: в первый раз 13 секунд, последующие 6 секунд.
После: в первый раз 16 секунд, последующие 6 секунд.

Grumpyoldpizza
Пн, 07 ноября 2016 г., 12:17
Rogerclark написал:Даниэфф написал: До: в первый раз 13 секунд, последующие 6 секунд.
После: в первый раз 16 секунд, последующие 6 секунд.

Wi6labs
Пн 14 ноября 2016 г. 12:54
Спасибо, Даниэффеф, за всю эту работу.

Наши предварительные тесты являются убедительными в сплете некоторой регрессии для варианта Nucleo.
Теперь мы будем работать над этой новой архитектурой для доски Nucleo STM32F103RB.
Наши тесты будут ограничены вариантом Nucleo. Спасибо за понимание.

Бренд

fpistm
Чт 05 января 2017 г. 10:52 утра
Даниэфф написал: Некоторая очистка:
  1. Очистка, перемещать чип.H до ядер/arduino
  2. Очистка, удалить старую папку Libstm32f1
  3. Очистка, переименовать Libstm32f103c в Staticlibstm32f1, Это важно! Исправляет платформу.TXT включает.

Даниэфф
Чт, 05 января 2017 г., 11:12
Fpistm написал:Даниэфф написал: Некоторая очистка:
  1. Очистка, перемещать чип.H до ядер/arduino
  2. Очистка, удалить старую папку Libstm32f1
  3. Очистка, переименовать Libstm32f103c в Staticlibstm32f1, Это важно! Исправляет платформу.TXT включает.

CDC & F10X