だから、私はARMアセンブリを使用して時間を得ようとしているので、そうすることに問題があります。これは私が持っているコードされています。GDBを使用したときに最初のシステムコールは常に0xffffffdaされた後しかし、可変時間のアドレスの値は常に0 r0の戻り値であるARMアセンブリ時間システムコールが予期しない値
.data
.balign 4
time:
.word 0
.text
.global _start
_start:
ldr r0, =time
mov r7, #0xd
svC#0
mov r7, #1
svC#0
。それは決して変わらず、私はそれがエポックからの時間ではないと仮定することができます。
私はからこれを収集した情報は次のとおりです。「時間」私はシステムコールを呼び出すしようとしています https://w3challs.com/syscalls/?arch=arm_strong
私はRaspberry Pi 2モデルBでプログラミングしています。arm_strongアーキテクチャへのリンクと、現在作業中のアーキテクチャはARMv7です。しかし、基本的にr7の要件で9を0に置き換えると、私が望むシステムコールが得られます。だから "時間"私は0x90000dの代わりに0xdを使用します。
私が間違っていることは、戻り値もポインタもシステムコールに渡されても、私が期待する価値が得られないことです。最終的に私がやりたいことは、価値を持ってコンソールに出力することです。
[-38が '-ENOSYS'ある](http://lxr.free-electrons.com/source/include/uapi/asm-generic/errno.h #L17)、これは、あなたが実行しているカーネルバージョンの_実際の適切なシステムコール番号を調べる価値があるかもしれないことを示唆しています。 – Notlikethat
私はそれについての情報を探すことを試みたが、私は運がなかった。実際の適切な電話番号を探すためにどうすればいいのですか? – gshawm
ここに私が見つけたより正確な表現があります:https://w3challs.com/syscalls/?arch=arm_thumb – gshawm