Уменьшение использования флэш -памяти Bluepill

Staticmem
Солнце 26 ноября 2017 г. 7:26 утра
Во время работы над моим проектом, который использует модуль BluePill, я заметил, что приближаюсь к полному пределу вспышки 64 КБ, о котором я был несколько удивлен. Проведение общего поиска привело меня к форумам здесь, где в одной из ветров были разговоры о том, как чертежи по сравнению с Atmel 328 использует гораздо больше флэш -памяти памяти. Общая концентрация заключалась в том, что главной причиной была из -за серийной поддержки USB.

Недавно, когда я использовал 328 Uno, я использовал Arduino-Builder и Scripts, когда предпочитаю использовать командную строку и мой выбор редактора командной строки. Я думаю, что метод Arduino-Builder позволяет больше конфигурации помимо того, что достижимо в IDE. В настоящее время для моего кода проекта Bluepill я использую IDE, но переключусь на метод командной строки.

Я хочу восстановить основной код для BluePill с определенными вещами, такими как USB Serial Offabled. Мне не нужен USB-сериал, и если я это сделаю, я подключите USB-сериал в мою плату, в котором используется один из серийных портов HW. Не уверен, какой другой код я также смог бы удалить, чтобы сохранить пространство. Я хотел бы придерживаться библиотек Arduino, которые мне не нужно делать модифицированные версии или писать свой собственный код поддержки. Я хочу достичь моего проекта и кода поддержки в пространство 64K - это то, чего я хочу достичь.

Есть ли какие -либо темы о том, что разговоры о том, как сделать это или какие -либо идеи о том, как я могу уменьшить отпечаток ноги памяти? Я заметил в окне сборки IDE определяется, такие как -dconfig_maple_mini_no_disable_debug = 1 -deserial_usb -dgeneric_bootloader. Могу ли я сойти с рук с отключением этих определений?

Если я создам новый эскиз с setup () и loop (), оба пусты, он придет к 12548 байтам (19%) пространства для хранения программ, так что это так, прежде чем я даже начну.

Последний вопрос будет ли инструмент GCC «полоска» уменьшит размер? Обычно я использую это при строительном коде для процессоров Intel.

Пито
Солнце 26 ноября 2017 г. 9:28 утра
Bluepill получил 128 КБ вспышки.

Стивестронг
Солнце 26 ноября 2017 г. 9:44
Помимо того, что сказал Пито, используйте Stlink для загрузки программного обеспечения, таким образом вы получаете 2K больше флэш -места.
В досках.TXT вы можете удалить, затем опция -deserial_usb для записи метода загрузки Stlink.

Rogerclark
Солнце 26 ноября 2017 г. 10:08
Загрузки серийных и BMP не используют загрузчик или не имеют USB -серийного

Пса. 64K - это довольно много кода, или, возможно, у вас большой набор данных E.глин. немного аудио

Staticmem
Солнце 26 ноября 2017 г. 11:13
@pito: Насколько я понимаю, что чертеж - 64K Flash. Это то, что я выбрал в IDE. STM32F103C8T6.

@Stevestrong: Я использую только Stlink для программирования, но я был под пониманием, который обрабатывается самой частью STM32 в собственном ПЗУ, даже если я полностью вытекает содержимое вспышки? Я посмотрю на доски.TXT -файл, как вы предлагаете, но я не знаю, использует ли он один, как IDE всегда жалуется:
Не мог найти доски.txt in/home/usert/arduino/ardware/arduino_stm32-master/examples. Это до 1.5?
Хотя я думаю, что Роджер упомянул в другой теме, которая является каким -то предупреждением из -за того, как в настоящее время структурирована его библиотека. Где я найду доски.Файл TXT, который нуждается в изменении?

@RogerClark: Ничего такого большого и, конечно, нет аудио. У меня есть какой -то код RTC, оставшийся от 328 сборки, который не имеет вообего места там (это экземпляр RTC_DS1307), просто чтобы он мог скомпилировать и необходимо заменить, и я буду использовать встроенный нативный RTC. Также используйте SDFAT, входы ADC, 2 серийных порта HW, Emonlib и т. Д. (незаконченный энергетический монитор). Мне нужно провести это http: // danieleff.com/stm32/map_analizer/ и проверьте это более подробно, чтобы увидеть, куда он идет.

