|
_JUDGEBEGIN?: PSHM AR1 LD pdr,B ;獲取寫入的數據 AND #00FFh,B ;取被寫入數據的DQ7~DQ0 LD par,A ;讀被燒寫地址的數據 AND #00FFh,A ;取DQ7~DQ0 STL A ,TEMP ;保存 LD A,-7,A ;讀DQ7狀態 XOR B,-7,A ;是否是反碼? BC _JUDGESUCCESS?,AEQ ; DQ7不是反碼而是寫入數據表示操作成功 BITF TEMP,#20h BC _JUDGEBEGIN?,ntc ;DQ5=1表示操作超時 LD par,A ;再讀被燒寫地址的數據 AND #00FFh,A LD A,-7,A XOR B,-7,A BC _JUDGESUCCESS?,AEQ ; DQ7不是寫入數據,表示操作失敗 _JUDGEERRO? _RESETFlash ;復位Flash _JUDGESUCCESS? POPM AR1 .endm
2 C5410 的自舉引導
脫離仿真器獨立運行程序一般有兩種方式:一種是上電后用戶程序直接在Flash存儲器中運行,這種運行速度比較慢;另一種是上電或復位后將用戶程序從Flash存儲器引導到高速數據存儲器中運行,此方法最常用,可以較低的成本實現高速的運行。為了實現這個過程就必須運用DSP自舉引導功能。
。1)自舉引導
C5410上電復位后,首先檢查MP/MC狀態:如果為高電平,說明DSP處于微處理器工作方式,即從外部程序存儲器0FF80H地址開始執行用戶程序;若為低電平,說明DSP被設置為微計算機工作方式,從片內ROM的0FF80H地址開始執行程序。0FF80H地址存放的是中斷向量表,它實為一條分支轉移指令(BD 0F800H),使程序跳轉至0F800H執行自舉引導程序(Bootloader)。Bootloader是固化在DSP芯片內ROM中的一段程序代碼,其功能是將用戶程序從外部加載至片內RAM或擴展的RAM中,使其高速運行。在搬運程序之前,Bootloader首先完成初始化工作:使中斷無效,內部RAM映射到程序/數據區(OVLY=1),對程序和數據區均設置7個等待狀態等。C5410有以下幾種自舉引導方式:主機接口HPI、并行口(8/16位)、標準串行口(MCBSP0是16位引導模式,MCBSP2是8位引導模式)以及I/O口(8/16位)自舉引導方式。
|