Показать сообщение отдельно
Старый 07.05.2013, 11:59   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 115
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Распределение памяти в контроллере

Цитата:
Сообщение от tvf Посмотреть сообщение
Arsie, я же просил рассказать поподробней, а вы пытаетесь отделаться общими словами. Тогда постараюсь сформулировать вопросы почетче:
Сложно рассказать подробности, когда они отсутствуют. Но я попробую.


Цитата:
Сообщение от tvf Посмотреть сообщение
1. Верно ли что все составляющие программы, отмеченные в файле логов грузятся во FLASH (за исключением строчки EEPROM)?
"Программа грузится во FLASH, блоки памяти в EEPROM".

Т.е. всё, что грузится не в EEPROM, грузится во FLASH.

Т.е. всё, что не грузится во FLASH, грузится в EEPROM.

Т.к. всё грузится во FLASH и EEPROM, в ОЗУ грузится ничего. Ничего занимает 0 байт, поэтому оно в ОЗУ не грузится.



Цитата:
Сообщение от tvf Посмотреть сообщение
2. Верно ли что размеры памяти, указанные в свойствах контроллера доступны именно для пользовательской программы?
Да, действительно, доступная память доступна для использования.

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



Цитата:
Сообщение от tvf Посмотреть сообщение
3. Верно ли что размеры памяти, указанные в свойствах контроллера не являются константой для определенного типа контроллера, а зависят скажем от размера ядра, загруженного в контроллер?
Разумеется. Более бОльшее по размеру ядро занимает бОльшее количество памяти. И наоборот: мЕньшее по размеру ядро занимает мЕньшее количество памяти.

Вся память, не занятая ядром, доступна для использования.



Цитата:
Сообщение от tvf Посмотреть сообщение
4. Как определить в какой именно области памяти произошла перегрузка? Вопрос касается прежде всего FLASH и ОЗУ. С EEPROM более менее ясно.
Никак. Выделение памяти динамическое, контроллер просто ответил, что для очередное выделение памяти прошло неудачно.



Цитата:
Сообщение от tvf Посмотреть сообщение
5. Будет ли сделана в лоджике расшифровка, какая область памяти переполнена? Для EEPROM это вроде сделано. Осталось сделать для FLASH и ОЗУ. Хотя бы через файл логов.
См. выше.



Цитата:
Сообщение от tvf Посмотреть сообщение
6. Каковы общие рекомендации по оптимизации кода программы при переполнении FLASH и ОЗУ? Понятно, что уменьшение самой программы. Но разные блоки повидимому по разному используют FLASH и ОЗУ.
В разделе про лоджик эта тема закреплена в самом верху.



Цитата:
Сообщение от tvf Посмотреть сообщение
7. Можна на примере из прикрепленных выше файлов показать какая область памяти переполнена и на сколько?
Этот вопрос полностью повторяет вопрос номер 4.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 08.05.2013 в 16:14
Arsie вне форума   Ответить с цитированием