アドバイスをお願いします。私は小さな組み込みuPで作業しています。特定のメモリへの関数ポインタ
myfunctions構造体に私の様々な関数を割り当てたいと思います。それを正しく行うには? 次に、このmyfunctions(関数ポインタの構造体)を特定のメモリアドレス(0x1000など)に配置します。これを達成する最良の方法は何ですか?
typedef void (*fptr)(void);
typedef struct FCN_IMAGE
{
fptr fcn1;
fptr fcn2;
fptr fcn3;
} FUNC_T;
FUNC_T myfunctions;
実際にはジャンプテーブルのようなものです。
第2に、指定されたアドレスの場所(例:0x1000)から直接、この関数ポインタを他のプログラム内から読みたいと思います。
最初のコードは、特定のメモリ位置に関数ポインタの構造体を割り当てる必要があり、他の独立したコードは特定のメモリからこのテーブルを読み込む必要があります。これらの2つのプログラム間の相互接続は
#define FCN_BASE_ADDRESS (0x1000)
でなければなりません。それを達成する最も良い方法は何ですか?
P.S.これはPCではなく組み込みプロセッサで実行されます。
私はあなたのリンカーの機能だろうと思う。 –
部分的には正しいですが、リンカが関与していないように、特定のメモリ位置に関数ポインタを置くことは達成可能でなければなりません。 – Pepe
例:正しいかどうかわかりません: – Pepe