FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Понедельник, 05.12.2016, 07:26
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!) » Функциональные блоки и размер занимаемой ими памяти? (Оптимизация размера создаваемых проектов...)
Функциональные блоки и размер занимаемой ими памяти?
DWD
Дата: Вторник, 19.01.2016, 19:44 | Сообщение # 1
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Кто нибудь заморачивался вопросом, сколько байт в памяти занимает тот или иной функциональный блок рисуемой программы?

Пример.
Есть приличный уже по размеру проектик (22,96КБ) на UNO.
В одном месте получилось так, что стоят два блока дисплея но на каждый выводится часть общей информации. Решил объединить всё в одном блоке дисплея, а выводимую информацию скомпоновал блоком сложения строк, который и так уже был. Добавил только ему ещё один вход. После компиляции размер проги получился 22,838КБ. То есть, на 122 байта меньше!

Если грубо, то получается, что блок дисплея занимает в памяти примерно 122 байта.
А у меня в создаваемом проекте аж 15 таких блоков дисплея. Почти 1,8КБ памяти занимает только дисплей...
Теперь вот думаю, может перекомпоновать проект так, что бы дисплей был один, а выводимая на него информация формировалась блоками сложения и переключателями?
Глядишь - и места на 1КБ станет больше.
А то уже 70% памяти занято, а есть ещё куча задумок по расширению функционала создаваемого проектика и боюсь, что места не хватит...

Предлагаю делиться опытом в этом плане. А имея что-то типа базы по размерам занимаемой блоками памяти можно будет создавать более оптимальные по размеру проекты.


 
Max Дата: Вторник, 19.01.2016, 20:44 | Сообщение # 2
Гуру
Группа: Проверенные
Сообщений: 482
Награды: 14
Репутация: 4
Статус: Offline
Уже проскакивала такая тема. Автору было предложение сделать в программе расчет оставшейся памяти в зависимости от проекта... Но, кануло все в Лету....

Максим (VK - Максим Дунаевский)
 
DWD Дата: Среда, 20.01.2016, 12:26 | Сообщение # 3
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
А выводы какие-то были сделаны и почему кануло?
Ссылочку не помните? Или ключевые слова для поиска...


 
support Дата: Среда, 20.01.2016, 14:13 | Сообщение # 4
Автор программы
Группа: Администраторы
Сообщений: 579
Награды: 30
Репутация: 21
Статус: Offline
Пока это сделать не возможно. Единственная возможность, в свойствах проекта поставить галочку "Компилировать при  проверке". Тогда нажав кнопку "Проверить" Вы получите отчёт по занимаемой памяти.



Разработчик программы FLProg
 
DWD Дата: Среда, 20.01.2016, 22:12 | Сообщение # 5
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Я имел в виду совсем другое. И не просил сделать такой подсчёт в самой программе.
Чисто опытным путём определить, в каком случае размер программы меньше.

Вот, наприер, нужно будет попробовать сравнить занимаемый объём при соединении между собой двух блоков линией и посредством переменной...


 
Kocтик Дата: Среда, 20.01.2016, 23:17 | Сообщение # 6
Лейтенант
Группа: Проверенные
Сообщений: 76
Награды: 1
Репутация: 0
Статус: Offline
Цитата support ()
Пока это сделать не возможно
Я, почему то думал что каждый определённый блок занимает определённый объём памяти.
 
support Дата: Четверг, 21.01.2016, 06:51 | Сообщение # 7
Автор программы
Группа: Администраторы
Сообщений: 579
Награды: 30
Репутация: 21
Статус: Offline
Цитата Kocтик ()
Я, почему то думал что каждый определённый блок занимает определённый объём памяти.
Не совсем так.  Дело в том что FLprog компилирует свой проект в код на С. Причем все блоки настраиваемые, соответственно код на С при разных настройках получается разный. Затем код на С компилируется в hex файл при помощи компилятора от ArduinoIDE. Там есть свой оптимизатор и т.д. И только после получения hex файла можно понять сколько проект займёт памяти в контроллере.


Разработчик программы FLProg
 
Chaynik Дата: Четверг, 21.01.2016, 18:25 | Сообщение # 8
Лейтенант
Группа: Проверенные
Сообщений: 93
Награды: 0
Репутация: 2
Статус: Offline
Цитата DWD ()
Предлагаю делиться опытом в этом плане. А имея что-то типа базы по размерам занимаемой блоками памяти можно будет создавать более оптимальные по размеру проекты.

Вот значит что заметил я smile

К примеру, создаём простой проект из кнопки и светодиода.
В настройках кнопки включаем "подтягивающий резистор" и защиту от дребезга.


Компилируем проект:


Получаем скетч размером 1116 байт.

Создаём ещё один проект, но в настройках кнопки отключаем "защиту от дребезга",
а будем использовать блок "Bounce" - что по сути одно и тоже.


Компилируем проект:


Получаем скетч размером 1096 байт.
Т.е. с блоком, размер скетча на 20 байт меньше.
Конечно это не так много, но вдруг кому-нибудь, этих 20 байт не будет хватать wink
Прикрепления: 9173824.jpg(64Kb) · 6135271.jpg(80Kb) · 7994838.jpg(59Kb) · 4232863.jpg(77Kb)
 
Kocтик Дата: Четверг, 21.01.2016, 19:46 | Сообщение # 9
Лейтенант
Группа: Проверенные
Сообщений: 76
Награды: 1
Репутация: 0
Статус: Offline
Цитата support ()
FLprog компилирует свой проект в код на С
Значит, если взять сторонний компилятор то можно без труда программировать любой МК? Единственное неудобство программатор.
 
krom23 Дата: Четверг, 21.01.2016, 20:22 | Сообщение # 10
Майор
Группа: Проверенные
Сообщений: 175
Награды: 1
Репутация: 0
Статус: Offline
Да, ещё не стоит забывать, что компилятор трассирует блоки исходя из наличия ближайших свободных вентилей и их более рационального размещения, а отсюда следует, что один и тот-же блок в разных программах будет хоть немного, но отличаться по "массе" от аналогичных. Может я не прав?
 
Форум » Основной » Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!) » Функциональные блоки и размер занимаемой ими памяти? (Оптимизация размера создаваемых проектов...)
Страница 1 из 11
Поиск:

FLProg © 2016
Яндекс.Метрика