|
Keil->IAR |
|
|
|
Apr 1 2017, 15:45
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
1) В Кейле есть такая штука, как "Target", имея несколько таргетов, можно иметь разные опции проекта (Alt-F7). Пользуюсь часто этим, например чтобы компилировать проект в вариантах для отладки и "боевой" (с другого начального адреса, под бутлоадер).
2) в Кейле опции проекта есть глобальные, а также можно сделать индивидуальные, дял каждого .с файла в проекте. Напрмер, иметь глобальную отптимизацию по размеру а на определенных файлах - по скорости. Или настраивать на исползование разных областей памяти, к примеру - для F407 я в глобальных настройках ставил RAM = CCM (как самую быструю - чтобы в ней был стек и многие переменные), а в тех фалах, где есть работа с DMA или нужны большие массивы - ставил остальные 128К RAM.
Теперь вопрос - как все это делается в IAR'е? Что-то пока не нашел.
Спасибо.
Доп.: на первый вопрос вроде нашел, Project->Edit Configuration. Не так удоюбно как в Кейле, но задачу в общем-то решает. По второму вопрсоу - пока глухо. Т.е. персональные опции на файлы есть, но если оптимизатор там еще можно изменить, то память - не нашел.
|
|
|
|
|
 |
Ответов
|
Apr 2 2017, 08:03
|
Гуру
     
Группа: Свой
Сообщений: 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 прописать - в какой регион памяти её компоновать.
|
|
|
|
|
Apr 2 2017, 21:58
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(jcxz @ Apr 2 2017, 19:13)  #pragma default_function_attributes = @ ".textInternal" Откройте доку в IAR-е по ключевым словам, о прагмах - там всё есть. Вопрос был: Цитата а как "целиком на файл" или "целиком на группу"? Каким образом эта прагма поможет? Особенено "на группу"? Вся-же идея в "группе", это что не надо прописывать ничгео в каждом входящем в нее файле. Например - то какая-нибудь сторонняя библиотечка, типа FatFs. Я должен ее всю перелопатить, выискивая все переменные/буферы, которые могут работать по DMA, чтобы всунуть в них прагму? Все-таки, в Кейле это сделано намного лучше.
|
|
|
|
|
Apr 3 2017, 10:08
|

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

|
Цитата(Allregia @ Apr 3 2017, 00:58)  Вопрос был: Все-таки, в Кейле это сделано намного лучше. Наивно полагаете, что кейл, от того, что Вы где-то поставили галочку, святым духом перелопатит готовую библиотеку и раскидает переменные по "правильным" областям памяти
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 4 2017, 09:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(zltigo @ Apr 3 2017, 11:08)  Я не "наивно полагаю", а точно знаю что он делает именно то, что я его прошу сделать. Цитата(jcxz @ Apr 3 2017, 11:18)  У Вас почти в каждом сообщении претензии к IAR-у - то не так, это не так (в основном от незнания конечно). Но если так мил Keil, кто-ж так заставляет IAR-ом пользоваться???? Под дулом автомата что-ли в IAR-е сидите? Ну, в общем да  Есть несколько проектов, которые надо продолжать, и они были сделаны под ИАРом. Свое я делаю в 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?  Может, если руками скаттер писать.
|
|
|
|
|
Apr 4 2017, 09:10
|

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

|
Цитата(Allregia @ Apr 4 2017, 12:01)  Я не "наивно полагаю", а точно знаю что он делает именно то, что я его прошу сделать. Поскольку никто за Вас не может рационально распределить переменные в разные области данных, то я и говорю о Вашей наивности. Переброс всех скопом огульно из одной области в другую, чем Вас по наивности так радует галочкой кейл, совершенно неинтересен. Дело надо делать хорошо.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 4 2017, 13:38
|
Профессионал
    
Группа: Свой
Сообщений: 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; } В Кейле это делается под другому. Ладно, бог с ним, тут вроде все ясно. Есть еще вопрос, но лучше другую тему сделаю.
|
|
|
|
|
Apr 4 2017, 14:49
|

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
Сообщений в этой теме
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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|