Etherkit Si5351 Пример становится огромным

Манкан
Солнце 30 октября 2016 г. 15:52
Планируется подключить к моей таблетке Si5351 к моей синей таблетке, но пример двоичных файлов становится все больше, чем доступная вспышка, около 70 кб.
Сначала я подумал, что это что -то с моей установкой Arduino, компьютер с Windows 7, у меня было несколько версий и ароматов Arduino, установленных (и до сих пор есть), поэтому я взял свой Arduino Free Naptop 10 и установил 1.6.9, Добавленные платы, установленные пакет ARDUINO_STM32, установленная библиотека Etherkit SI5351 и начал создавать эскиз SI5351Example.

После исправления ошибки компиляции, которая, как я предполагаю, состоит в том, чтобы изменить интерфейс провода, я еще раз получил двоичный файл 70+кб. Гуглил и нашел следующее http: // danieleff.com/stm32/результат.PHP?не ... T%20SI5351 что указывает на то, что пример кода должен быть около 18 КБ.

Куда мне начать искать?

Пито
Солнце 30 октября 2016 г. 16:44
Много 64 -битной математики там.. Например, в Si5351.час: /* NOTE: macro parameter n is evaluated multiple times, * beware of side effects! */ # define do_div(n,base) ({ \ uint64_t __base = (base); \ uint64_t __rem; \ __rem = ((uint64_t)(n)) % __base; \ (n) = ((uint64_t)(n)) / __base; \ __rem; \ })

Манкан
Солнце 30 октября 2016 г., 17:31
Хорошо, так что обновление с 1.6.9 не решит это. Может быть вариантом, чтобы увидеть, было ли и когда оно было введено? Любые конкретные версии, которые рекомендуют?

Пито
Солнце 30 октября 2016 г., 17:33
Скорее всего, вы должны удалить «новый» из источника, он может загрузить тонны C ++ дерьма (Alloc, Malloc) в код..
void Si5351::set_ms(enum si5351_clock clk, struct Si5351RegSet ms_reg, uint8_t int_mode, uint8_t r_div, uint8_t div_by_4) { uint8_t *params = new uint8_t[20];

Манкан
Солнце 30 октября 2016 г., 17:59
Я никогда не думал, что кто -то использовал новое в встроенное код, я доказал неправильный. Я, конечно, попробую, но это не объясняет, почему код в ссылке, которую я предоставил, составляет 18 КБ.

Пито
Солнце 30 октября 2016 г. 18:03
Лучше спросить Даниэффа : P

Манкан
Солнце 30 октября 2016 г. 18:28
Я заменил два «новых утверждения» на распределение стека, а также удалил соответствующие удаления и закончил следующими размерами:
ST Link 19 716
Сериал 14 316
Загрузчик: 19 732
BMP: 14 300

Гораздо более разумно по сравнению с Дэниелсом 18 868 байтов.

И пример тоже работает :-) Большое спасибо, пито.

Rogerclark
Солнце 30 октября 2016 г. 8:52 вечера
КСТАТИ. Причина того, что загрузка Stlink будет больше, заключается в том, что USB Serial собирается в код (поскольку большинство людей хотят использовать встроенный USB при использовании Stlink, а не подключать другой USB к последовательному адаптеру)

Но, как вы знаете, вы можете удалить USB -серий.TXT и перезапуск IDE.

Я знаю, что у нас может быть еще один вариант меню, чтобы позволить людям выбирать, если они хотят USB -сериал на STLINK, BMP, JLINK и т. Д., Но у нас уже есть одна из самых сложных систем меню для любого ядра Arduino, и я думаю, что это может закончить более запутанно и потенциально раздражает многих пользователей

Манкан
Солнце 30 октября 2016 г., 8:57 вечера
Понял и также согласился с вами Роджером. Достаточно легко добавить варианты меню для продвинутых пользователей, а не загромождать для новых и промежуточных пользователей.

Даниэфф
Пн, 31 октября 2016 г., 6:02
Манкан написал: После исправления ошибки компиляции, которая, как я предполагаю, состоит в том, чтобы изменить интерфейс провода, я еще раз получил двоичный файл 70+кб. Гуглил и нашел следующее http: // danieleff.com/stm32/результат.PHP?не ... T%20SI5351 что указывает на то, что пример кода должен быть около 18 КБ.

Куда мне начать искать?

Rogerclark
Пн, 31 октября 2016 г., 7:03
Даниэфф написал:
Скомпилирование примера кода с Maple Core дает мне 77 КБ. Компиляция Just "void setup () {new int ();}" - 71 КБ.
Компиляция с новым ядром STM Пример - 18 КБ, а "new int ()" 8 КБ.

Даниэфф
Пн, 31 октября 2016 г., 7:31 утра
Rogerclark написал:Даниэфф написал:
Скомпилирование примера кода с Maple Core дает мне 77 КБ. Компиляция Just "void setup () {new int ();}" - 71 КБ.
Компиляция с новым ядром STM Пример - 18 КБ, а "new int ()" 8 КБ.

Rogerclark
Пн, 31 октября 2016 г., 7:33 утра
Интересный

Интересно, что такое недостаток...

Даниэфф
Вторник 01 ноября 2016 г., 4:02
Учитывая, что это в Ардуино, ESP8266, подростка исходные коды; Я думаю, это безопасно.

Rogerclark
Вторник 01 ноября 2016 г., 4:53 утра
ХОРОШО

Я попробую добавить его в ядро ​​F103 и посмотрю, строит ли он и т. Д