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

 
 
 
Reply to this topicStart new topic
> Как вызвать WFI или WFE для кортексов?, Неужели в ИАР нет таких интринсиков?
sonycman
сообщение Aug 12 2010, 16:09
Сообщение #1


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Потихоньку осваиваю IAR после RealView.
Почему то всегда казалось, что в ИАРе полно всяких хитрых ключевых слов и "интринсиков", а РВ в этом деле немного обделён.

Однако, сегодня я был немного удивлён, не обнаружив ключевого слова __wfi() sad.gif
Причём нигде - ни в справке, ни в папке с инклудами.

Кое как в примерах нашёл глубоко закопанный файл core_cm3.h, где определяется такой макрос в виде ассемблерной строки.

crying.gif зачем так обижать кортексы?

Это ИАР таким образом "поддерживает" новые камни?
Или просто я туплю и всё гораздо веселее?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 12 2010, 18:30
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(sonycman @ Aug 12 2010, 22:09) *
Это ИАР таким образом "поддерживает" новые камни?
Или просто я туплю и всё гораздо веселее?

Это не ИАР виноватsmile.gif Это АРМ придумал CMSIS. Типа, перенеся часть периферии в ядро, заодно стандартизировали и софтовый интерфейс...


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 12 2010, 18:47
Сообщение #3


Гуру
******

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



QUOTE (AHTOXA @ Aug 12 2010, 21:30) *
Это АРМ придумал CMSIS.

Господь с Вами, это просто свалка всяких исходников в стиле "библиотек", как модная эрзац замена документации. Причем там далеко не только от ARM, а от кого попало.
Совершено необязательна к использованию. У самого ARM в Realview, кстати, это "интринсик".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 12 2010, 19:01
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



А если вот такая ссылка? smile.gif
И плюс факт, что все (мне известные) производители компиляторов этот стандарт поддерживают (посмотрите на список партнёров)?
А использовать - да, не обязательноsmile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 12 2010, 19:20
Сообщение #5


Гуру
******

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



QUOTE (AHTOXA @ Aug 12 2010, 22:01) *
этот стандарт поддерживают (посмотрите на список партнёров)?

"Поддержка" заключается в том, что эту кучу кидают в дистрибутив? Причем в качестве ответной любезности позволяют в кучу кидать опционально и cвой мусор до кучи. Так у чем говорите "польза"? Тот-же Atmel свои уродливые хидеры (в том числе и для ARM) раздет для включения в дистрибутивы. В чем "новизна"? Тот-же TI/Luminary, хотя в поставке болтается от ARM, в своих примерах эту муть не использует, предпочитая совершенно smile.gif аналогичную свою smile.gif
CODE
//*****************************************************************************
//
// cpu.c - Instruction wrappers for special CPU instructions needed by the
//         drivers.
//
// Copyright (c) 2006-2010 Texas Instruments Incorporated.  All rights reserved.
// Software License Agreement
//
// This is part of revision 5821 of the Stellaris Peripheral Driver Library.
//
//*****************************************************************************


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sonycman
сообщение Aug 12 2010, 20:10
Сообщение #6


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(AHTOXA @ Aug 12 2010, 22:30) *
Это не ИАР виноватsmile.gif Это АРМ придумал

Вон оно что! Понятно, спасибо.
Но что-то я в папках последнего дистрибутива ИАРа для АРМ не нашёл CMSIS.
Только в некоторых примерах...

Тоже, как и zltigo, почему-то стараюсь избегать всяких "библиотек", так как они обычно не вызывают одобрения у профессионалов laughing.gif
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 13 2010, 04:46
Сообщение #7


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(zltigo @ Aug 13 2010, 01:20) *
Так у чем говорите "польза"?
...
В чем "новизна"?

Не будете ли вы так любезны процитировать то место из моих сообщений, где я упоминал о "пользе" и "новизне"? Я лишь констатировал факт - есть такой стандарт, и IAR его поддерживает. И именно поэтому не придумал своих инстринсиков для WFI/WFE.

