0

このコードは、LPC 上の IAP の一部です。

#define IAP_LOCATION 0x7ffffff1
...
unsigned long command[5];
unsigned long result[3];
...
typedef void (*IAP)(unsigned int [],unsigned int[]);
IAP iap_entry;

iap_entry = (IAP) IAP_LOCATION;

iap_entry(command, result);

誰かがそれがどのように機能するかを説明できますか、特に:

iap_entry = (IAP) IAP_LOCATION;
iap_entry(command, result)
4

1 に答える 1

3
typedef void (*IAP)(unsigned int [],unsigned int[]);

IAPfunction( , ) を返すポインタです。unsigned int[]unsigned int[]void

iap_entry = (IAP) IAP_LOCATION;

アドレス にいくつかのコードがありますIAP_LOCATION。C 関数として扱います。

iap_entry(command, result);

関数を呼び出す


通常、これは、ハードウェアの一部にプリコンパイル済みコードを含む ROM が含まれている場合に発生します。このコードがメモリ内のどこにあり、どの引数の型が期待されるかを C コンパイラに伝える必要があります。

于 2013-12-21T17:12:54.790 に答える