1

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 を使用してすべてをコンパイル)

4

0 に答える 0