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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Стратегия размещения функций Keil, Как определяется какая функция попадет в RAM
scifi
сообщение Apr 27 2015, 13:36
Сообщение #16


Гуру
******

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



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

Ну как же? Вы же уже сказали, что
Цитата(Golikov A. @ Apr 27 2015, 16:31) *
... не один же я работаю на проектом

Вот и ищите среди них любителя тыкать в галочки biggrin.gif

Цитата(Golikov A. @ Apr 27 2015, 16:31) *
Но великие читатели мануалов могут снизайти и указать ничтожному где про это написано...

ЕМНИП, у кейла файл проекта (где хранятся эти галочки) пишется открытым текстом. Полистайте, может быть увидете, где именно галки спрятались.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 27 2015, 13:44
Сообщение #17


Гуру
******

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



Давайте перестанем пытаться меня поддеть и сосредоточимся на тексте

есть в проекте 2 файла.
1. стоят галочки разместить в RAM: code, ZI, Other
2. стоят галочки разместить в RAM: ZI, Other

по какой-то причине для обоих файлов секция text попала в RAM, вот меня и интересует что на это могло повлиять. То есть может быть если функции первого файла стоят в раме, и вызывают функции второго файла, это как-бы тоже переносит их в RAM. Может есть какие-то стратегии оптимизации, которые функции какого-то размера или частоты использования переносят в RAM. Или переменные перенесенные в RAM и используемые в функциях тоже их с собой потянули (хотя константы вроде как идут в первой секции, а осnальные и так обычно в RAM)

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


Гуру
******

Группа: Свой
Сообщений: 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
Golikov A.
сообщение Apr 27 2015, 13:58
Сообщение #19


Гуру
******

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



не о том разговор..

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

интересно для LPC1768 есть выигрыш от запуска функций из ARM, он же 100 МГц, а читает за 5 тактов чуть ли не 8 инструкций, и имеет несколько блоков для сохранения считанного...

Цитата
В Вашем случае все сделано в соответствии со скаттером. Соответственно, никакие стратегии оптимизации ни при чем совершенно.

тогда возникает вопрос почему скатер сделан не согласно настройкам...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 27 2015, 14:02
Сообщение #20


Гуру
******

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



Цитата(Golikov A. @ Apr 27 2015, 16:58) *
тогда возникает вопрос почему скатер сделан не согласно настройкам...

Это или глюк среды, или где-то среди галочек что-то осталось незамеченным.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Apr 27 2015, 16:09
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 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.
сообщение Apr 27 2015, 16:34
Сообщение #22


Гуру
******

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



ну а смысл тогда кейла если все по отключать и руками вбивать?
Go to the top of the page
 
+Quote Post
scifi
сообщение Apr 27 2015, 16:43
Сообщение #23


Гуру
******

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



Цитата(Golikov A. @ Apr 27 2015, 19:34) *
ну а смысл тогда кейла если все по отключать и руками вбивать?

У кейла хороший отладчик.
А вообще, если какая-то свистелка-перделка к нему прикручена, ей совсем не обязательно пользоваться.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 27 2015, 17:52
Сообщение #24


Гуру
******

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



Но также не обязательно отказываться, если она мелодично свистит) В 90% случаев она работает как надо, будет посвистыватьsm.gif...

ровно также отладку в порт никто не отменял)
Go to the top of the page
 
+Quote Post
toweroff
сообщение Apr 27 2015, 17:59
Сообщение #25


Гуру
******

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



Цитата(Golikov A. @ Apr 27 2015, 19:34) *
ну а смысл тогда кейла если все по отключать и руками вбивать?

это дает точное знание о том, где что будет лежать. Даже в этом топике пришлось перелопатить кучу всего, в результате придти к тому же скаттеру.
Кстати, описание именно его лежит в одном документе с линкером на инфоцентре арма, а не галочек кейла, странно - почему?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 27 2015, 18:06
Сообщение #26


Гуру
******

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



Всегда ли оно надо знать? Вот мне это интересно в моем проекте, но не критично, что в РАМ что во флэш он работает штатно. И я думаю еще с десяток такого рода проектов можно сделать. Иногда это нужно, там можно и руками, а иногда нет, там на автомате быстро прокатит.


Цитата
Кстати, описание именно его лежит в одном документе с линкером на инфоцентре арма, а не галочек кейла, странно - почему?

Ага а библиотеки HAL от кейла несмотря на свою кривость завоевывают все больше популярность. Так же уверен вы пользуетесь виндусом, а не командной строкой доса?

Я сам сторонник того что надо прописывать биты в регистры а не тыкать галочки в среде, но иногда это здорово сокращает время "на быстренько попробовать", так чего бы не овладеть данной функцией? Что вы потеряете если будете знать больше путей? Вот я теперь знаю, что данная часть не совершенна, и за ней надо следить, но если не парит можно пользоваться.


Цитата
Даже в этом топике пришлось перелопатить кучу всего, в результате придти к тому же скаттеру

Знание о том что скатер засунул функции в РАМ не дает ответа на вопрос какого черта в скатере появилось задание так сделать, так что это не аргумент.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 27 2015, 18:35
Сообщение #27


Гуру
******

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



Не знаю как для других, а для меня скрипт линкера является неотъемлемой частью исходных текстов проекта. Его можно один раз сгенерировать средой, но затем содержимое лучше зафиксировать и править только руками. Автоматы хороши только для быстрого старта в незнакомом окружении.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Apr 27 2015, 21:55
Сообщение #28


Гуру
******

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



Цитата(aaarrr @ Apr 27 2015, 21:35) *
Не знаю как для других, а для меня скрипт линкера является неотъемлемой частью исходных текстов проекта. Его можно один раз сгенерировать средой, но затем содержимое лучше зафиксировать и править только руками. Автоматы хороши только для быстрого старта в незнакомом окружении.

+
генерится скрипт, отключается галка, чтобы кейл его не портил каждый раз, и включается в svn
кейловыми галками тоже не все так гладко, он включает весь модуль целиком в область, а если мне это не нужно?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 28 2015, 05:09
Сообщение #29


Гуру
******

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



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

Спасибо всем участникам беседы.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 28 2015, 09:16
Сообщение #30


Гуру
******

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



А вот мне тут подумалось. Кроме того что сказать линкеру разместить функцию в RAM, надо же еще где-то написать копирование данных из адреса флеш, в тот адрес где разместили функцию. Сама же она туда не перелезет. В технологии галочек за этим кеил следит, чего то теперь мне эта технология стала казаться опасной...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 13:09
Рейтинг@Mail.ru


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