Любая параллель в бинарных размерах ide для платы, созданного для стандартного бинарного ПК?

клавиатура
Вт 25 октября 2016 г. 10:28
Я создавал код, который дает мне идею, а также строит базу для того, что окажется в «доске» какого -либо типа. Я знаю, что код, который я собираю для Linux, например, не будет ровно на 100% код для платы, но различные детали будут примерно на 20% или меньше, я подозреваю.

Мой вопрос: если источник Y даст двоичный размер X, как будет сравниваться бинарный размер x при составлении для «платы»? Точные числа не нужны. Я ищу, если x, скажем, Linux с GCC, будет бы то же самое, что и x или на 50% меньше или на 150% больше, как пример смысла, которое я люблю иметь. Я знаю, что библиотеки являются важным фактором, и гранулярность (не совсем) библиотек может быть основным фактором для бинарного размера FNIAL.

О, как я скучаю по дням двоичных файлов, в которых не было библиотеки, а не беспорядок общих библиотек. Ну что ж. Некоторые из нас возвращаются на «пока». Кто -нибудь на самом деле знает, что такое основная память?

С уважением

Джон Л. Мужчины
Торонто, Онтарио
Канада
25 октября 2016 06:29

Mrburnette
Вт 25 октября 2016 г. 12:48
Джон,

Arduino - просто графический интерфейс на вершине куча грязных сценариев, которые происходят за кулисами. Основной компилятор и линкера будут производить тот же бинарный чип, независимо от ОС; Следовательно, OS-X, Linux и Windows будут создавать тот же двоичный файл Blink, который загружается в микроконтроллер. Когда у вас есть набросок в редакторе GUI и нажмите на верхний левый контрольный знак, вам будет показан двоичный размер файла, который загружается на указанную плату. Скомпилирование одного и того же эскиза для другого микроконтроллера, и бинар. Двоичный размер представляет собой хранилище, необходимое в части микроконтроллера: для чипа Atmega328p, Flash находится в чипе и для чипа ESP8266 Флэш - это внешний чип.

Установка IDE и компилятора/линкера GCC предоставляет инструменты, которые позволят вам действительно «смотреть» на код сборки, который представляет двоичный файл. Проверьте эту статью: https: // ucexperiment.WordPress.com/2012 ... H-Windows/


Удачи,
Луча
Проекты Рэя
PS: Я действительно работал с бумажной лентой! Жизнь была чертовски технологической поездкой!

Рик Кимбалл
Вт 25 октября 2016 г. 14:00
Я нашел этот интересный сайт в сети под названием «Компиляторский исследователь», это может быть именно то, что вы пытаетесь найти:

https: // gcc.Godbolt.орг/

Это позволяет легко сравнивать вывод компилятора различных архитектур машины и версий GCC. Вы можете попробовать взять немного кода и выбрать GCC X86, затем сделать то же самое для Arm Cortex-M3. Может, тогда вы сможете дать нам волшебный множитель.

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

-рик

Martinayotte
Вт 25 октября 2016 г. 16:06
Интересный !!!

клавиатура
Вт 25 октября 2016 г., 21:39
Сначала я хочу извиниться за мою опечатку в теме названия потока. Если есть способ отредактировать, дайте мне знать.

Луча,

Спасибо за ответ. Удивляясь после моего поста, я произошел на Командная строка STM32DUINO нить. Tiger762 действительно приложил не только множество усилий, чтобы выяснить, но время и детали информации были просветительными. Поскольку эти микроклалеры и то, как источник строится для создания бинарного файла, новым для меня, мне потребуется немного, чтобы переварить. Я еще не использовал микроконтролера. У меня есть один, нано ждет прототипной доски. Lenoard на промежутке (мне нужно много контактов с АЦП, а не АЦП, но вы теряете для SPI FD, I2C и др. Как вы все знаете и основанный на MCU). Так что я еще никогда не скачал MCU IDE или Arduino.

Ваша точка зрения о том, что бинарник уходит во вспышке была интересной. Я предполагаю, что бинар должен бежать в баран? Правильный? Если не это, вероятно, играет на размер флэш -барана, я пытаюсь определить. Помимо размеров флэш -памяти/ОЗУ, мощность обработки процессора начинает выглядеть как потребность в этом важном личном проекте. Доказательство концепции было в прошлом году примерно в это время, когда я поступил на кабеле RJ11 70 футов, подключенный к тонкому терминалу, работающему с программным обеспечением, и в значительной степени модифицирован/улучшен с 2006 года. Мощность памяти/обработки не была проблемой, но существует больше необходимости в том, что устройство должно сделать, что поднимает мощность обработки STM32. Я знаю, что отец Adafruit будет рисовать около 12 мА (был протестирован и опубликован Adafruit) для написания SD -карт. Что мне еще предстоит выяснить, если STM32 будет похожим. Устройство должно иметь возможность длиться не менее 6-7 дней на батареи перед другой зарядкой. Конструкция аккумулятора переводится на 3 дня до заряда, поэтому не в глубоком цикле аккумулятор.

