2013-12-21 92 views
0

此代码是一个LPC IAP的一部分:IAP的LPC微控制器

#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) 

回答

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

IAP是指向功能的指针unsigned int[],unsigned int[])返回void

iap_entry = (IAP) IAP_LOCATION; 

有地址IAP_LOCATION一些代码。将其视为C函数。

iap_entry(command, result); 

调用函数


通常,这发生在一块硬件包含具有预先编译的代码的ROM。你必须告诉C编译器这段代码在内存中的位置,以及它期望的参数类型。

+0

+1是 - 它是IAP入口点,(在应用程序编程 - 吹动闪光灯)。对那个不对齐的地址有一些神奇的作用 - 忘记了什么。 –

+1

拇指位必须设置为Cortex M. –