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

 
 
> Keil->IAR
Allregia
сообщение Apr 1 2017, 15:45
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



1) В Кейле есть такая штука, как "Target", имея несколько таргетов, можно иметь разные опции проекта (Alt-F7).
Пользуюсь часто этим, например чтобы компилировать проект в вариантах для отладки и "боевой" (с другого начального адреса, под бутлоадер).

2) в Кейле опции проекта есть глобальные, а также можно сделать индивидуальные, дял каждого .с файла в проекте.
Напрмер, иметь глобальную отптимизацию по размеру а на определенных файлах - по скорости.
Или настраивать на исползование разных областей памяти, к примеру - для F407 я в глобальных настройках ставил RAM = CCM (как самую быструю - чтобы в ней был стек и многие переменные), а в тех фалах, где есть работа с DMA или нужны большие массивы - ставил остальные 128К RAM.

Теперь вопрос - как все это делается в IAR'е? Что-то пока не нашел.

Спасибо.

Доп.: на первый вопрос вроде нашел, Project->Edit Configuration. Не так удоюбно как в Кейле, но задачу в общем-то решает.
По второму вопрсоу - пока глухо. Т.е. персональные опции на файлы есть, но если оптимизатор там еще можно изменить, то память - не нашел.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jcxz
сообщение Apr 2 2017, 08:03
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Allregia @ Apr 1 2017, 17:45) *
Теперь вопрос - как все это делается в IAR'е? Что-то пока не нашел.

п.1 - через Edit\Configurations создать все нужные варианты компиляции с их опциями.
п.2 - для каждого варианта компиляции задать свой файл конфигурации линкёра: "$PROJ_DIR$\sdram.icf". А в этом файле прописать правила назначения регионов памяти конкретным секциям программы.
И в IAR можно задавать расположение секций для каждого файла исходника не только целиком для всего файла, но и для каждой конкретной переменной очень удобно через суффикс:
__no_init volatile u32 sysTimer @ ".raw"; //неинициализируемую переменную положить в секцию .raw и для этой секции в .icf прописать - в какой регион памяти её компоновать.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Apr 2 2017, 16:40
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(jcxz @ Apr 2 2017, 09:03) *
п.1 - через Edit\Configurations создать все нужные варианты компиляции с их опциями.
п.2 - для каждого варианта компиляции задать свой файл конфигурации линкёра: "$PROJ_DIR$\sdram.icf". А в этом файле прописать правила назначения регионов памяти конкретным секциям программы.
И в IAR можно задавать расположение секций для каждого файла исходника не только целиком для всего файла, но и для каждой конкретной переменной очень удобно через суффикс:
__no_init volatile u32 sysTimer @ ".raw"; //неинициализируемую переменную положить в секцию .raw и для этой секции в .icf прописать - в какой регион памяти её компоновать.


Спасибо, с отдельными переменными это понятно, а как "целиком на файл" или "целиком на группу"?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 2 2017, 18:13
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Allregia @ Apr 2 2017, 18:40) *
Спасибо, с отдельными переменными это понятно, а как "целиком на файл" или "целиком на группу"?

#pragma default_function_attributes = @ ".textInternal"
Откройте доку в IAR-е по ключевым словам, о прагмах - там всё есть.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Apr 2 2017, 21:58
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(jcxz @ Apr 2 2017, 19:13) *
#pragma default_function_attributes = @ ".textInternal"
Откройте доку в IAR-е по ключевым словам, о прагмах - там всё есть.


Вопрос был:
Цитата
а как "целиком на файл" или "целиком на группу"?


Каким образом эта прагма поможет? Особенено "на группу"? Вся-же идея в "группе", это что не надо прописывать ничгео в каждом входящем в нее файле.

Например - то какая-нибудь сторонняя библиотечка, типа FatFs. Я должен ее всю перелопатить, выискивая все переменные/буферы, которые могут работать по DMA, чтобы всунуть в них прагму?
Все-таки, в Кейле это сделано намного лучше.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 3 2017, 10:08
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Allregia @ Apr 3 2017, 00:58) *
Вопрос был:
Все-таки, в Кейле это сделано намного лучше.