Пито
Солнце 26 ноября 2017 г. 11:21
Пито: Насколько я понимаю, чертеж - 64K Flash. Это то, что я выбрал в IDE. STM32F103C8T6. Да, ваше понимание верно, согласно таблице данных, C8 Bluepill - 64 КБ.

На самом деле это 128 КБ.

Это похоже на «сумму n от n = 1 до бесконечности равна бесконечности» с моим пониманием, но на самом деле она равна -1/12.

Стивестронг
Солнце 26 ноября 2017 г. 12:07
Везде, где это возможно, избегайте «нового» конструктора, потому что он свяжет огромную нежелательную часть GCC LIB.

2K, на который я имел в виду, является загрузчиком STM32DUINO (во Flash), который позволяет загружать через USB DFU. Для загрузки по stlink это не актуально, хотя.
доски.текст
Вы можете использовать 128K на синей таблетке. Попробуй и ты увидишь ;)

Staticmem
Солнце 26 ноября 2017 г. 13:10
[Стивестронг - Солнце 26 ноября 2017 12:07] - Везде, где это возможно, избегайте «нового» конструктора, потому что он свяжет огромную нежелательную часть GCC LIB.
Я не использовал «новый» в своем коде, но не знаю, что делают либера.
[Стивестронг - Солнце 26 ноября 2017 12:07] - 2K, на который я имел в виду, является загрузчиком STM32DUINO (во Flash), который позволяет загружать через USB DFU. Для загрузки по stlink это не актуально, хотя.
доски.текст
Вы можете использовать 128K на синей таблетке. Попробуй и ты увидишь ;)
Спасибо за доски.TXT ссылка.

Я искал на 128K, и то, что вы, ребята, кажется правильным. Если доска действительно 128 тыс., То, на самом деле у меня нет проблем, если это можно полагаться (это не бизнес -проект). Я слышал истории о том, что ST набил там листы данных, прежде чем вызывает горе для инженерных компаний.

Кто -нибудь загрузил большое случайное изображение мусорного ведра с известной суммой MD5 (скажем, ~ 127 МБ), затем прочитал его обратно и проделал проверку суммы MD5 или еще лучше байт для байта с исходным изображением?

ZMEMW16
Солнце 26 ноября 2017 г. 14:26
@staticmem Я посмотрю на доски.TXT -файл, как вы предлагаете, но я не знаю, использует ли он один, как IDE всегда жалуется:
Не мог найти доски.txt in/home/usert/arduino/ardware/arduino_stm32-master/examples. Это до 1.5?
Если я сберусь с предупреждающим сообщением, я прикоснулся <Справочник упомянутых домов.txt '(linux)
или просто создайте доски.TXT -файл в нем (WIN)

SRP

Стивестронг
Солнце 26 ноября 2017 г. 16:16
[Staticmem - Солнце 26 ноября 2017 г. 13:10] - Кто -нибудь загрузил большое случайное изображение мусорного ведра с известной суммой MD5 (скажем, ~ 127 МБ), затем прочитал его обратно и проделал проверку суммы MD5 или еще лучше байт для байта с исходным изображением?
Нет, но я использовал программное обеспечение с размером 124 тысяч, и оно сработало.

Mrburnette
Солнце 26 ноября 2017 г., 17:20
[Стивестронг - Солнце 26 ноября 2017 г. 16:16] -
Нет, но я использовал программное обеспечение с размером 124 тысяч, и оно сработало.
Я в лагере Стива.

Я помню пост в Ардуино.Форум CC, на котором был расстроен OP, потому что он/он имел так много оставшейся неиспользованной вспышки, и недостаточно использование предположило им, что они используют слишком «большой» AVR для там целей.

Мы все смеемся сейчас.

Но что, если у них был действительно хороший аргумент? Если они переносят на крошечный_авр, такой как T85? Это очень интересно, даже разумная, когда в то время UC _328p был дешевле по количеству == 1 по сравнению с T85?

Вышесказанное все риторичнее, но просто выбрасывается, чтобы задуматься; Для небольших хобби -проектов с ценами на доски UC + около 3 долларов США, мы даже заботимся? я не делаю. В более чем 100 коммерческих подразделениях, вам лучше поверить, что я нанеслю свою шляпу по закупкам.

Луча

Rogerclark
Солнце 26 ноября 2017 г. 8:50 вечера
КСТАТИ.

