2013-12-21 135 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. –