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