多核DSP的BootLoader程序的實現(xiàn)
DSP芯片的BootLoader程序用于實現(xiàn)用戶程序上電自舉,它有多種工作方式。上電自舉就是將用戶存放在片外的非易失性、慢速的存儲器中的程序裝載到片內(nèi)易失的、高速的存儲空間中,以保證用戶程序在DSP核內(nèi)的高速運行。
多核DSP是指由多個獨立的DSP子核集成的DSP芯片,且所有DSP子核共享一套片外總線。由于每個DSP子核內(nèi)部都有其自身獨立的掩模BootLoader程序,當(dāng)DSP芯片上電或復(fù)位時,所有DSP子核都將自行啟動自身獨立的BootLoader程序,實現(xiàn)用戶程序的上電自舉。所以,多核DSP的BootLoader程序的實現(xiàn)方法與單核DSP的BootLoader程序的實現(xiàn)方法有較大的差異。為此,本文立足于實踐,以雙核DSP—TMS320VC5421的16位并行EPROM的BootLoader程序的工作方式為例,詳細(xì)闡述了多核DSP的BootLoader程序的實現(xiàn)方法。
1 BootLoader程序簡介
1.1 BootLoader程序的四種工作方式
一般的DSP都采用常見的BootLoader程序工作方式來實現(xiàn)用戶程序的上電自舉:
·8位或16位并行EPROM方式——通過DSP內(nèi)核的DMA通道實現(xiàn)上電自舉;
·8位或16位并行I/O方式——通過DSP芯片的片外并行I/O接口實現(xiàn)上電自舉;
·8位或16位串行口方式——通過DSP芯片的串行端口實現(xiàn)上電自舉。
在以上四種工作方式中,最常用的是16位并行EPROM方式。即在DSP芯片上電或復(fù)位時,通過DMA通道將存儲在核外EPROM中的程序以16位形式存儲到核內(nèi)的程序空間中。
1.2 16位并行EPROM方式的Boot表
各種方式的BootLoader程序都有其固定格式的Boot表,用來實現(xiàn)用戶程序的上電自舉。16位并行EPROM方式的Boot表如表1所示。表中的第1表項存放BootLoader程序工作方式控制字,用于DSP芯片上電或復(fù)位時確認(rèn)該Boot表是否為16位并行EPROM工作方式的Boot表。該表項內(nèi)容為10AAH,表示DSP內(nèi)核認(rèn)為該Boot表是16位并行EPROM工作方式的BootLoader程序的Boot表;否則DSP內(nèi)核認(rèn)為該Boot表不是16位并行EPROM的方式的Boot表;第2表項存放DSP特殊寄存器SWWSR在上電或復(fù)位時被賦予的初始化數(shù)值;第3表項存放DSP特殊寄存器BSCR在上電或復(fù)位時被賦予的初始化數(shù)值;第4表項存放用戶程序?qū)⒁淮娣旁贒SP核內(nèi)程序空間的頁地址;第5表項存放用戶程序?qū)⒁淮娣诺紻SP核內(nèi)程序空間的頁內(nèi)偏移地址;從第6表項開始依次存放用戶程序第m段代碼的長度N。用戶程序第m段代碼將要被存放到DSP核內(nèi)程序空間的頁地址,用戶程序第m段代碼將要被存放到DSP核內(nèi)程序空間的頁內(nèi)偏移地址,用戶程序第m段代碼的第1個字,第2個字,……,第N個字;Boot表的最后表項存放Boot表結(jié)束字0000H,表示Boot表到此結(jié)束。因此DSP內(nèi)核要實現(xiàn)BootLoader程序,在上電復(fù)位后首先要申請到片外數(shù)據(jù)、地址總線的控制權(quán),然后再根據(jù)Boot表完成用戶程序上電自舉過程。
評論