В некоторых редких случаях синие таблетки могут иметь 64 тыс’S просто подавляющее большинство, кажется, имеет 128 тыс., Поскольку доходность производства STMS настолько высока, они надевают’T есть много деталей с 50% дефектной вспышкой, которую они надеялись продать в качестве STM32F103C8.

Таким образом, на большинстве плат Bluepill есть STM32F103CB, но это’S отмечен как C8

Mrburnette
Вт 28 ноября 2017 г. 13:59
... Эта проблема Flash 64 против 128 может быть более сложной, поскольку никто не рассмотрел проблему QC.

Что, если Методы производства великолепны, а Flash дает 128, но есть «проблема» на странице или двух? Чип отмечен как 64 тыс., И хотя остальные 64K доступны, возможно, есть проблема с производительностью или мягкая ошибка.

Я знаю, что флэш -тесты не написаны как тесты ОЗУ с циклами миллионов марширования 1, 0, комплиментов, альтернатив и т. Д. Я подозреваю, что производственные тесты будут использовать все 1 и все 0 и, возможно, комплименты. Помните, что Flash имеет верхний предел на записи, поэтому тестирование производства QA, вероятно, будет < 1% полезного жизненного цикла.

Это все академическое, но если у кого -то есть опыт работы с тестированием QA на производственных флэш -модулях, их опыт был бы полезен, чтобы поделиться.

У Клайва есть несколько интересных комментариев вокруг середины страницы.


Луча

victor_pv
Вт 28 ноября 2017 г. 15:25
[Staticmem - Солнце 26 ноября 2017 г. 13:10] -

Кто -нибудь загрузил большое случайное изображение мусорного ведра с известной суммой MD5 (скажем, ~ 127 МБ), затем прочитал его обратно и проделал проверку суммы MD5 или еще лучше байт для байта с исходным изображением?
С Stlink вы можете загрузить любые случайные данные, которые вы хотите, чтобы MCU заполняли память, затем прочитайте ее, чтобы проверить. Я сделал это и работал нормально.

Также прошел тест памяти в дополнительной оперативной памяти на других MCU и запустите эскиз, который записывает и считывает различные тестовые шаблоны в память, например, типичный инструмент для проверки MEM, и запустите его в течение нескольких часов без проблем. Результаты были где -то на форуме.
Консенсус, по -видимому, является флэш -памятью, а RAM не являются дефектными, а STM будет использовать один кремниевый кусок для нескольких продуктов. Это не гарантировано, люди нашли MCU C8, у которых было всего 64 КБ, но я не видел, чтобы кто -то находил 128 КБ, но с дефектами.

@Ray, это комментарий от Клайва, на который вы ссылаетесь?
"...Выбор для того, чтобы сделать детали 256 КБ в результате выбора, не тратить время на тестирование за пределы этого, а не биннирующие устройства в какой -то момент ниже полной емкости."

Если мы пройдем это, то, возможно, любой, кто хочет использовать полную вспышку, должен пройти полный тест 00 и ff со Stlink (или мы можем написать эскиз для тестирования, который работает, скажем, 3 или 4 цикла моделей, 00, FF, 66, АА)

Mrburnette
Ср 29 ноября 2017 г. 13:35
[victor_pv - Вт 28 ноября 2017 г. 15:25] -
@Ray, это комментарий от Клайва, на который вы ссылаетесь?
"...Выбор для того, чтобы сделать детали 256 КБ в результате выбора, не тратить время на тестирование за пределы этого, а не биннирующие устройства в какой -то момент ниже полной емкости."

Если мы пройдем это, то, возможно, любой, кто хочет использовать полную вспышку, должен пройти полный тест 00 и ff со Stlink (или мы можем написать эскиз для тестирования, который работает, скажем, 3 или 4 цикла моделей, 00, FF, 66, АА)
Да, это сводная проблема в посте, который я связал ранее.

Я постоянно поражается низкой ценной электроникой на сегодняшнем рынке. Тем не менее, одна из причин, что цены настолько низкие, заключается в том, что производители редко делают сжигание продуктов. Не только готовые продукты не сгорели, многие из внутренних компонентов не сжигаются. Хотя производственные процессы очень хороши, они не составляют 100%, и каскадные компоненты для нескольких производителей неизбежно приведут к дефектному потребительскому продукту где -то на рынке: это лишь факт нынешнего производственного парадигма. Уважаемые производители и дистрибьюторы заменит эти продукты, но это не означает, что процесс не сочетается с проблемой.


Луча