Наивно полагаете, что кейл, от того, что Вы где-то поставили галочку, святым духом перелопатит готовую библиотеку и раскидает переменные по "правильным" областям памяти sm.gif sm.gif sm.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Allregia
сообщение Apr 4 2017, 09:07
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(zltigo @ Apr 3 2017, 11:08) *
Наивно полагаете, что кейл, от того, что Вы где-то поставили галочку, святым духом перелопатит готовую библиотеку и раскидает переменные по "правильным" областям памяти sm.gif sm.gif sm.gif


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

Цитата(jcxz @ Apr 3 2017, 11:18) *
У Вас почти в каждом сообщении претензии к IAR-у - то не так, это не так (в основном от незнания конечно).
Но если так мил Keil, кто-ж так заставляет IAR-ом пользоваться???? Под дулом автомата что-ли в IAR-е сидите?


Ну, в общем да sm.gif
Есть несколько проектов, которые надо продолжать, и они были сделаны под ИАРом.
Свое я делаю в 4-мКейле, в нем и среда удобнее и компилятор у Кейла всегла был намного лучше чем в ИАРе.

Цитата
Для неумеющих читать даташит на компилятор:
Приведённый ниже фрагмент .icf-файла размещает все секции .text из указанных выходных объектных файлов компилятора файлов в регионе SDRAM_regionA.
А также секции .rodata и .fnt из всех выходных файлов проекта, для которых явно не указано место размещения.
Код
place in SDRAM_regionA {
   section .fnt,
   section .rodata,
   section .text object rds.o,
   section .text object menu.o,
   section .text object ir_term.o,
   section .text object fonttest.o
};

Полный .icf для STM32F429 для отладки кода в SDRAM: [attachment=106391:sdram.zip]
Т.е. - в IAR-е можно не только в исходнике переопределить секции по умолчанию для кода/данных, но и для секций по-умолчанию уже скомпилённых объектных файлов/библиотек указать произвольный регион размещения.
Даже не перелопачивая ничего.
А может ли всё это Keil? cool.gif

Может, если руками скаттер писать.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 4 2017, 09:10
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Allregia @ Apr 4 2017, 12:01) *
Я не "наивно полагаю", а точно знаю что он делает именно то, что я его прошу сделать.

Поскольку никто за Вас не может рационально распределить переменные в разные области данных, то я и говорю о Вашей наивности. Переброс всех скопом огульно из одной области в другую, чем Вас по наивности так радует галочкой кейл, совершенно неинтересен. Дело надо делать хорошо.




--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Allregia
сообщение Apr 4 2017, 13:38
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(zltigo @ Apr 4 2017, 10:10) *
Поскольку никто за Вас не может рационально распределить переменные в разные области данных, то я и говорю о Вашей наивности.


Так ото Я и решаю.

Цитата
Переброс всех скопом огульно из одной области в другую, чем Вас по наивности так радует галочкой кейл, совершенно неинтересен. Дело надо делать хорошо.


Там не "галочки", точнее - не только "галочки", а прописанные руками начальные адреса и длина.

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


К сожалению, очень много где использованы. Напрмер почти все функции, которые нужны быстрыми, были описаны в хедерах как:
Код
#pragma inline=forced
void ReleaseCodecReset(void)
{
CODEC_RESET_GPIO->BSRR = CODEC_RESET_PIN;
}


В Кейле это делается под другому.


Ладно, бог с ним, тут вроде все ясно.
Есть еще вопрос, но лучше другую тему сделаю.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 4 2017, 14:49
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Allregia @ Apr 4 2017, 16:38) *
#pragma inline=forced

Это можно просто выбросить, ибо такая мелчевка глобальными ключами оптимизируется без всяких прагм у любого компилятора, или заменить на универсальное inline.
Любоe из действий делается по всему проекту за 10 секунд, если редактор нормальный.

Цитата(Allregia @ Apr 4 2017, 16:38) *
Там не "галочки", точнее - не только "галочки", а прописанные руками начальные адреса и длина.

