|
Keil RV3.50 и FIQ, error: #130: expected a "{" |
|
|
|
Jun 10 2009, 09:08
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(AlexanderPo @ Jun 10 2009, 13:02)  И как просто, не зарываясь в asm, реализовать обработку FIQ непонятно... Да почему непонятно? Зачем зарываться в асм? Цитата(GetSmart @ Jun 10 2009, 13:03)  Глупость да и только. Никаких сложностей __fiq не требовал. Кроме этого раньше была аналогичная глупость с вложенными прерываниями. Браво, Кейл! Глупость - использовать модификатор __fiq не вдаваясь в подробности, дескать, компилятор все сделает. Максимум, что он может - это сократить сохранение/восстановление контекста, человек способен придумать более разумное использование банка.
|
|
|
|
|
Jun 10 2009, 09:36
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(GetSmart @ Jun 10 2009, 13:11)  Это законное удобство, на которое расчитывает юзер компилятора. Да, хотя бы не сохранять 4 регистра, уже экономия. Удобства и экономии на 3 копейки, при заметном усложнении компилятора (типа, тут используем вместо R0-R3 R8-R11, но если есть вызов вложенных процедур, то используем R8-R11 для сохранения R0-R3, и все это ради одного обработчика). Цитата(GetSmart @ Jun 10 2009, 13:11)  Какой человек? Что придумать? Ну, если думать некому, то можно просто писать __irq - проигрыш от лишних сохранений затереятся на фоне других "изысков".
|
|
|
|
|
Jun 12 2009, 01:40
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(GetSmart @ Jun 10 2009, 12:03)  Глупость да и только. Никаких сложностей __fiq не требовал. Кроме этого раньше была аналогичная глупость с вложенными прерываниями. Браво, Кейл! Ну а причем тут Keil? У Keil'овского компилятора как раз __fiq атрибут поддерживается. Браво адресуйте непосредственно ARM-LTD, т.к. RVCT это их творение. Цитата(GetSmart @ Jun 10 2009, 12:11)  Это законное удобство, на которое расчитывает юзер компилятора. А чем неудобно вместо нескольких бестолковых и нестандартных атрибутов, пользовать вообще без атрибуетов, или по крайней мере сократить их количество до одного?
|
|
|
|
|
Jun 12 2009, 05:48
|

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

|
Цитата(defunct @ Jun 12 2009, 04:40)  А чем неудобно вместо нескольких бестолковых и нестандартных атрибутов, пользовать вообще без атрибуетов, или по крайней мере сократить их количество до одного? Ну-ну  а зачем еще, например, компилятору несколько разных бестолковых ключей оптимизации, пользовать вообще без оптимизации, или по крайней мере сократить их количество до одого?  Цитата(aaarrr @ Jun 10 2009, 12:36)  Ну, если думать некому, то можно просто писать __irq - проигрыш от лишних сохранений затереятся на фоне других "изысков". Или не затеряется. В то,что среднестатический программист способен бездумно испохабить многое - верю. Только это не значит, что по этой "причине" можно делать упрощенные компиляторы.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 13 2009, 02:05
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(zltigo @ Jun 12 2009, 08:48)  Ну-ну  а зачем еще, например, компилятору несколько разных бестолковых ключей оптимизации, пользовать вообще без оптимизации, или по крайней мере сократить их количество до одого?  И правда зачем? Вы когда-нибудь реально использовали те ключики, которые находятся между, образно говоря, "без оптимизации" и "максимальная оптимизация"? Возвращаясь к теме - некий магический атрибут __fiq, который якобы сделает все максимально быстро и эффективно, на самом деле ничего не сделает, - не догадается компилер хранить static переменные в регистрах FIQ банка... Отсутствие __fiq в RVCT дисциплинирует, и еще раз заставит задуматься нужен ли там __FAST__ IRQ. Если нужен - Asm в руки и делаем настоящий FAST. А если не нужен (FIQ используется просто как более приоритетный IRQ) то чем __irq атрибут не устраивает?
|
|
|
|
|
Jun 13 2009, 10:49
|

Частый гость
 
Группа: Свой
Сообщений: 185
Регистрация: 25-02-09
Из: Россия
Пользователь №: 45 369

|
Цитата(defunct @ Jun 13 2009, 06:05)  Отсутствие __fiq в RVCT дисциплинирует, и еще раз заставит задуматься нужен ли там __FAST__ IRQ. Если нужен - Asm в руки и делаем настоящий FAST. А если не нужен (FIQ используется просто как более приоритетный IRQ) то чем __irq атрибут не устраивает? Зачем тогда С компилятор нужен. На Asm всю прогу писать "Надёжней", "Качественней", сроки реализации "Немногим" медленнее, отладка совсем чуть-чуть, а главное программа выполняется быстрей (иногда), ... . Я согласен, что разработчики компилятора не боги, но и компилятор стоит не дешёво (хотя для кого как и где). В данном примере действительно правильней реализовать на АSМ, из-за недостатка среды разработки. Зачем брать автомобиль, который иногда приходится толкать?
Сообщение отредактировал Sanya_kv - Jun 13 2009, 10:59
|
|
|
|
|
Jun 13 2009, 11:33
|

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

|
Цитата(defunct @ Jun 13 2009, 05:05)  И правда зачем? Вы когда-нибудь реально использовали те ключики, которые находятся между, образно говоря, "без оптимизации" и "максимальная оптимизация"? Поминаемые Вами ключики таковыми собственно не являются - это готовые наборы из других ключей. Теми, индивидуальными - пользуюсь, не ежедневно, но несомненно пользуюсь и не только в пределах проекта или отдельного файла, но и наиболее часто для отдельных кусков исходника. Это достаточно не сложно и проще, нежели преписывать куски кода на том-же ASM Цитата Возвращаясь к теме - некий магический атрибут __fiq, который якобы сделает все максимально быстро и эффективно, на самом деле ничего не сделает, - не догадается компилер хранить static переменные в регистрах FIQ банка... Я не специалист по магии (и уж тем более не жду никаих чудес от компилятора )поэтому мне совершенно достато того, что я знаю, комплятор может сделать. Цитата Отсутствие __fiq в RVCT дисциплинирует, и еще раз заставит задуматься нужен ли там __FAST__ IRQ. Я, считаю, что я способен думать и без таких заботливых "подсказок". Цитата Если нужен - Asm в руки и делаем настоящий FAST. Если нужно выжать по максимуму я и сам напишу его обработчик на ASM в startup прямо с адреса 0x1C. Если нужно будет написать развеситый обработчик FIQ (есть у меня и такие на многие килобайты), то __fiq мне в этом, как минимум ну СОВСЕМ ничем не помешает. Ну а если просто какой-то средненький о сотню байт, то я предпочту писать на 'C' ( естественно осознавая, что потери, нежели мне вдруг с бодуна придет мысль о вызове, например, функций из обработчика, будут малосовметимыми со скоростью), нежели на ASM благодаря "заботе" об излечении от каких-то якобы имеющихся у пользователей "иллюзий".
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|