реклама на сайте
подробности

 
 
6 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Экономия RAM.
Jenya7
сообщение Mar 8 2016, 17:15
Сообщение #31


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(adnega @ Mar 8 2016, 22:45) *
Адресную книжку нужно хранить в энергонезависимой памяти, иначе сброс МК приведет к ее потере.
Доступ к адресной книжке может быть довольно медленным, т.к. пользователь во много раз менее быстро способен воспринимать информацию.
Т.е. адресную книжку можно и нужно хранить во flash.

у меня не совсем адресная книжка но принцип тот же. я загружаю с внешнего носителя до десяти контактов. работаю с ними. если был рисет - они снова загрузяться с носителя.
я думал считывать контакты с носителя поэлементно и работать с ними - но это время - считывание, парсинг. так я только один раз это сделал на стартапе.
Цитата(HardEgor @ Mar 8 2016, 23:00) *
Выложите свой map-файл, тогда все всё увидят и объяснят. А то получится безрезультатный флуд еще на 2 страницы.

такой вот он мап-файл.

Неудачная загрузка. Вам запрещено загружать такой тип файлов


а что собственно флудить. либо выделяем все глобальные переменные нужного размера либо все uint32_t, давайте решим наконец. sm.gif



Сообщение отредактировал Jenya7 - Mar 8 2016, 17:31
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 8 2016, 17:32
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Оптимизировать нужно там, где наибольший расход.
29К для TCP-стека это что-то уж слишком много. Поменяйте TCP-стек на более экономный.
Для TCP-стека работающего поверх Ethernet-уровня, вполне достаточно очереди приёма в 3-5 ethernet-кадров и очереди передачи в 2-3 ethernet-кадров.
Плюс - несколько десятков байт на информацию о состоянии сокетов и прочие переменные. Всё в сумме это будет около 10кБ (или меньше в зависимости от размера MTU для Ethernet и кол-ва кадров).
Вся обработка всех уровней Ethernet-IP-TCP/UDP и т.п. - на колбэках на этих же кадрах без копирований.

И абсолютно не соглашусь насчёт HEAP - стандартная HEAP в embedded - это зло. К тому-же совершенно не нужна.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 8 2016, 18:32
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (zombi @ Mar 8 2016, 18:31) *
В низкоуровневых языках я как раз этой фигнёй и не занимаюсь.
Выделил память под переменную, знаю какой она размерности и знаю как к ней обращаться.
В отличие от СИшников !

Это Вы по собственной дурости и незнанию обвиняете всех сишников огульно в неведомых грехах. А чем Вы занимаетесь в ассемблере и чем я занимался годы и частично в порядке сопровождения продолжаю в ассемблере заниматься, я знаю. Поскольку РАБОТАЮ в одном ассеблере виртуозно, в паре - хорошо, и в десятке терпимо. В отличие от Вас, который и в одном высокоуровневом языке ни уха ни рыла sad.gif.


QUOTE (Jenya7 @ Mar 8 2016, 18:16) *
я создаю массив структур с запасом не потому что я дурак (хотя это тоже) а потому что я не знаю сколько элементов понадобиться пользователю.

Я хочу 22 миллиарда. Можно? Если НЕ знаете, то почему решили назвать конкретное максимальное число и забить его в качестве количества стуктур?
Что Вы вообще делаете? Что это за стуктуры в непонятных количествах?



QUOTE (jcxz @ Mar 8 2016, 19:32) *
И абсолютно не соглашусь насчёт HEAP - стандартная HEAP в embedded - это зло. К тому-же совершенно не нужна.

Слова "стандартная" это непонятно о чем, по причне того, что стандарта-то и нет. Ну и уж тем более не зло, если не пугаться и уметь хоть чуть-чуть готовить.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 8 2016, 18:46
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(zltigo @ Mar 9 2016, 00:32) *
Слова "стандартная" это непонятно о чем, по причне того, что стандарта-то и нет. Ну и уж тем более не зло, если не пугаться и уметь хоть чуть-чуть готовить.

Под "стандартной" я имел в виду имеющую стандартный malloc-интерфейс, позволяющий побайтное выделение кусков разного размера, приводящее к фрагментации и, соответственно, перерасходу памяти. А здесь как раз тема экономии ОЗУ...
Ещё можно оправдать выделение памяти кусками одинаковой величины (без фрагментации).
Go to the top of the page
 
+Quote Post
zombi
сообщение Mar 8 2016, 18:53
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(zltigo @ Mar 8 2016, 21:32) *
Поскольку РАБОТАЮ в одном ассеблере виртуозно, в паре - хорошо, и в десятке терпимо.

Мда.. дядя.. Сразу видно что такое понятие как скромность вам не ведомо.
Виртуоз biggrin.gif biggrin.gif biggrin.gif многостаночник

Цитата(zltigo @ Mar 8 2016, 21:32) *
В отличие от Вас, который и в одном высокоуровневом языке ни уха ни рыла sad.gif.

Еще и тЭлЫпат ...

Искренне жаль вас.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Mar 8 2016, 19:15
Сообщение #36


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(jcxz @ Mar 8 2016, 22:32) *
Оптимизировать нужно там, где наибольший расход.
29К для TCP-стека это что-то уж слишком много. Поменяйте TCP-стек на более экономный.
Для TCP-стека работающего поверх Ethernet-уровня, вполне достаточно очереди приёма в 3-5 ethernet-кадров и очереди передачи в 2-3 ethernet-кадров.
Плюс - несколько десятков байт на информацию о состоянии сокетов и прочие переменные. Всё в сумме это будет около 10кБ (или меньше в зависимости от размера MTU для Ethernet и кол-ва кадров).
Вся обработка всех уровней Ethernet-IP-TCP/UDP и т.п. - на колбэках на этих же кадрах без копирований.