Причина, по которой я спросил о бинарном размере, и если кто -то видел термин «волшебного мультипликатора», отмеченный Рик, зная, что трэт . Я видел много раз со многими различными компиляторами (не только в) широкая разница в размере кода не только для того же источника, но и даже с той же той же чистой логикой или для точно такого же типа данных разных кодов. Отличается тем, чтобы быть намного отличным, как в нескольких k до сотни Мб. Я также знаю, что у большинства компиляторов C есть некоторые основные недостатки, которые существовали в течение многих лет, которых программа из 10 линейных объявлений не имеет точного и того же, что касается базовой памяти 101 дни бумажной ленты, которая все еще верна по сей день. Такие проблемы, ошибки и предположения в дизайне компилятора не должны существовать, не должны ли я написать программу ассемблера 10-30, чтобы избежать основной памяти компилятора 101. Генерация кода/секвенирование, хорошо, что является совершенно другим обсуждением. В последние несколько дней я попал в некоторые ошибки компилятора, просто код сжигания и не тестирование (я проходил тестирование годами, компиляторы, а также на личном уровне, Agmonst My Разнообразное опыт).

Я знаком с выводом ассемблера GCC, и некоторые другие компиляторы могут генерировать. Я начал в нем, как мой первый язык, стал ассемблером и первым личным проектом задачи, чтобы разобрать ОС и компиляторы/ассемблер вручную, чтобы внести серьезные изменения. Первой целью для IBM OS была программа Assember, чтобы написать Sysgen для IBM Systm, чтобы запустить через 30-40 минут, а не 4-часовой путь IBM. С нуля в АСМЕНТАРЕ как первый вход в компьютеры. Это означает, что ваша ссылка на веб -страницы о абонентском озастенте, чтобы посмотреть, и, возможно, я изменился, но не на некоторое время. Большинство из них являются проблемами с открытым исходным кодом, поэтому «источник с вами» не нуждается в том, чтобы смотреть на ассемблер, за исключением случаев, когда нос говорит что -то воняющее.

Я думаю, вы бы согласились с тем, что, несмотря на дни бумажной ленты, многое не изменилось во многих основных способах. Некоторые вещи идут полным кругом в те дни. И да, я помню бумажную ленту и даже 026 машин клавиатуры, которые использовали ваккумные трубки/клапаны, реле и без транзисторов. По крайней мере, вы не можете «пролить» бумажную ленту. Допустим, что на парковке произошел инцидент на другой сайт, чтобы выполнять работу, где карточные лотки программ ассемблера пролились в загрузочную док -станцию. Переведите, как ужинал, как мать друга сделала закусочную для нас потом.

Мне нужно переварить Командная строка STM32DUINO, Ваш ответ и некоторые из вещей, которые вы сделали, я смотрел за последние несколько месяцев через различные ссылки на этом сайте и по ссылкам после этого. Очень интересное чтение наверняка и много практических рассуждений также. Как только я пройду проблему I2C или мало пристава в коде 98%, тогда я смогу посмотреть на крест -компилирование. Если я смогу сделать это и сделать около 32 -битных двоичных файлов, то это помогает всем. Я могу отвлечься снова, так как кто -то хочет, чтобы я проверил два разных приложения. Прогресс, когда я тестирую и обучаю, почему тестирование выполнено. Я уверен, что вы знаете, что тренировка очень хорошо, и время, которое нужно, по сравнению с тем, что многие думают.


С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
25 октября 2016 г. 16:50 - 17:40
OPPS, знаменитые опечатки JLM нуждались в коррекции 25 октября 2016 г. 17:51

клавиатура
Вт 25 октября 2016 г., 21:48
Рик,

А https: // gcc.Godbolt.орг/ Вы предоставили в своем ответе очень интересно. Действительно интересно. Я должен выглядеть более внимательно. Как вы знаете, размер ширины бита и RISC против комплексных машинных архитектур не означает, что инструкции по меньшему количеству аспекта - это меньший код, ни быстрее или медленнее. Есть много других факторов, чтобы кодировать размер и скорость кода, как вы знаете. Тем не менее, это один из наиболее междушных сайтов, которые можно увидеть в отношении результатов кода. Код, который я пишу, я, вероятно, не могу подключиться, но я могу найти пример кода, похожий на то, чтобы сделать сравнение. Лучше сделать сравнение на уровне блоков/функций и суммируйте детали, поскольку детали используются в их комбинациях. Можно увидеть влияние версии компилятора и методов кодирования, чтобы показать воздействие размера. К сожалению, воздействие на библиотеку не является частью и основным фактором в размере финического кода.


С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
25 октября 2016 17:49

Martinayotte
Вт 25 октября 2016 г., 21:52
Ваша точка зрения о том, что бинарник уходит во вспышке была интересной. Я предполагаю, что бинар должен бежать в баран? Правильный? Нет, код выполняется непосредственно из Flash.

Rogerclark
Вт 25 октября 2016 г., 22:08
Martinayotte написал:Ваша точка зрения о том, что бинарник уходит во вспышке была интересной. Я предполагаю, что бинар должен бежать в баран? Правильный? Нет, код выполняется непосредственно из Flash.

клавиатура
Ср 26 октября 2016 г. 1:28
Rogerclark написал:Martinayotte написал:Ваша точка зрения о том, что бинарник уходит во вспышке была интересной. Я предполагаю, что бинар должен бежать в баран? Правильный? Нет, код выполняется непосредственно из Flash.

Рик Кимбалл
Ср 26 октября 2016 г. 2:40
Клавиатура написала:Мой OP вопрос состоял в том, чтобы выяснить двоичный размер, когда Рик назвал его «волшебным множителем» для данной пары. Наличие этого Вулда дает мне ссылку на размеры, на которую можно использовать как часть критериев выбора MCU.

