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

 
 
> 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:59
Сообщение #8


Гуру
******

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



Цитата(Allregia @ Apr 4 2017, 12:07) *
компилятор у Кейла всегла был намного лучше чем в ИАРе.

Был, в тот момент, когда его ARM покупал, действительно лучше (причем основной выигрыш был за счет стандарных библиотек). Но сразу после этого лидерство Кейла пошло на спад. Так что заблуждаетесь.
P.S.
Тут наш однофорумчанин не поленился недавно потестировать https://geektimes.ru/post/264558/



Цитата(jcxz @ Apr 4 2017, 12:15) *
А если хочется именно Keil, то любой проект, думаю, не проблема за максимум несколько часов перегнать в Keil.

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


--------------------
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
||- - zltigo   Цитата(Allregia @ Apr 4 2017, 12:01) Я не...   Apr 4 2017, 09:10
|||- - Allregia   Цитата(zltigo @ Apr 4 2017, 10:10) Поскол...   Apr 4 2017, 13:38
|||- - zltigo   Цитата(Allregia @ Apr 4 2017, 16:38) #pra...   Apr 4 2017, 14:49
|||- - 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
|- - 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 21:03
Рейтинг@Mail.ru


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