在C中使用ARM汇编

问题描述

我需要有关在C代码中使用内联汇编的帮助。
该设备是1.5GHz的四核Cortex-A72(ARM v8)64位SoC。 伪代码为:

put addr1 into X9
put addr2 into x10
for i:= 0 to N−1 do
    STR X0,[X9]
    STR X0,[X10]
    DC CIVAC,X9
    DC CIVAC,X10

所以我的C代码是:

      for (i = 0; i < N; i++) {
          asm volatile(
          "str %2,[%0]\n\t"
          "str %2,[%1]\n\t"
          "dc civac,%0\n\t"
          "dc civac,%1\n\t"
          //"dsb 0xb"
          ::"r" (addr1),"r" (addr2),"r" (temp)
          );

我认为我没有以正确的方式使用说明。
谁能帮助我了解是否正确?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)