Mrburnette
Ср 26 октября 2016 г. 14:04
Итак, с этим очень маленьким образцом, установленным волшебным множителем, примерно ~.666 кажется мне злым @Rick
О, да ... это зло,,, :зло:

@Джон,
Можно потратить слишком много времени, думая »о размере кода. Вам лучше посоветовать, по моему мнению, подумать об архитектуре. Большинство микроконтроллеров имеют архитектуру Гарварда, и большинство микропроцессоров имеют архитектуру фон Неймана. Тем не менее, трубопроводы инструкций, буферизация флэш -буферизации, предварительное получение и другие усовершенствования могут действительно возиться с ума, если они выполняют кросс -платформирование программирования.

Я не говорю, что бинарный размер, который хранится во флэш -памяти, не является проблемой, но я скажу, что за 6 лет это не было проблемой. SRAM всегда вызывает беспокойство, особенно если вы пришли из среды с большим железом машины. Но ИМО у меня закончились выводы ввода/вывода, прежде чем у меня закончится вспышка.

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

Библиотеки представляют собой обоюдоострый меч: они позволяют не программистам начать работу и завершить проект, но в мире Arduino они скрывают методы и методы, которые не могут быть «хорошими практиками программирования.«Я довольно откровенен по всей проблеме библиотеки, и мой обычный ответ - никогда не использовать библиотеку, если вы не понимаете, как функционирует код библиотеки. Очевидно, что это добавляет некоторое время к проекту выходного дня, но в долгосрочной перспективе он учитывает, что ваш ум узнает ограничения 3 -го кода. Вы можете легко сгореть, полагаясь на библиотеку, чтобы быть идеальным.

Основываясь на том, что я видел за последние 3 года, изменения в устройствах UC будут продолжаться даже быстрее, чем в прошлом ... или сказал другой способ, изменения ускоряются. Я редко собираю 8-битное устройство больше, потому что 32-разрядные устройства настолько недорого, и потому что эти устройства поставляются с большим количеством ресурсов и работают на более высоких часах, программирование на самом деле проще, потому что не нужно принимать решения в середине потока на код из -за ограничений устройства.

Другая вещь, которая происходит очень быстро, заключается в том, что такие устройства, как ESP8266 (4 доллара с прорывом), могут размещать собственную веб-сеанс и где я сейчас использую серийный USB для перечисленного последовательного порта ПК для мониторинга программы ... Я могу использовать соединение Wi -Fi на своем роутере и использовать Ajax/JavaScript и монитор в моем браузере Chromium... А с XML я могу установить двустороннюю связь и взаимодействовать с контролем ползунка GUI и т. Д. Да, я мог бы ввести в ASCII мониторинг значения управления и отправить его через USB-сериал (и повторить, и повторить и ...), но браузер, несомненно, делает тестовый сеанс более увлекательным.


Луча
SliderControl.jpg
SliderControl.JPG (28.26 киб) просмотрено 819 раз

клавиатура
Ср 26 октября 2016 г., 19:14
Привет, Рик,

Твой Размер и злой волшебный множитель -0.666 интересно и не является полным сюрпризом. Case n Point Несколько лет назад я скомпилировал тот же код на процессоре Intel T5600 и процессоре PI 700 МГц. Программа выполняет некоторые ключевые расчеты всех целых числа ЦП. Я обычно бегаю на тест в течение не менее 10 минут для одного из процессоров тестирования, а затем даю одно и то же количество ичиты, чтобы сравнить. Удивительно, пи был намного быстрее, чем ожидалось для 0.7HX против 1.8 ГГц и др. T5600 был всего на 30% быстрее. Я предполагаю, что, вероятно, RISC против CISC. С этим также, кажется, меньше размера кода из -за набора инструкций RISC.

Размер Commad действительно полезен для знания и использования. Спасибо за это и ваш тест кода, который вы лгали о тесте размеров.


С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
26 октября 2016 15:15

клавиатура
Ср 26 октября 2016 г. 8:09 вечера
Привет, Рэй,

Как всегда у вас есть отличное понимание и перспективы. Твой Последний пост очень ценится за очки и мысли.

Единственная причина моего вопроса о размере кода - позволить мне узнать, какие у меня выбор MCU. Стоимость - это не только фактор, мощность, запас (память и булавки), если мне нужно, спрос на мощность (он же батарея), физический размер, SD/RTC и Pins. Мои большие контакты для этого важного личного проекта мне нужны как минимум 10 булавок АЦП. Как вы знаете, это сложная задача, а затем выберите I2C, SPI и др. В зависимости от дизайна MCU. Мне нужно около 10 цифровых булавок. Добавьте то, что понадобится в булавках для SD/SPI, RTC на I2C, и, возможно, будущая потребность в дисплее/сенсорном экране. Последнее я не склонен иметь из -за рисования мощности. Мощность обработки процессора теперь важна для проекта. Размер позволяет мне узнать, каков мой возможный выбор для MCU, которому придется обрабатывать от -25 ° C до 70c или немного больше.

