|
|
  |
Экономия RAM. |
|
|
|
Mar 8 2016, 17:15
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
Цитата(adnega @ Mar 8 2016, 22:45)  Адресную книжку нужно хранить в энергонезависимой памяти, иначе сброс МК приведет к ее потере. Доступ к адресной книжке может быть довольно медленным, т.к. пользователь во много раз менее быстро способен воспринимать информацию. Т.е. адресную книжку можно и нужно хранить во flash. у меня не совсем адресная книжка но принцип тот же. я загружаю с внешнего носителя до десяти контактов. работаю с ними. если был рисет - они снова загрузяться с носителя. я думал считывать контакты с носителя поэлементно и работать с ними - но это время - считывание, парсинг. так я только один раз это сделал на стартапе. Цитата(HardEgor @ Mar 8 2016, 23:00)  Выложите свой map-файл, тогда все всё увидят и объяснят. А то получится безрезультатный флуд еще на 2 страницы. такой вот он мап-файл. Неудачная загрузка. Вам запрещено загружать такой тип файлова что собственно флудить. либо выделяем все глобальные переменные нужного размера либо все uint32_t, давайте решим наконец.
Сообщение отредактировал Jenya7 - Mar 8 2016, 17:31
|
|
|
|
|
Mar 8 2016, 18:32
|

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

|
QUOTE (zombi @ Mar 8 2016, 18:31)  В низкоуровневых языках я как раз этой фигнёй и не занимаюсь. Выделил память под переменную, знаю какой она размерности и знаю как к ней обращаться. В отличие от СИшников ! Это Вы по собственной дурости и незнанию обвиняете всех сишников огульно в неведомых грехах. А чем Вы занимаетесь в ассемблере и чем я занимался годы и частично в порядке сопровождения продолжаю в ассемблере заниматься, я знаю. Поскольку РАБОТАЮ в одном ассеблере виртуозно, в паре - хорошо, и в десятке терпимо. В отличие от Вас, который и в одном высокоуровневом языке ни уха ни рыла  . QUOTE (Jenya7 @ Mar 8 2016, 18:16)  я создаю массив структур с запасом не потому что я дурак (хотя это тоже) а потому что я не знаю сколько элементов понадобиться пользователю. Я хочу 22 миллиарда. Можно? Если НЕ знаете, то почему решили назвать конкретное максимальное число и забить его в качестве количества стуктур? Что Вы вообще делаете? Что это за стуктуры в непонятных количествах? QUOTE (jcxz @ Mar 8 2016, 19:32)  И абсолютно не соглашусь насчёт HEAP - стандартная HEAP в embedded - это зло. К тому-же совершенно не нужна. Слова "стандартная" это непонятно о чем, по причне того, что стандарта-то и нет. Ну и уж тем более не зло, если не пугаться и уметь хоть чуть-чуть готовить.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 8 2016, 19:15
|
Профессионал
    
Группа: Участник
Сообщений: 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 никогда не работал. менять вобщем то не на что. подходящей альтернативы ему нет, я имею в виду соотношение функциональность-вес. так что процесс будет трудный и медленный.  Цитата(zltigo @ Mar 8 2016, 23:32)  Я хочу 22 миллиарда. Можно? Если НЕ знаете, то почему решили назвать конкретное максимальное число и забить его в качестве количества стуктур? Что Вы вообще делаете? Что это за стуктуры в непонятных количествах? я выделил 10 элементов. пока это вполне разумно. скажем так - лайт версия. тот же компайлер в котором я работаю - лайт версия компилит 32 кило а не 22 милиарда. структура это пользовательская задача. malloc тут не подходит - пользователь начнет создавать/затирать элементы - хана куче.
|
|
|
|
|
Mar 8 2016, 20:33
|

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

|
QUOTE (zombi @ Mar 8 2016, 20:53)  Еще и тЭлЫпат ... Чего нет, того нет. Просто читать умею и написаное Вами, даже только в этой теиме, совершенно все о Вашем уровне говорит с предельной ясностью. QUOTE (Jenya7 @ Mar 8 2016, 21:15)  структура это пользовательская задача. malloc тут не подходит - пользователь начнет создвать/затирать элементы - хана куче.  C чего бы это, если элементы, например, одинаковые, то любому даже предельно убогому хана не грозит. Использование какого-то malloc так же совершенно не обязательно - менеджер может быть даже узкоспециализированый под уникальные объекты. Тут ведь дело в использовании самого принципа динамического использования памяти.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 9 2016, 07:27
|
Профессионал
    
Группа: Участник
Сообщений: 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
|
|
|
|
|
Mar 9 2016, 14:51
|

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|