我有一块M453开发板,买了一本《ARM Cortex-M4 微控制器原理与实践》。
我做基本模式实验,照着书上的代码输入程序,如下:
可是编译错误。
#include "stdio.h"
#include "M451Series.h"
#include "Common.h"
#include "Typedef.h"
#include "SmartM_M4.H"
UINT32 PDMA_TEST_LENGTH=64;
UINT8 g_szSrcArray[260];
UINT8 g_szDestArray[260];
UINT32 VOLATILE g_bIsTestOver=0;
int32_t main(void)
{
PROTECT_REG
(
SYS_Init(PLL_CLOCK); //ϵͳʱÖÓ³õʼ»¯
UART0_Init(115200);
CLK_EnableModuleClock(PDMA_MODULE);
)
memset(g_szSrcArray,'Q',sizeof g_szSrcArray);
PDMA_Open(0x4);
PDMA_SetTransferCnt(2,PDMA_WIDTH_32,PDMA_TEST_LENGTH);
PDMA_SetTransferAddr(2,(UINT32)g_szSrcArray,PDMA_SAR_INC,(UINT32)g_szDestArray,PDMA_DAR_INC);
PDMA_SetTransferMode(2,PDMA_MEM,FALSE,0);
PDMA_SetBurstType(2,PDMA_REQ_BURST,PDMA_BURST_4);
PDMA_EnableInt(2,PDMA_INT_TRANS_DONE);
NVIC_EnableIRQ(PDMA_IRQn);
g_bIsTestOver=0;
PDMA_Trigger(2);
while(g_bIsTestOver==0);
if(g_bIsTestOver==1)
printf("test done...\n");
else if(g_bIsTestOver==2)
printf("target abort...\n");
printf("Dest Array:\r\n");
printf(g_szDestArray);
PDMA_Close();
while(1)
{
}
}
VOID PDMA_IRQHandler(VOID)
{
UINT32 status=PDMA_GET_INT_STATUS();
if(status&0x1)
{
if(PDMA_GET_ABORT_STS()&0X4)
g_bIsTestOver=2;
PDMA_CLR_ABORT_FLAG(PDMA_ABTSTS_ABTIFn_Msk);
}
else if(status&0x2)
{
if(PDMA_GET_TD_STS()&0X4)
g_bIsTestOver=1;
PDMA_CLR_TD_FLAG(PDMA_TDSTS_TDIFn_Msk);
}
else
printf("unkown interrupt!\n");
}
编译错误如下:
请高手指教,如何解决?谢谢!
|