Я думал, что нано выполнит память о работе или обработку, поскольку масштаб требований, которые мне нужен, увеличился больше, чем я ожидал. Следовательно, решение на основе STM32, которое я узнал только из -за того, что только смотрел на MCU впервые. Я раньше не работал с MCU и не хочу избежать слишком много основ, как узнать, что мне нужно, и найти MCU, которые соответствуют критериям. Затем выберите один или два из этого списка. У меня есть один пост о нескольких mcus re поддержки в разных темах/потоке, который я создал. У меня есть еще один новый предмет для создания для плат типа 4xx ilike, который я позировал для 103 досок. Maple Mini Я смотрел как маленький размер в области нано, похожая на нано, размеры MCU. К сожалению, недостаточно булавок, когда добавить в SD и RTC. Похоже, что количество STM32 с SD на основе SDIO, которое может иметь или не иметь поддержки в библиотеках. Не понимаю, я понимаю из библиотек через этот сайт.

В отличие от памяти, я посмотрел на диаграммы выпуска Dcheck, чтобы увидеть, представляет ли возможный MCU интереса или нет для моих требований. Как память, я бы сказал, ключ к решению, связанному с булавками, и сколько есть доступно для требований. Несколько MCU, которые выглядели как большие возможности, были, к сожалению, были быстро исключены в зависимости от назначений с диаграммами вывода. Снова сэкономьте время и деньги на MCU, который я не могу использовать для того, что мне нужно в настоящее время.

Простой и очень информативный тест Рика дает мне ощущение флэш -части и использования Flash и . Я уже знаю, основываясь на том, что Рик указал как то, что выделяется на ОЗУ, которая основана на команде размера .данные и .BSS AE на самом деле не точна от команды размера. Длинная история, сэтапная для другого моего особого личного проекта. Размер и злой волшебный мультипликатор -0.666 полезен в качестве грубого руководства, для которого я бы использовал такое значение, так как есть много переменных для окончания размера двоичного файла.

Это подводит меня к вашим очкам о библиотеках и знании того, что использует. Я согласен с вами в ваших очках 100%. В начале я, скорее всего, буду использовать библиотеки как есть. Позже я возьму источник и сделаю вещи более гранулированными, чтобы уменьшить/устранить мертвый код из библиотек. Я начал на машине с 8 тыс. Памяти и памятью ядра. Я смог запустить Fortran, Cobal и, ко многим удивлению APL! Все на 8K. Таким образом, у меня есть чувство использования памяти, и я мудрый большую часть времени в использовании памяти. На Flip Side я также несколько лет работал с IBM Mainframes и многими технологиями процессоров и сетевых технологий между ними.

Уровень того, что возможно с MCU и выбором, великолепен. Уже есть много вариантов, и ваша точка зрения с большим количеством MCU с большей способностью великолепна. Выбор более чем хорош или мои потребности сейчас. Мне просто нравится найти один с RTC и SD на борту, чтобы упростить физический дизайн, который уже будет иметь беспорядок досок/схем, чтобы добавить поверх этого, сохраните меня несколько этапов аппаратного решения.

Я оставил то, что мне лучше рассмотреть архитектуру, чтобы продолжительно учитывать мои комментарии, которые я сделал. Я не знаю о влиянии различий, о которых вы отметили в настоящее время с реальной практической точки зрения использования. Мне нужна многозадачность, которая пока кажется «методом» против архитектуры MCU. Я склонен писать код для кросс -платформного использования и простота просто перекомпилирования и ухода. Большая часть моей профессиональной карьеры включала несколько разных архитектур в решении, которое я должен был проверить. Это усилило мою предвзятость к кросс-платформе код. Проведя программирование ассемблера в течение почти 7 лет, было здорово писать код на языках OTEHR в течение этого времени, и с тех пор, как это работает практически на любой платформе. Я не знаю, имеют ли у MCU STM32 более интеллектуальную форму для ручной многозадачности, которая более родной для многих архитектур. До сих пор я читал о ручном, как многозадачность в MCU. Я не закупился глубоко, если есть архитектуры, которые разрешают, не говоря уже о цене, размере (возможно, негабаритно к моим потребностям). Я считаю, что проекты на основе RISC более эффективны и быстрее, чем большинство, не все, дизайн на основе CISC. Если у вас есть простые мысли, чтобы указать мне на это, дайте мне знать. Затем я сделаю копание и исследование.

Надеюсь, я не сделал слишком много опечаток в своем ответе.

С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
26 октября 2016 г. 16:09

Рик Кимбалл
Ср 26 октября 2016 г., 22:45
Клавиатура написала:...В начале я, скорее всего, буду использовать библиотеки как есть. Позже я возьму источник и сделаю вещи более гранулированными, чтобы уменьшить/устранить мертвый код из библиотек.

Mrburnette
Пт 28 октября 2016 г. 13:26
Клавиатура написала:<...>
Мне нужна многозадачность, которая пока кажется «методом» против архитектуры MCU.<...>

клавиатура
Вт 8 ноября 2016 г., 9:04
@Rick

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

Wrt your отвечать на параметрах GCC "-ffunction-sections -fdata-sections" и опции линкера "-WL,-GC-сечения". Я не знал об этих вариантах. Время от времени я просматриваю все варианты GCC, чтобы решить, что имеет смысл для моего использования постепенно. Это я никогда не обращал внимания в прошлые годы отмеченных вами вариантов. У меня есть один набор исходного кода, который я использую динамическим и статически связанным. Я попробую варианты, которые вы предложили увидеть, какое влияние это оказывает на статический результат источника, который я использую ежедневно в течение многих лет. Я подчеркиваю, что этот вариант будет мало влиять на динамический двоичный файл до времени выполнения. Я дам вам знать результаты.