Цитата(sonycman @ Aug 13 2010, 02:10) *
Тоже, как и zltigo, почему-то стараюсь избегать всяких "библиотек", так как они обычно не вызывают одобрения у профессионалов laughing.gif

Ну, если говорить именно о core_cm3.h, то я рассматриваю его не как "библиотеку", а лишь как хидер. В нём объявлены нужные структуры ядра и инструкции. Конечно можно всё это переписать, но зачем?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 13 2010, 05:36
Сообщение #8


Гуру
******

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



Цитата(sonycman @ Aug 13 2010, 00:10) *
... стараюсь избегать всяких "библиотек", так как они обычно не вызывают одобрения у профессионалов laughing.gif


Если так, то не нужно горевать по поводу отсутствия __wfi() и прочего. Ведь по сути интринзики - такие же непереносимые примочки, как и ассемблерные вставки. Ну вот чем вот __wfi() лучше, чем __asm("wfi")?
Go to the top of the page
 
+Quote Post
Faterland
сообщение Aug 13 2010, 06:06
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 18-01-06
Из: Киев
Пользователь №: 13 310



Цитата(scifi @ Aug 13 2010, 08:36) *
Если так, то не нужно горевать по поводу отсутствия __wfi() и прочего. Ведь по сути интринзики - такие же непереносимые примочки, как и ассемблерные вставки. Ну вот чем вот __wfi() лучше, чем __asm("wfi")?

Все в IAR есть. Подключаете файл "cotexm3_macro.s". вызываете " __WFI();" + там много чего есть
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 13 2010, 06:22
Сообщение #10


Гуру
******

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



QUOTE (scifi @ Aug 13 2010, 08:36) *
Ну вот чем вот __wfi() лучше, чем __asm("wfi")?

Тем, что первый это вставка о которой компилятор знает все и которая по этой причине не сбивает оптимизацию. Второй вариант более грубый с возможными побочными эффектами. Посему в этом случае wfi вообще не макрос, а обернут вызовом функции.
QUOTE (AHTOXA @ Aug 13 2010, 07:46) *
Не будете ли вы так любезны процитировать то место из моих сообщений, где я упоминал о "пользе" и "новизне"?

А я Вам эти слова и не приписываю ни в коем случае. Просто отмечаю, что в таком "стандарте" нет ни новизны ни пользы.
QUOTE
а лишь как хидер. В нём объявлены нужные структуры ядра и инструкции.

Это нормально, если-бы не уродливые имена в стиле "Pos" "Msk":
CODE
/* SysTick Control / Status Register Definitions */
#define SysTick_CTRL_COUNTFLAG_Pos         16                                             /*!< SysTick CTRL: COUNTFLAG Position */
#define SysTick_CTRL_COUNTFLAG_Msk         (1ul << SysTick_CTRL_COUNTFLAG_Pos)            /*!< SysTick CTRL: COUNTFLAG Mask */


Эти "_Pos" потокание хидерам в стиле Atmel AVR. Соответственно более распространненное и разумное определение получило в нагрузку совершеннно лишний прибамбас "_Msk". При этом, думаю, те, кто подсажены на AVR, будут не слишком рады добавке "_Pos", как и я "_Msk". В общем я, как и во всех других случаях пользую ПРАВЛЕННЫЕ хидеры, если они меня по стилю не устраивают. Как минимум, так:
CODE
#define SYSTICK_CTRL_COUNTFLAG BIT16


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 13 2010, 08:27
Сообщение #11


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(zltigo @ Aug 13 2010, 12:22) *
А я Вам эти слова и не приписываю ни в коем случае.

Ну как же, я ведь специально процитировал:
Цитата(zltigo @ Aug 13 2010, 01:20) *
Так у чем говорите "польза"?

Я понимаю это ваше предложение так: вы утверждаете, что я говорю, что есть польза. То есть, именно что приписываетеsmile.gif



--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 13 2010, 09:08
Сообщение #12


Гуру
******

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



QUOTE (AHTOXA @ Aug 13 2010, 11:27) *
Я понимаю это ваше предложение так: вы утверждаете, что я говорю, что есть польза. То есть, именно что приписываетеsmile.gif

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


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

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

 


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


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