Использование PLD в руке Cortex A9 - PullRequest
2 голосов
/ 12 марта 2011

Я пытаюсь использовать инструкцию PLD. Проблема, с которой я сталкиваюсь, заключается в следующем:

int32_t addr[10];
asm ("PLD [addr,#5]");

Я получаю следующую ошибку:

Error: ARM register expected -- `pld [addr,#5]'

Ответы [ 2 ]

2 голосов
/ 12 марта 2011

Адрес, используемый инструкцией предварительной загрузки, должен быть в регистре.addr - это переменная (ячейка памяти), а не регистр.

1 голос
/ 14 июня 2011
int32_t addr[10];
asm ("PLD [%[ADDR],#5] \n\t"
:
: [ADDR]"r"(addr)
); 

Дайте предмету имя в списке регистров, а затем укажите его, как показано.5 - странное число, используемое для предварительной выборки.Большинство ПК будут работать с размерами 32 и т. Д. *

. При использовании pld размер каждой строки в памяти, по-видимому, составляет 64 байта для чипов arm в ipad и ipad2.Таким образом, для наиболее эффективного pld лучше всего было бы выполнить 1 pld для 64-байтового диапазона размеров, а затем развернуть цикл, чтобы охватить только этот диапазон, если это тип программируемого кода.

Например, вы можетепереместиться через шестнадцать 32-битных записей с плавающей запятой для каждого поля

...