Большое спасибо за то, что привлекли эти варианты.


С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
08 ноября 2016 04:04
08 ноября 2016 г. 06:10 Незначительная коррекция опечатки удалена, не на месте, осталось от предварительного редактирования. JLM

клавиатура
Вт 8 ноября 2016 г. 11:09
@Ray,

Спасибо за ответ. Извините за мой отложенный ответ. Я разобрался с тем, чтобы не быть уведомленным в будущем аспекта ответов.

У меня была матрица в течение нескольких месяцев, которая позволила мне узнать, каковы требования UC, прежде чем показать карту вывода UC. Это позволяет мне экранировать и шорт -лист возможным UCS. Затем я рассматриваю размер совета директоров, совместимость с библиотеками и др. Эта матрица позволила рассмотреть возможность использования ADC на основе I2C, как вы также предложили в качестве рассмотрения.

Wrt your отвечать:

Я читаю Ссылка Freertos вы предоставили. Проницательные моменты и требования для рассмотрения. Ваши точки на «Парадигме программирования немного сдвигаются», и память (я предполагаю в основном RAM), наверняка добавленная накладные расходы. У меня может быть несколько простых в реализации в приложении, и в логике этого может позволить мне добиться того, что я хочу для «многозадачности». Есть один чип, который я могу добавить, что отличным побочным эффектом будет немного проще одного аспекта любой многозадачности. Основная цель чипа, которую я люблю использовать, заключается в том, что он обеспечивает гораздо лучшее управление, поведение, согласованность и гораздо больше устройств, чем проблемы множественных устройств с помощью Pins 99 GPIO 99.9% использование. Не говоря уже о риске повреждения MCU, используя последний 99.9% подход имеет.

Вы правы, что мои аналоговые требования ограничивают мой выбор UC. Я рассматривал АЦП через I2C. ADS1115 - один из простых выборов с точки зрения затрат, доступности и хорошо известных. ADS1115 добавляет 4 отдельных канала ADC на ADS1115 с пределом 4 ADS1115S на основе адресов I2C, которые может иметь ADS1115. Некоторые STM32 имеют 16 АЦП. Больше, чем мне нужно, но выше, чем 8 или 9 булавок ADC STM32F103C8, как Maple Mini или аналогичный.

Мне тоже нравится иметь SD -карту и RTC. Недавно я получил несколько плат SPI SD и SPI RTC на основе DS3231. В моем исследовании говорится, что RTC STM32 довольно «точны». Дрейф DS3231 все еще слишком много для моих нужд. Есть библиотеки, которые позволяют значительно снизить дрейф, специфичный для чипа/кристалла. Я проверю RTC STM32, чтобы увидеть, близко или лучше, чем DS3231, и решу, какой я буду использовать. Наличие батареи для RTC STM32 на борту, как SD, просто упрощает физическое и погоду (защищено в случае с погодой, но у нас здесь зима!) элементы дизайна.

