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

 
 
> Keil и использование памяти, помогите разобраться какие килобайты откуда и куда
drum1987
сообщение Feb 21 2011, 13:22
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 255
Регистрация: 3-02-09
Из: Омск
Пользователь №: 44 323



после компиляции проекта в Keile высвечивается строчка:

при этом HEX файл имеет размер 347 кбайт.

Вопрос: как узнать сколько оперативки процессора займет программа и очень хотелось бы знать что значат Code,RO-data,RW-data,ZI-data.

Поиском пользовался - не нашел. Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
drum1987
сообщение Feb 22 2011, 11:52
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 255
Регистрация: 3-02-09
Из: Омск
Пользователь №: 44 323



Огромное спасибо. Как я понимаю занимать будет программа во флешке проца(или внешней) ровно столько, сколько весит BIN файл.

И последний вопрос: как выделить оптимальный(минимально необходимый) размер кучи(heap)?
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 22 2011, 14:11
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(drum1987 @ Feb 22 2011, 14:52) *
Огромное спасибо. Как я понимаю занимать будет программа во флешке проца(или внешней) ровно столько, сколько весит BIN файл.

В большинстве случаев - да. Если сделать сложную карту памяти (составленную из кусков и пустых промежутков), то там немного сложнее.

Цитата(drum1987 @ Feb 22 2011, 14:52) *
И последний вопрос: как выделить оптимальный(минимально необходимый) размер кучи(heap)?

Вообще в микроконтроллерах лучше избегать динамическое выделение памяти, так как часто трудно заранее рассчитать необходимый размер кучи, к тому же возникает проблема фрагментации. То есть следует сделать кучу нулевого размера и забыть про malloc(). Часто malloc() используется в коде, который перекочевал из ПК, хотя скорее всего там динамическое выделение памяти не требуется. Как правило, можно обойтись статическими переменными. Иногда не вредно использовать локальные переменные значительного размера, так как они выделяют память стека, а расход стека гораздо легче контролировать, чем расход кучи.
Если же без динамического выделения никак нельзя, то расход кучи очень сильно зависит от особенностей программы. Тут трудно дать общие рекомендации.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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