|
Стратегия размещения функций Keil, Как определяется какая функция попадет в RAM |
|
|
|
Apr 27 2015, 07:27
|
Гуру
     
Группа: Свой
Сообщений: 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 коду?
|
|
|
|
|
 |
Ответов
|
Apr 27 2015, 13:31
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата Вот поэтому и не стоит программировать "галочками" - чудес меньше будет. Я только За, но многим удобнее галочками (не один же я работаю на проектом)... Справедливости ради надо заметить что хуже работать не стало  , то есть функциональность сохранилась... Цитата Предлагаете читать мануалы? Мануалы придумал трус! Вы тут ни разу неправы. Если у вас среда типа какоса или IAR, то там есть явно представленный скатер файл, который заполняется руками или генерится визардом. А если у вас keil, то править руками скатер файл - это бороться с ветряными мельницами, он же будет его подменять. Да там действительно можно снять кучу галочек и перейти на полностью ручное управление, но изначально в галочной системе есть какой-то workflow который можно, а современных реалиях и нужно использовать, потому что сокращает время. Так что наезд в данном случае не принимается, мануалы тут не причем. Цитата Читать даже не предлагаю, но открыть и сделать Ctrl-F всегда можно. вы тоже не правы, потом что в мануале то как раз про галочки расписано как должно быть, а по факту получается иначе. Может в кейле есть еще какие-то способы дать указания разметке, про которые я не знаю.... Но великие читатели мануалов могут снизайти и указать ничтожному где про это написано...
|
|
|
|
|
Apr 27 2015, 13:55
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Golikov A. @ Apr 27 2015, 16:31)  ...если у вас keil, то править руками скатер файл - это бороться с ветряными мельницами, он же будет его подменять. Да там действительно можно снять кучу галочек и перейти на полностью ручное управление, но изначально в галочной системе есть какой-то workflow который можно, а современных реалиях и нужно использовать, потому что сокращает время. Раньше отключалось легко и непринужденно, одной галочкой  Ничего не сокращает - десяток строк проще руками написать. Цитата(Golikov A. @ Apr 27 2015, 16:44)  То есть может быть если функции первого файла стоят в раме, и вызывают функции второго файла, это как-бы тоже переносит их в RAM. Может есть какие-то стратегии оптимизации, которые функции какого-то размера или частоты использования переносят в RAM. Или переменные перенесенные в RAM и используемые в функциях тоже их с собой потянули (хотя константы вроде как идут в первой секции, а осnальные и так обычно в RAM)
Вот каким вопросом задаюсь я, а не тем почему галочка появилась... В Вашем случае все сделано в соответствии со скаттером. Соответственно, никакие стратегии оптимизации ни при чем совершенно.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|