Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Команда SSAT в STM32
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Dot
Читаю описание -- в Cortex-M3 команда SSAT вроде присутствует.
При попытке ввести мнемонику, Keil синтаксис не подсвечивает, при компиляции -- выдает ошибку.

Аналогично с командой MOVW.

Что может быть не так?

(STM32F100R, uVision4)
scifi
Цитата(Dot @ Apr 14 2014, 16:22) *
при компиляции -- выдает ошибку.

Исходный код и ошибку - в студию.
Aleksandr Baranov
Попробовал на STM32F205:
Код
UINT16 ProcessSpecialCommand()
{
    UINT16 res = 0;
    asm("SSAT.W R1, #16, R0  \n");
    return res;  
  
}
Компилятор - IAR610
Dot
Отбой.
Так и не понял, в чем был косяк, но сегодня код прекрасно откомпилировался.

Тем не менее, Keil для этих команд синтаксис так и не подсвечивает:







PS.
Вау, писаю от счастья, одна команда заменяет четыре!

Для будущих грабленаступателей:
хотя USAT заявлена как беззнаковая, исходный операнд считается знаковым! Т.е. число, старший бит которого =1, будет обрезаться в 0. Например 0xFFFFFFFF (т.е. -1) после операции станет 0.
Golikov A.
а сколько таких команд влезет в 512 кБайтную флэшку... мочи не хватит и кипятильник сдохнет...
нафига вам это? компилятор пишите?
Uuftc
Цитата(Golikov A. @ Apr 15 2014, 20:50) *
а сколько таких команд влезет в 512 кБайтную флэшку... мочи не хватит и кипятильник сдохнет...
нафига вам это? компилятор пишите?

Предположу за автора, что это скорее DSP приложение, где реально это сильно помогает.
SII
Цитата(Dot @ Apr 15 2014, 17:16) *
Тем не менее, Keil для этих команд синтаксис так и не подсвечивает


Как насчёт ассемблерных вставок в Си, я не знаю, но для чистого ассемблера подсветка мнемоник в Кейле 4.50 и позже (насчёт 5.* не знаю -- не использую) определяется специальным файлом, aarm.prop.def. Многих мнемоник там банально нету, потому они и не подсвечены должным образом. Но при желании ничто не мешает их туда ввести. На работу собственно транслятора ассемблера это никак не сказывается -- он же не на подсветку ориентируется (она только текстовым редактором учитывается).

Цитата(Golikov A. @ Apr 15 2014, 20:50) *
а сколько таких команд влезет в 512 кБайтную флэшку...


Большинство команд Thumb-2 -- 4-байтовые, и насыщенная арифметика исключением не является. Двухбайтовыми являются лишь команды, которые появились ещё в версии архитектуры ARMv4T (в обычной Тумбе), а также несколько дополнительных команд. И таки да, в приложениях, связанных с цифровой обработкой сигнала, использование подобных инструкций при прочих равных в несколько раз ускоряет работу.
megajohn
Читаю книгу, вижу фигу.
то есть не понимаю суть самой операции насыщения. Кто разжуёт ?
scifi
Цитата(megajohn @ Apr 17 2014, 12:42) *
то есть не понимаю суть самой операции насыщения. Кто разжуёт ?

Суть - в насыщении :-)
demiurg_spb
Цитата(Dot @ Apr 14 2014, 16:22) *
Что может быть не так?
Подход не тот вы применяете (изобретаете велосипед заново).
Используйте CMSIS - там уже за вас давно всё это сделано.
HINT: загляните в файлик core_cmInstr.h для общего развития, но не подключайте его непосредственно, используйте core_cm3.h
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.