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

 
 
> Стратегия размещения функций Keil, Как определяется какая функция попадет в RAM
Golikov A.
сообщение Apr 27 2015, 07:27
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Всем привет!

В keil есть возможность нажав на файл исходников правой кнопкой и выбрав options, для Cortex процов задать регионы для секций Code/Const, Zero Init Data, Other Data

по умолчанию стоит default. И я был уверен что это для Code/Const - flash, а для остальных RAM. Так вот поглядел я карту памяти после компиляции и с удивлением обнаружил что достаточно большая часть функций размещены в RAM. Но не все, то есть получается что у кейла есть какая-то стратегия размещения функций? Кто нибудь, что нибудь знает про это?

Еще я обнаружил что кеил понаделал thumb код, хотя я думал по умолчанию будет ARM код, и только при желании оптимизации он будет что-то крутить. Или после появления thumb2 стало уже не можно пользоваться ARM кодом? Я понимаю что с точки зрения флеш ускорителей которые читают за 5 тактов проца 128 бит, лучше прочитать ~8 thumb инструкций (примерно потому что в thumb2 они бывают и 32 битные) чем 4 ARM инструкции, для этого преимущество отдано thumb коду?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Apr 27 2015, 13:31
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
Вот поэтому и не стоит программировать "галочками" - чудес меньше будет.

Я только За, но многим удобнее галочками (не один же я работаю на проектом)... Справедливости ради надо заметить что хуже работать не стало sm.gif, то есть функциональность сохранилась...

Цитата
Предлагаете читать мануалы? Мануалы придумал трус!

Вы тут ни разу неправы. Если у вас среда типа какоса или IAR, то там есть явно представленный скатер файл, который заполняется руками или генерится визардом. А если у вас keil, то править руками скатер файл - это бороться с ветряными мельницами, он же будет его подменять. Да там действительно можно снять кучу галочек и перейти на полностью ручное управление, но изначально в галочной системе есть какой-то workflow который можно, а современных реалиях и нужно использовать, потому что сокращает время.

Так что наезд в данном случае не принимается, мануалы тут не причем.

Цитата
Читать даже не предлагаю, но открыть и сделать Ctrl-F всегда можно.

вы тоже не правы, потом что в мануале то как раз про галочки расписано как должно быть, а по факту получается иначе. Может в кейле есть еще какие-то способы дать указания разметке, про которые я не знаю....

Но великие читатели мануалов могут снизайти и указать ничтожному где про это написано...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 27 2015, 13:55
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Golikov A. @ Apr 27 2015, 16:31) *
...если у вас keil, то править руками скатер файл - это бороться с ветряными мельницами, он же будет его подменять. Да там действительно можно снять кучу галочек и перейти на полностью ручное управление, но изначально в галочной системе есть какой-то workflow который можно, а современных реалиях и нужно использовать, потому что сокращает время.

Раньше отключалось легко и непринужденно, одной галочкой sm.gif

Ничего не сокращает - десяток строк проще руками написать.

Цитата(Golikov A. @ Apr 27 2015, 16:44) *
То есть может быть если функции первого файла стоят в раме, и вызывают функции второго файла, это как-бы тоже переносит их в RAM. Может есть какие-то стратегии оптимизации, которые функции какого-то размера или частоты использования переносят в RAM. Или переменные перенесенные в RAM и используемые в функциях тоже их с собой потянули (хотя константы вроде как идут в первой секции, а осnальные и так обычно в RAM)

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

В Вашем случае все сделано в соответствии со скаттером. Соответственно, никакие стратегии оптимизации ни при чем совершенно.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Apr 27 2015, 16:09
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Apr 27 2015, 16:55) *
Раньше отключалось легко и непринужденно, одной галочкой sm.gif

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

