C コードでアセンブラーをインラインで実行しようとしていますが、何らかの理由でプログラムがクラッシュしてしまいます。私はアセンブラを知りませんが、いくつかのチュートリアルとグーグルでコードを書くことができました:
inside a c function...
...
int y=0;
asm volatile(
"ldr r1,=0x20200000 \n"
"ldr r0,[r1]\n" //This is the line which crashes
//If i remove it the program runs
//(but without doing the job)
"mov %[result],r0\n"
".LTORG"
:[result]"=r"(y) /* output list*/
: /* input list*/
:"memory" /* clobber register list */
);
printf("The Address value is:%x", y);
back to the c function
...
誰かがこれで私を助けることができますか?メモリを読み取ってCに渡すだけです。
別のアドレスで試しましたが、常にクラッシュします。(Raspberry Pi で gcc を使用してすべてをコンパイル)