И абсолютно не соглашусь насчёт HEAP - стандартная HEAP в embedded - это зло. К тому-же совершенно не нужна.

до стэка еще руки не дотянулись. я с LWIP никогда не работал. менять вобщем то не на что. подходящей альтернативы ему нет, я имею в виду соотношение функциональность-вес. так что процесс будет трудный и медленный. sm.gif

Цитата(zltigo @ Mar 8 2016, 23:32) *
Я хочу 22 миллиарда. Можно? Если НЕ знаете, то почему решили назвать конкретное максимальное число и забить его в качестве количества стуктур?
Что Вы вообще делаете? Что это за стуктуры в непонятных количествах?

я выделил 10 элементов. пока это вполне разумно. скажем так - лайт версия. тот же компайлер в котором я работаю - лайт версия компилит 32 кило а не 22 милиарда.
структура это пользовательская задача. malloc тут не подходит - пользователь начнет создавать/затирать элементы - хана куче. sm.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 8 2016, 20:33
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (zombi @ Mar 8 2016, 20:53) *
Еще и тЭлЫпат ...

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




QUOTE (Jenya7 @ Mar 8 2016, 21:15) *
структура это пользовательская задача. malloc тут не подходит - пользователь начнет создвать/затирать элементы - хана куче. sm.gif

C чего бы это, если элементы, например, одинаковые, то любому даже предельно убогому хана не грозит. Использование какого-то malloc так же совершенно не обязательно - менеджер может быть даже узкоспециализированый под уникальные объекты. Тут ведь дело в использовании самого принципа динамического использования памяти.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Mar 8 2016, 23:23
Сообщение #38


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Ставьте 16МБ SDRAM и не придется париться :-)
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Mar 9 2016, 07:27
Сообщение #39


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(ar__systems @ Mar 9 2016, 05:23) *
Ставьте 16МБ SDRAM и не придется париться :-)

идея не плохая но цена высокая. а как скорость доступа?

нет. не пойдет. нет у меня столько ног для него.

Цитата(zltigo @ Mar 9 2016, 02:33) *
C чего бы это, если элементы, например, одинаковые, то любому даже предельно убогому хана не грозит. Использование какого-то malloc так же совершенно не обязательно - менеджер может быть даже узкоспециализированый под уникальные объекты. Тут ведь дело в использовании самого принципа динамического использования памяти.

а я могу создать новый объект и положить его по адресу который я указал?

Сообщение отредактировал Jenya7 - Mar 9 2016, 07:50
Go to the top of the page
 
+Quote Post
amaora
сообщение Mar 9 2016, 12:24
Сообщение #40


Местный
***

Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778



В динамическом выделении будет смысл если, освободившееся место будет так же динамически использоваться для чего-то другого. Это уже может означать, что блоки будут разных размеров. И может понадобится определить правила по которым будет ограничиваться использование памяти для разных целей, если не хотите, чтобы одна задача (не поток выполнения, а в боле широком смысле) съела всю память. Очень непросто может получится.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Mar 9 2016, 13:15
Сообщение #41


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



я вот думаю а что если использовать внешнюю память или SD карту.
С SD картой удобно работать но считывание и парсинг займет много времени.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 9 2016, 14:51
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Jenya7 @ Mar 9 2016, 09:27) *
а я могу создать новый объект и положить его по адресу который я указал?

Не понял зачем? То, что Вы сейчас восжелали есть принципиальная глупость. Если есть какой-то адрес, по по которому хочется что-то положить, то это значит, что сам "объект", пусть даже в качестве куска памяти УЖЕ СУЩЕСТВУЕТ, и "создать новый обьект" по этому адресу логичеси невозможно.


QUOTE (amaora @ Mar 9 2016, 14:24) *
Это уже может означать, что блоки будут разных размеров.

Блоки БУДУТ таких размеров, каких пожелаете.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Mar 9 2016, 15:24
Сообщение #43


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(zltigo @ Mar 9 2016, 20:51) *
Не понял зачем? То, что Вы сейчас восжелали есть принципиальная глупость. Если есть какой-то адрес, по по которому хочется что-то положить, то это значит, что сам "объект", пусть даже в качестве куска памяти УЖЕ СУЩЕСТВУЕТ, и "создать новый обьект" по этому адресу логичеси невозможно.

как же я буду делать свой менеджер памяти если не знаю по каким адресам размещены элементы?

Сообщение отредактировал Jenya7 - Mar 9 2016, 16:37
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 9 2016, 17:17
Сообщение #44


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Jenya7 @ Mar 9 2016, 17:24) *
как же я буду делать свой менеджер памяти если не знаю по каким адресам размещены элементы?

Что то дикие у Вас представления о менеджерах памяти и программировании sad.gif - "по каким адресам" этим менеджер заниматеся - Вам то зачем что то знать?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
zombi
сообщение Mar 9 2016, 23:14
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(zltigo @ Mar 9 2016, 20:17) *
Что то дикие у Вас представления о менеджерах памяти и программировании sad.gif - "по каким адресам" этим менеджер заниматеся - Вам то зачем что то знать?

Ну так рассказали бы дикарям про менеджеры памяти которые способны памяти добавить при условии отсутствия свопирования.
Учитывая что вся физическая память используется и в любой момент времени может понадобиться доступ к ней в реальном времени.
А не морочили людям голову!
Go to the top of the page
 
+Quote Post

6 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 20:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01465 секунд с 7
ELECTRONIX ©2004-2016