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[]);

IAP是指向 function( , ) 返回的类型指针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 回答