я уже давно отключаю автоскаттер и сам указываю, что где хранить, если это мне нужно
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Golikov A.   Стратегия размещения функций Keil   Apr 27 2015, 07:27
- - Obam   Цитата(Golikov A. @ Apr 27 2015, 11:27) В...   Apr 27 2015, 07:44
- - Golikov A.   Вот блин... всегда читал строчку из манула Цитата...   Apr 27 2015, 07:53
|- - scifi   Цитата(Golikov A. @ Apr 27 2015, 10:53) А...   Apr 27 2015, 08:37
- - Golikov A.   ЦитатаНету никакой стратегии. С настройками по умо...   Apr 27 2015, 08:45
|- - scifi   MAP-файл - в студию!   Apr 27 2015, 08:49
|- - aaarrr   Цитата(scifi @ Apr 27 2015, 11:49) MAP-фа...   Apr 27 2015, 09:00
- - ViKo   и тип процессора.   Apr 27 2015, 09:02
- - Golikov A.   Lpc1768, scart по умолчанию, то есть какой кеил са...   Apr 27 2015, 11:22
|- - aaarrr   Цитата(Golikov A. @ Apr 27 2015, 14:22) s...   Apr 27 2015, 11:28
- - Golikov A.   Код; *********************************************...   Apr 27 2015, 12:56
|- - aaarrr   Цитата(Golikov A. @ Apr 27 2015, 15:56) я...   Apr 27 2015, 13:05
|- - scifi   Цитата(aaarrr @ Apr 27 2015, 16:05) Вот п...   Apr 27 2015, 13:13
|- - aaarrr   Цитата(scifi @ Apr 27 2015, 16:13) Предла...   Apr 27 2015, 13:28
|- - scifi   Цитата(Golikov A. @ Apr 27 2015, 16:31) в...   Apr 27 2015, 13:36
- - Golikov A.   Давайте перестанем пытаться меня поддеть и сосредо...   Apr 27 2015, 13:44
- - Golikov A.   не о том разговор.. В общем заключаю что это скор...   Apr 27 2015, 13:58
|- - aaarrr   Цитата(Golikov A. @ Apr 27 2015, 16:58) т...   Apr 27 2015, 14:02
- - Golikov A.   ну а смысл тогда кейла если все по отключать и рук...   Apr 27 2015, 16:34
|- - scifi   Цитата(Golikov A. @ Apr 27 2015, 19:34) н...   Apr 27 2015, 16:43
|- - toweroff   Цитата(Golikov A. @ Apr 27 2015, 19:34) н...   Apr 27 2015, 17:59
- - Golikov A.   Но также не обязательно отказываться, если она мел...   Apr 27 2015, 17:52
- - Golikov A.   Всегда ли оно надо знать? Вот мне это интересно в ...   Apr 27 2015, 18:06
|- - aaarrr   Не знаю как для других, а для меня скрипт линкера ...   Apr 27 2015, 18:35
|- - toweroff   Цитата(aaarrr @ Apr 27 2015, 21:35) Не зн...   Apr 27 2015, 21:55
- - Golikov A.   Ну может вы и правы. Тем более что за время жизни ...   Apr 28 2015, 05:09
- - Golikov A.   А вот мне тут подумалось. Кроме того что сказать л...   Apr 28 2015, 09:16
|- - aaarrr   Цитата(Golikov A. @ Apr 28 2015, 12:16) А...   Apr 28 2015, 10:38
- - Golikov A.   у кортексов встроена функция переброски памяти?   Apr 28 2015, 10:53
|- - aaarrr   Цитата(Golikov A. @ Apr 28 2015, 13:53) у...   Apr 28 2015, 10:58
- - Golikov A.   А в какой момент будет копирование? до ресета что ...   Apr 28 2015, 11:04
|- - Сергей Борщ   Цитата(Golikov A. @ Apr 28 2015, 14:04) А...   Apr 28 2015, 11:19
|- - aaarrr   Цитата(Golikov A. @ Apr 28 2015, 14:04) А...   Apr 28 2015, 11:45
- - Golikov A.   ЦитатаНе знаю как делает Кейл (а вам влом посмотре...   Apr 28 2015, 12:56
|- - toweroff   Цитата(Golikov A. @ Apr 28 2015, 15:56) н...   Apr 29 2015, 08:05
- - esaulenka   Не надо ничего руками трогать, оно и так хорошо ра...   Apr 28 2015, 13:49
- - aaarrr   Цитата(Golikov A. @ Apr 28 2015, 15:56) о...   Apr 28 2015, 14:32
- - Golikov A.   ЦитатаНет, все сделает линкер. линкер он кому прин...   Apr 28 2015, 15:42
|- - aaarrr   Цитата(Golikov A. @ Apr 28 2015, 18:42) л...   Apr 28 2015, 16:18
- - Golikov A.   То есть на самом деле стандартизован на уровне ARM...   Apr 28 2015, 17:11


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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 19:04
Рейтинг@Mail.ru


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