Нет, это Вы только КУДА так пропишите, но ЧТО куда - нет. То есть ВСЕ оптом в одно место это масимум такого "удобства". Уже писал - по РАЗНЫМ областям ни какими галочками в проекте относящимися ко всей "библиотеке" НЕ сделать.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Allregia   Keil->IAR   Apr 1 2017, 15:45
- - aaarrr   Цитата(Allregia @ Apr 1 2017, 18:45) По в...   Apr 1 2017, 17:06
- - aiwa   Цитата(Allregia @ Apr 1 2017, 17:45) Доп....   Apr 1 2017, 18:01
- - Alex11   Цитатанет, это не то. Это как раз то. Если нужно с...   Apr 1 2017, 18:47
|||- - Allregia   Цитата(zltigo @ Apr 4 2017, 15:49) Это мо...   Apr 4 2017, 15:25
|||- - zltigo   Цитата(Allregia @ Apr 4 2017, 18:25) Так ...   Apr 4 2017, 15:35
|||- - jcxz   Цитата(Allregia @ Apr 4 2017, 17:25) Так ...   Apr 5 2017, 06:15
||- - jcxz   Цитата(Allregia @ Apr 4 2017, 11:07) Може...   Apr 4 2017, 09:15
||- - zltigo   Цитата(Allregia @ Apr 4 2017, 12:07) комп...   Apr 4 2017, 09:59
|- - jcxz   Цитата(Allregia @ Apr 2 2017, 23:58) Каки...   Apr 3 2017, 10:18
|- - zltigo   Цитата(jcxz @ Apr 3 2017, 13:12) У Вас по...   Apr 3 2017, 10:24
|- - BackEnd   Цитата(zltigo @ Apr 3 2017, 10:24) Да, ув...   Apr 3 2017, 11:26
|- - zltigo   Цитата(BackEnd @ Apr 3 2017, 14:26) А воо...   Apr 3 2017, 11:30
|- - BackEnd   Цитата(zltigo @ Apr 3 2017, 11:30) Пользу...   Apr 3 2017, 11:34
|- - zltigo   Цитата(BackEnd @ Apr 3 2017, 14:34) На ка...   Apr 3 2017, 11:47
|- - jcxz   Цитата(zltigo @ Apr 3 2017, 13:47) Не сек...   Apr 3 2017, 13:42
|- - zltigo   Цитата(jcxz @ Apr 3 2017, 16:42) Моя ...   Apr 3 2017, 13:46
- - SSerge   Из ещё не упомянутых средств есть опция компилятор...   Apr 2 2017, 20:05
- - toweroff   DOS Multi-Edit - это да... в свое время просто бом...   Apr 3 2017, 15:46
|- - zltigo   Цитата(toweroff @ Apr 3 2017, 18:46) DOS ...   Apr 3 2017, 16:01
- - toweroff   zltigo, я тогда (92-..) не борландил, всякие FoxPr...   Apr 3 2017, 20:02
- - Allregia   Ладно, с этим уже все ясно, помогите лучше с бутло...   Apr 4 2017, 16:12
|- - zltigo   Цитата(Allregia @ Apr 4 2017, 19:12) Ладн...   Apr 4 2017, 18:32
|- - Allregia   Цитата(zltigo @ Apr 4 2017, 19:32) Там не...   Apr 4 2017, 21:21
|- - zltigo   Цитата(Allregia @ Apr 5 2017, 00:21) Я в ...   Apr 4 2017, 22:14
- - Allregia   А зачем ее перемещать, если в system_st32f?xx.c а...   Apr 4 2017, 22:54
|- - zltigo   Цитата(Allregia @ Apr 5 2017, 01:54) А за...   Apr 5 2017, 07:19
- - Allregia   Уже выкинул.   Apr 5 2017, 06:23
- - Allregia   Ну во 1-х, оно одинаково себя ведет если и перемещ...   Apr 5 2017, 07:26
|- - zltigo   Цитата(Allregia @ Apr 5 2017, 10:26) Во 2...   Apr 5 2017, 07:35
|- - jcxz   Цитата(Allregia @ Apr 5 2017, 09:26) Во 2...   Apr 5 2017, 08:41
- - Allregia   Уважаемые, может кто-нибудь ответить что-нибудь по...   Apr 5 2017, 10:28


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

 


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


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