Как вы знаете, ManyStm32 Poards SD основан на SDIO, а не на основе SPI. Пока нет STM32duino.компонент Библиотека SDIO SD. Это, конечно, связано с тем, что необходимо в библиотеках, и время позволяет приоритету. Это означает, что я либо посмотрю, смогу ли я написать библиотеку SDIO и не быть уверенным в ошибках, которые мне, возможно, придется найти и поработать. Эти факторы, когда важные данные затем заходят на SDIO SD -карту против того, что кажется хорошо протестированным SPI SD. Существует баланс времени против стабильности. Скорее всего, я буду на стороне SPI SD -карты на плате STM32 или добавлен через SD -доску, которую я имею в настоящее время. Мне уже нужно будет иметь «несколько» других плат, которые будут питать аналоговые сигналы и параллельные цифровые сигналы (во многих случаях). Я стараюсь сохранить столько же, сколько может беспорядок в ручной проводке, это как бы создает, чтобы не выходить из -под контроля (для количества датчиков с досками или цепями, которые я делаю из существующих схем). Я стараюсь не создавать то, что может быть одним из пользовательских дизайнов платы (инклюзивные факторы стоимости и ита. Это может быть рассмотрение логтера, возможно, обязательным. Пока мне нравится избегать пользовательских дочерних советов (ы).

Этот проект должен будет справиться с более чем 80% от 20% части правила 80/20, что означает, что у меня есть правило 80/80 для этого проекта. Я уже знаю, что у меня есть некоторые проблемы в том, чтобы сделать датчики надежными для погоды (температура, физическая, соль, осадки и др. Я быстро узнал это в доказательстве концепции одного датчика, который будет использоваться. Датчик в порядке, дизайн физической защиты не был, но был просто в течение 10 лет, для которого был создан дизайн и будет на долгие годы. Этоккейке, Торнадо, Ураганы и др. В настоящее время не являются фактором в физических соображениях. Обычный повседневной влажный лето до зимы дождя до снега являются одними из основных физических соображений для этого проекта.

Поскольку может быть необходимость в более чем 20 тыс. ОЗУ STM32F103C8, как UC, увеличение требований к ОЗУ, особенно если мне нужно рассмотреть Freertos, идет рука об руку, имея 16 контактов с АЦП. Возможно, я нашел UC на основе SPI, но основан на UC STM32F103C8T6. Это держит меня до 20 тыс. Конструкция приложения для UC будет приближаться к пределу 20 тыс., Но я могу использовать некоторые методы и другие соображения, чтобы уменьшить, возможно, больше до 4-5K (возможно, меньше) следов ОЗУ, прежде чем библиотеки будут включены в использование ОЗУ. Я понятия не имею, будет ли флеш 128K. Я предполагаю, что Maple Mini, который был отправлен.

Malloc или аналогичные не являются проблемами в коде, которые я написал, использует RAM, просто Becuse Malloc не используется моим кодом. Я не могу говорить за библиотеки UC, связанные с использованием моего кода или не из обычных эффектов отверстия памяти, которые могут возникнуть.

Другая сторона плюс большего количества контактов - более одного канала I2C UC и более одного канала SPI. У этого есть некоторые будущие соображения, которые мне нравятся, которые не являются требованиями PIN -кода для большего количества датчиков. Это может позволить мне внедрить пару уникальных простых элементов, которые были бы маленькими и отличными плюсом.

Теперь у меня есть какой -то фреймворк -код, который я создал примерно на неделю около недели+ назад, который позволяет мне лучше понять требования Flash/Ram для базового кода. Как только несколько других элементов прибудут, я могу добавить фактический код для устройств. Это приведет к бинарным размерам и сколько бинарного использования использует Flash и RAM. Тогда я могу увидеть, смогу ли я внести более кодовые изменения, чтобы уменьшить требования к вспышке и оперативной памяти кода. Добавьте в предложения Rick для компилятора и опций линкера, чтобы уменьшить или устранить мертвый код из библиотек, и, возможно, устройство STM32F103F8 с 20 -кашта. Дисплей не на высоком уровне в моем списке требований, но может быть полезным, не способным читать биты с моими глазами, написанными в SD в то время.

Я надеюсь, что мой сформулированный ответ, и какой -то предыдущий дал ощущение процесса и мышления, которое учитывается в процессе выбора дизайна/UC, который, конечно, WIP. Конечно, я многому научился в своих исследованиях и частью WIP с весенних месяцев до того, как я обнаружил STM32duino.компонент.

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

То же самое касается многих других, которые также опубликовали мне ответы. Это также относится ко многим по сообщениям, которые я прочитал, много, но на самом деле это лишь часть постов на STM32duino.компонент. Много хорошей информации и соображений, чтобы подумать о. Некоторые отличные из этих моментов и мыслей о других постах, не сделанных мной или в результате ответа мне уже учитывались в текущем дизайне/рассмотрении состояния моего проекта. Конечно, многие не знают, что они помогли, по крайней мере, мне в отношении и их также поблагодарить меня за помощь.


С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
08 ноября 2016 04:05 - 05: 44/06: 09

клавиатура
Пн 29 мая 2017 г., 6:42
Я сделал базовый набор тестов для сравнения двоичных размеров для разных плат, используя один и тот же код Souce. Тесты были использованы Arduino IDE, Linux 64 -битная версия 1.8.2, Компилятор Arduino Zero Zero Via Boards Manager, указанный в качестве версии 1.6.15, и последний Arduino_stm32-master (Похоже, 29 мая 2017 года «Последний Commit 920B57A 6 часов назад»). Тесты заняли всего около часа и были сделаны около 3 часов назад.

Данные были введены в электронную таблицу из вывода Arduino IDE проверки компиляции того же исходного файла.

Результаты довольно интересны. Вообще говоря, флэш -изображения STM32 примерно в 5-6 раз больше, чем Arduino Uno, используемый в качестве ссылки. Единственным исключением был STM32 STM Nucleo F103RB, который был около 3.В 2 раза больше размера файла UNO Flash, очень похожий на 32 -битные Arduino M0 и Arduino Zero Boards. Ram Useage был довольно высоким для досок STM32 по сравнению с досками Arduino.

Я ожидаю, что разница между 8 -битным 32 -битным процессором будет примерно в 4 раза. Это будет означать 32 -километровый Flash/2KRAM для 8 -битного UC был бы примерно равен 128K Flash/8K RAM, на мой взгляд,. Хотя несколько результатов, по -видимому, демонстрируют этот фактор 4 ожидания, многие из них выше этого фактора 4 ожидания. Комментарии и мысли, если мое ожидание фактора разницы имеет смысл или нет наиболее приветствуются.

Две доски не совершали, из -за отсутствующего файла заголовка. У некоторых компилятов STM32 были предупреждающие сообщения.

Я прикрепил PDF -файлы двух барных диаграмм из данных электронной таблицы, созданных из количества байтов вспышки, которые будут использоваться, и количество оперативной памяти будет использовано Arduino IDE. Композиты Arduino Zero и M0 не показались, указывают на то, сколько оперативной памяти используется в результате выводной информации Компиляции, или мне не хватает, где найти это значение.


С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
29 мая 2017 06:41 EDT
29 мая 2017 г. 06:52 (добавлены встроенные ссылки на URL)

Rogerclark
Пн 29 мая 2017 г. 7:21
Какой код вы скомпилировали? эн.G Blink?

Какой метод загрузки вы выбрали?

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

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

клавиатура
Пн 29 мая 2017 г., 7:54 утра
Rogerclark написал:

Стивестронг
Пн 29 мая 2017 г. 9:32
Разница заключается не в том, загружаете ли вы или нет, но с помощью простого факта, что вы выбираете метод загрузки через Arduino IDE.

Поэтому, пожалуйста, выберите метод загрузки, отличный от загрузчика STM32Duiino, чтобы сделать сравнение более осуществимым.

Rogerclark
Пн 29 мая 2017 г. 10:16
Вам не нужно на самом деле загружать через сериал

Вам просто нужно настроить тип загрузки на сериал, а затем компилировать.

Если вы сравниваете мигание с различными типами загрузки, E.G generic_stm32f103c

Загрузка загрузчика - 12548
Серийная загрузка 6212

я.E USB Serial занимает почти половину общего размера файла

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

Поэтому, если вы сравниваете F103T, Blink составляет всего 6044 байта (поэтому 200 байтов сохраняются, потому что меньше периферийных устройств и GPIO должны быть частью мусорного ведра)

Следовательно, сравнение размеров двоичных файлов небольшого 8 -битного AVR с большим 32 -битным процессором обязательно покажет, что двоичный для управления STM32 намного больше

клавиатура
Пн 29 мая 2017 г. 14:59
Я понимаю, что настройка последовательной загрузки не будет означать, что мне нужно загрузить файл в UC.

Если кто -то хочет использовать меньше Flash, выберите последовательную загрузку для Arduino, а также STM32Duino?

Есть ли способ увидеть только .o Размер файла до того, как поддерживающие файлы будут связаны в? Это также было бы полезно метрики. Я подозреваю, что не в строительстве через Arduino IDE. Я не уверен, есть ли команда CLI, которая могла бы сломать части.

Будет полезно знать двоичный размер различных способов загрузки. Таким образом, предложения и причины тестирования с помощью серийной загрузки наиболее полезны. Есть ли снова другой размер, который бы привел к использованию stlink для плат ARM/Cortex, которые существуют в STM32 и Arduino?

Я забыл сделать компиляцию для Arduino Dues. Я сделаю это для те же условия, что и в PDF а затем включить в будущее.

Это может быть за несколько дней, прежде чем я сделаю дополнительные тесты. У меня разные обязательства. У меня было короткое время в раннем утреннем часе сегодня утром, чтобы сделать эти тесты. У меня есть копия Arduino_stm32-Master (похоже, 29 мая 2017 года «Последний коммит 920B57A 6 часов назад»), исходный файл и Arduino IDE, Linux 64 -битная версия 1.8.2 сохранил.

Может ли кто -нибудь посоветовать мне, как я сохраняю Arduino Zero и др. Tools One загружает с помощью инструментов/менеджера доски? Мне очень нравится сохранить это, чтобы я мог обеспечить все одинаковые переменные и, следовательно, иметь одинаковые результаты, когда запускаются дополнительные тесты, и контролируемая переменная (i.эн. Метод загрузки, библиотека) изменен? Могу ли я просто застегнуть arduino и связанные с ними каталоги?

С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
29 мая 2017 10:59

AG123
Пн 29 мая 2017 г. 15:22
Я не уверен, что отладка включена, но если вы отключите отладку сказать на платформах.Всего скорее всего, это может сэкономить еще пару байтов (вероятно, больше)

USB занимает место, и есть вероятность, что некоторые другие объекты Libmaple связаны / включены, потому что есть ссылки на них. Libmaple «довольно большой» с точки зрения общего набора функций и функций.

тогда могут быть некоторые флаги C ++, которые еще не были изучены E.глин. --nostdlibs -specs = nano.Spects -fno-Exceptions -fno-rtti -fno-use-cxa-atexit -fno-threadsafe-statics и т. Д. (Последние 4, вероятно, уже на платформах.текст).

Улов, если вы продолжаете пробовать различные компиляции флажков E.глин. --nostdlibs, есть вероятность, что вы столкнетесь с ошибками компиляции, и если вы все равно хотите сохранить объектив малого размера, вам может потребоваться написать коды / функции, чтобы разрешить эти отсутствующие коды / функции самостоятельно.

Вероятно, можно получить меньший размер, продолжая настраивать переменные и коды компиляции, чтобы включить только абсолютный минимум. Очевидно, что стоимость, вероятно, потребуется довольно много усилий / времени, чтобы сделать это, и это для конкретного наброска

http: // www.STM32duino.com/viewtopic.PHP ... 070#P27711 victor_pv написал:Другой участник форума создал этот инструмент для анализа .Файл карты:
http: // danieleff.com/stm32/map_analizer/

клавиатура
Пн 29 мая 2017 г. 11:40
Мне удалось найти промежуточные файлы, которые имеют много полезной информации, так как я раскрыл обычные, а не обычные места.

Я обнаружил, что когда кто -то выберет плату Maple Mini, нет возможности выбрать Serial, Bootlider, Stlink и др. Это предполагает, что нет возможности использовать сериал, а не USB для загрузки эскиза.

@AG123

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

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

С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
29 мая 2017 19:40 Edt

Rogerclark
Вторник 30 мая 2017 г. 2:11
Maple Mini поставляется заранее установлен с помощью загрузчика (в отличие от всех других общих плат), поэтому я не запутал пользователей новичков, добавив множество вариантов, которые им не нужны.

Я мог бы добавить тогда для Maple Mini, но я не помню, чтобы кто -то спрашивал у них, а также вы можете выбрать F103C и получить тот же результат.

клавиатура
Вторник 30 мая 2017 г., 2:53
@Роджер,

Я надеялся, что смогу предположить, что результат F103C будет таким же, как и Maple Mini Bootloader (оригинальный и STM32Duino выбор). Отлично вы прокомментировали в этом отношении. Я не хотел предполагать. Я все еще сделаю тест Maple Mini для согласованности и сравнить с результатом, связанным с F103C с загрузчиком.

Мой день был очень смешан сегодня.

Самый важный аспект дня был побеленным. Я хотел подождать, пока у меня появятся мысли и комментарии к тому, что я сделал, прежде чем я сделаю еще один раунд. Транскрибция к тексту может транскрибировать в электронную таблицу, является наиболее трудоемкой частью процесса тестирования; и большинство ошибок склонны.


С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
29 мая 2017 22:53 Edt

Rogerclark
Вторник 30 мая 2017 г. 7:12 утра
Привет Джон

Я не совсем уверен, что такое объект упражнения.

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

Если вы хотите сравнить двоичные размеры с аналогичными устройствами, вам следует сравнить Arduino Due и Arduino Zero и другие доски ARM с STM32

В этом случае наброски мигания


Arduino Due 22084 байт
Arduino Zero 9408 байт
STM32F103C 6212 байт

Таким образом, его меньше, чем обе сопоставимые доски Arduino

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

КСТАТИ. У меня также установлено ядро ​​NRF5 Sandeep Mistry NRF5, и это делает мигающий набросок 2222 байтов (и это рука)

клавиатура
Вторник 30 мая 2017 г. 8:08 вечера
Роджер,

Цель в основе моей причины я открыл эту тему. Я открыл эту тему, чтобы понять, как ширина бита в архитектуре UC повлияла.

Цель тестов состояла в том, чтобы подтвердить мое предположение, 8 -битное против 32 -битного UC Flash/Flash. Это позволило бы мне определить несколько основных параметров. Если код я создам, превышает ожидаемые 32K/128K (8/32 бит). Ссылка на 328p до STM32F104C8T6. Это может означать, что, возможно, на самом деле может потребоваться UC на основе 256K или 512K, исключая UC -обработку и аккумуляторные соображения, для особых важных личных проектов конечных целей/применения функций/функциональности.

Уникальный важный личный проект был остановлен из -за многих вариаций и расширений проблем с доставкой Aliexpress. Эти проблемы с доставкой aliexpress были связаны с другими важными проблемами, которые я пропущу. Причина важного личного проекта неуклонно увеличивалась и значительно увеличилась в последние месяцы. У меня все еще есть детали, которые мне нужно найти для уникального проекта. Теперь мне нужно найти альтернативные источники деталей, чтобы это было наиболее трудоемким и сложным. Очень неожиданные проблемы aliexpress заставляют меня смотреть на более широкий набор вариантов и/или подмножества того, какую функциональность я планировал в краткосрочной и долгосрочной перспективе. Это может повлиять на выбор UC в сортировку и долгосрочный подход. Долгосрочный срок будет работать над желаемой функциональностью, которая, вероятно, потребует более способной обработки, флэш -памяти/оперативной памяти и сложных элементов бюджета батареи, которые потребуются больше времени для достижения времени, в то время как один или два ключевых аспекта работают гораздо раньше, что может. нужен все меньше и больше доступного арендодателя UC. В этот подход включен функциональный рост, рост UC и способность развивать ту же базу кода. Время разработки/повторного использования кода и экосистемы аппаратной/программного обеспечения является конкурирующими факторами для уникального важного личного проекта, а также срочности для некоторых функций, которые необходимы для работы, по крайней мере, к декабре прошлого года.

Некоторые сюрпризы действительно произошли в паре UC, я изначально протестировал на использование Flash/Ram. Это заставило меня расширить количество UCS для проверки на использование вспышки/оперативной памяти. Я забыл проверить должное в этом первом раунде тестов, которые должен был стать частью 32 -битного сравнения UC. Я был шокирован, насколько велика была Dued Flash/Ram, когда вчера я прошел быстрый тест. Я добавлю из -за электронной таблицы с тестами, проведенными ранее. Я добавлю тесты в таблицу с серийной загрузкой и др., А также другие интересные показатели, которые я смог найти из среды Arduino IDE.

Я думал, что поделюсь результатами, учитывая первоначальную причину моей темы, чтобы узнать, как предсказать размер кода для различных типов битовых размеров UC. В конце концов мне нужно знать, с какими ограничениями вспышки и оперативной памяти я могу столкнуться. Это приводит к тому, что у меня есть в модели разработки, кодирования и выбора UC. Это включает в себя UCS, используемые для прототипирования против того, что UC реализовано на VS, как достигается задача задачи.


С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
30 мая 2017 г. 16:08 Edt

Рик Кимбалл
Вторник 30 мая 2017 г. 8:28 вечера
Я думал, что первоначально предложил использовать должное, но я думаю, что только что сказал Cortex-M3, но я написал это в другой ветке:
ViewTopic.PHP?F = 41&t = 2070&P = 27973&Хилит ... Ize#P27973

STM приобретает атоличный