C54x的存儲(chǔ)空間與CMD文件編寫課件_第1頁(yè)
C54x的存儲(chǔ)空間與CMD文件編寫課件_第2頁(yè)
C54x的存儲(chǔ)空間與CMD文件編寫課件_第3頁(yè)
C54x的存儲(chǔ)空間與CMD文件編寫課件_第4頁(yè)
C54x的存儲(chǔ)空間與CMD文件編寫課件_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 程序?qū)ぶ房臻g占64KW (可擴(kuò)展到1MW) 數(shù)據(jù)存儲(chǔ)空間占64KW I/O訪問(wèn)空間占64KW第6講 C54x的存儲(chǔ)器與CMD文件編寫存儲(chǔ)器介質(zhì)類型存儲(chǔ)器物理位置存儲(chǔ)器尋址空間片內(nèi)存儲(chǔ)器片外存儲(chǔ)器片外I/O設(shè)備RAM(DARAM、SARAM) ROM Flash等(接口類型)本講包含以下章節(jié)的內(nèi)容:2.5 C54x的存儲(chǔ)空間結(jié)構(gòu)4.5 鏈接器的使用8.4 DSP存儲(chǔ)器和I/O擴(kuò)展異步接口存儲(chǔ)器SRAM、Flash、NvRAM許多模擬數(shù)字I/O也采用異步存儲(chǔ)器接口形式同步接口存儲(chǔ)器同步靜態(tài)存儲(chǔ)器:SBSRAM、ZBTSRAM同步動(dòng)態(tài)存儲(chǔ)器:SDRAM同步FIFO存儲(chǔ)器按接口類型可分為:存儲(chǔ)器類型

2、 TI DSP外部存儲(chǔ)器接口存儲(chǔ)器類型C2000C3xC54xC55xC62xC67xC64x異步存儲(chǔ)器SBSRAMZBTSRAMSDRAM同步FIFO數(shù)據(jù)寬度16位32位16位8位16位32位8位16位32位8位16位32位64位只能與異步器件連接,如要與同步器件則需外加同步控制器異步、同步接口、FLASH接口(上電搬移程序) 片內(nèi)雙訪問(wèn)RAM(DARAM) DARAM是每個(gè)機(jī)器周期可被訪問(wèn)兩次的存儲(chǔ)器。所有的C54x器件都具有片內(nèi)DARAM,大小隨不同型號(hào)而不同,它們主要被配置成數(shù)據(jù)存儲(chǔ)器(可雙訪問(wèn)操作)。但在需要時(shí)也可配置成程序存儲(chǔ)器。片內(nèi)DARAM配置成程序存儲(chǔ)空間還是數(shù)據(jù)存儲(chǔ)空間,要

3、根據(jù)狀態(tài)寄存器PMST的OVLY位的值判斷決定。 C54x 異步存儲(chǔ)器 片內(nèi)單訪問(wèn)RAM(SARAM) SARAM是每個(gè)機(jī)器周期僅能訪問(wèn)一次的存儲(chǔ)器。C54x器件中某些片種具有單訪問(wèn)RAM(SARAM), 其大小隨不同型號(hào)而不同,與這些SARAM相關(guān)聯(lián)的地址可用于程序存儲(chǔ)器和/或數(shù)據(jù)存儲(chǔ)器,。 根據(jù)器件不同,可由軟件或硬件配置為片內(nèi)的或片外的SARAM。當(dāng)配置為外部存儲(chǔ)器時(shí),這些地址可用于片外數(shù)據(jù)和程序存儲(chǔ)器;當(dāng)配置為內(nèi)部SARAM時(shí),程序代碼可從片外ROM引導(dǎo)裝入到片內(nèi)SARAM中,并且一旦代碼裝入到片內(nèi)SARAM中,它就可以被全速執(zhí)行。由于SARAM能被分配到程序和/或數(shù)據(jù)存儲(chǔ)器空間,因此

4、與DARAM相比,SARAM允許更加靈活的地址分配。 工廠掩模的片內(nèi)ROM C54x器件中大部分片種具有片內(nèi)掩模型ROM來(lái)作為程序存儲(chǔ)器,例如C5402配置4K字 ROM,C5416則配置16K字 ROM等。 復(fù)位(reset)時(shí)驅(qū)動(dòng) 引腳為低即可選中該ROM。若不選該ROM,器件將從片外存儲(chǔ)器開(kāi)始啟動(dòng)執(zhí)行。 閃爍存儲(chǔ)器flash C2000器件中一些片種具有片內(nèi)flash(C54x一般不具有),它是電可擦除、可編程、非易失性(可長(zhǎng)久保存)的存儲(chǔ)器。每塊flash都有一組控制寄存器,用來(lái)擦除、編程和測(cè)試該flash塊。這些flash塊可以在復(fù)位期間驅(qū)動(dòng) 引腳為低來(lái)選擇。若不選flash,器件將

5、從片外的存儲(chǔ)器開(kāi)始執(zhí)行。 有的器件片內(nèi)FLASH帶有加密位,如LF/LC240XA系列就帶有加密位。 C54x DSP的存儲(chǔ)器空間可以分為三個(gè)單獨(dú)選擇的空間,即64K字的程序空間、64K字的數(shù)據(jù)空間和64K字的I/O空間。一些C54x DSP芯片采用了分頁(yè)擴(kuò)展方法可訪問(wèn)8M的程序空間。在任何一個(gè)存儲(chǔ)空間內(nèi),RAM、ROM、EPROM、EEPROM或存儲(chǔ)器映射外設(shè)都可以駐留在片內(nèi)或者片外。存儲(chǔ)器地址空間分配 C54x DSP具有三個(gè)CPU狀態(tài)寄存器位,影響存儲(chǔ)器的配置,這三個(gè)狀態(tài)位是處理器模式狀態(tài)寄存器(PMST)中的: 、OVLY和DROM。注意:若用戶需要運(yùn)行BOOT程序應(yīng)選用微計(jì)算機(jī)模式T

6、MS320VC5402存儲(chǔ)器映射圖 F000hHPIRAM1000h17FFh (1) 位: 若 =0,則片內(nèi)ROM映射到程序存儲(chǔ)空間; 若 =1,則片內(nèi)ROM不映射到程序存儲(chǔ)空間。 (2) OVLY位: 若OVLY=1,則片內(nèi)RAM映射到程序和數(shù)據(jù)存儲(chǔ)空間; 若OVLY=0,則片內(nèi)RAM只映射到數(shù)據(jù)存儲(chǔ)空間。 (3) DROM位: 若DROM=1,則部分片內(nèi)ROM映射到數(shù)據(jù)存儲(chǔ)空間; 若DROM=0,則片內(nèi)ROM不映射到數(shù)據(jù)存儲(chǔ)空間。 注意:DROM的用法與MPMC 的用法無(wú)關(guān)。程序存儲(chǔ)空間用來(lái)存放要執(zhí)行的指令和執(zhí)行中所需的系數(shù)表。C5402共有20條地址線,可尋址1M字的外部程序存儲(chǔ)器。它

7、的內(nèi)部ROM和DARAM可通過(guò)軟件映射到程序空間。當(dāng)存儲(chǔ)單元映射到程序空間時(shí),CPU可自動(dòng)地按程序存儲(chǔ)器對(duì)它們進(jìn)行尋址。如果程序地址生成器(PAGEN)產(chǎn)生的地址處于外部存儲(chǔ)器,CPU可自動(dòng)地對(duì)外部存儲(chǔ)器尋址。1、 程序存儲(chǔ)器1. 程序存儲(chǔ)空間的配置 (1) MP/MC控制位用來(lái)決定程序存儲(chǔ)空間是否使用內(nèi)部存儲(chǔ)器。 當(dāng)MP/ MC=0時(shí),稱為微計(jì)算機(jī)模式。 4000HEFFFH程序存儲(chǔ)空間定義為外部存儲(chǔ)器; F000HFEFFH程序存儲(chǔ)空間定義為內(nèi)部ROM; FF00HFFFFH程序存儲(chǔ)空間定義為內(nèi)部存儲(chǔ)器。 當(dāng)MP/ MC=1時(shí),稱為微處理器模式。 4000HFFFFH程序存儲(chǔ)空間定義為外部

8、存儲(chǔ)器。 程序存儲(chǔ)空間可通過(guò)PMST寄存器的狀態(tài)位MP/MC和OVLY來(lái)設(shè)置內(nèi)部存儲(chǔ)器的映射地址。(2) OVLY控制位用來(lái)決定程序存儲(chǔ)空間是否使用內(nèi)部RAM。 當(dāng)OVLY= 0時(shí),程序存儲(chǔ)空間不使用內(nèi)部RAM。 0000H3FFFH全部定義外部程序存儲(chǔ),此時(shí)內(nèi)部RAM只作數(shù)據(jù)存儲(chǔ)器。 當(dāng)OVLY= 1時(shí),程序存儲(chǔ)空間使用內(nèi)部RAM。 內(nèi)部RAM同時(shí)被映射到程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間。 0000H007FH保留,程序無(wú)法占用; 0080H3FFFH定義為內(nèi)部DARAM。 2. 程序存儲(chǔ)空間的分頁(yè)擴(kuò)展 在C54x系列芯片中,有些芯片采用分頁(yè)擴(kuò)展的方法,使程序存儲(chǔ)空間可擴(kuò)展到1M8M。TMS320

9、VC5402中的程序空間有20根外部程序地址總線,可擴(kuò)展到1M字,分成16頁(yè),每頁(yè)64K字。TMS320VC5402的擴(kuò)展程序存儲(chǔ)器映射 使用專門的指令來(lái)訪問(wèn)這些擴(kuò)展的程序空間:FBD、FBACCD、FCALAD、 FCALLD、 FRETD、FRETED若處于MC模式,則內(nèi)部ROM只能在第0頁(yè)被尋址。不能映射到擴(kuò)展程序空間的其它頁(yè)。如果OVLY=1,程序空間使用內(nèi)部RAM,此時(shí),不管XPC為何值,所有低32K字(x0000 x7FFFh)都被映射到內(nèi)部RAM (00007FFFh)中。因此為了訪問(wèn)全部1M字,必須設(shè)置OVLY=0(此時(shí)程序代碼都存儲(chǔ)于外部存儲(chǔ)器中)擴(kuò)展的程序空間OVLY=1時(shí)

10、為片內(nèi)RAM ; OVLY=0時(shí)為片外只能為片外 3片內(nèi)ROM的組織及代碼內(nèi)容 C54x DSP提供了各種容量的ROM(2 KB、4 KB、8 KB、28 KB或48 KB)。容量大的片內(nèi)ROM可以把用戶的程序代碼編寫進(jìn)去,然而片內(nèi)高2 KB ROM中的內(nèi)容是由TI公司定義的。這2 KB程序空間(F800hFFFFh)中包含如下內(nèi)容: (1) 自舉加載程序。 從串行口、外部存儲(chǔ)器、I/O端口或者主機(jī)接口自舉加載。(2) 256B律擴(kuò)展表。 (3) 256B A律擴(kuò)展表。(4) 256B 正弦函數(shù)值查找表。(5) 128B 中斷向量表。TMS320C54x片內(nèi)高2K字地址ROM的分塊圖 F000

11、HF7FFH高2K字由TI定義低2K字由用戶定義對(duì)于VC5402,為4K字的內(nèi)部ROM用戶代碼程序存儲(chǔ)器擴(kuò)展電路 TMS320C54x的數(shù)據(jù)存儲(chǔ)器的容量最多可64K字。除了單尋址和雙尋址RAM(SARAM和DARAM)外,TMS320C54x還可以通過(guò)軟件將片內(nèi)ROM映像為數(shù)據(jù)存儲(chǔ)空間。 當(dāng)處理器發(fā)出的地址處在片內(nèi)存儲(chǔ)器的范圍內(nèi)時(shí),就對(duì)片內(nèi)的RAM或數(shù)據(jù)ROM(當(dāng)ROM設(shè)為數(shù)據(jù)存儲(chǔ)器時(shí))尋址。當(dāng)數(shù)據(jù)存儲(chǔ)器地址產(chǎn)生器發(fā)出的地址不在片內(nèi)存儲(chǔ)器的范圍內(nèi)時(shí),處理器就會(huì)自動(dòng)地對(duì)外部數(shù)據(jù)存儲(chǔ)器尋址。2、 數(shù)據(jù)存儲(chǔ)器 1數(shù)據(jù)存儲(chǔ)器的可配置性 數(shù)據(jù)存儲(chǔ)器可以駐留在片內(nèi)或者片外。片內(nèi)DARAM都是數(shù)據(jù)存儲(chǔ)空間。

12、對(duì)于某些TMS320C54x,用戶可以通過(guò)設(shè)置PMST寄存器的DROM位,將部分片內(nèi)ROM映像到數(shù)據(jù)庫(kù)存儲(chǔ)空間。這一部分片內(nèi)ROM既可以在數(shù)據(jù)庫(kù)空間使能(DROM=1),也可以在程序空間使能(MP/ =0)。復(fù)位時(shí),處理器將DROM位清0。 對(duì)數(shù)據(jù)ROM的單操作數(shù)尋址,包括32位長(zhǎng)字操作數(shù)尋址,單個(gè)周期就可完成。而在雙操作數(shù)尋址時(shí),如果操作數(shù)駐留在同一塊內(nèi),則要2個(gè)周期;若操作數(shù)駐留在不同塊內(nèi),則只需一個(gè)周期就可以了。 2片內(nèi)RAM的組織 為了提高處理器的性能,片內(nèi)RAM也可細(xì)分成若干塊。分塊組織可以讓用戶在同一個(gè)周期內(nèi)從同一塊DARAM中取出兩個(gè)操作數(shù),并將數(shù)據(jù)寫入到另一塊DARAM中。 所

13、有C54x DSP上的DARAM的起始1 KB塊包括程序存儲(chǔ)器映射CPU和外設(shè)寄存器,32B暫存存儲(chǔ)器DARAM和896B DARAM。C54x的存儲(chǔ)器映射寄存器MMR C54x DSP中的一些寄存器不單獨(dú)分配寄存器空間,而是使用數(shù)據(jù)存儲(chǔ)空間映射的辦法尋址,因此其訪問(wèn)也按存儲(chǔ)器來(lái)訪問(wèn)。尋址存儲(chǔ)器映像CPU寄存器,不需要插入等待周期。片內(nèi)外設(shè)寄存器用于對(duì)片內(nèi)外設(shè)的控制和存放數(shù)據(jù),對(duì)它們尋址需要2個(gè)機(jī)器周期。 C54x DSP CPU寄存器(在數(shù)據(jù)存儲(chǔ)器的第0頁(yè)) C54x DSP 片內(nèi)外設(shè)寄存器(在數(shù)據(jù)存儲(chǔ)器的第0頁(yè)) C54x DSP 片內(nèi)外設(shè)寄存器(在數(shù)據(jù)存儲(chǔ)器的第0頁(yè)) C54x DSP

14、片內(nèi)外設(shè)寄存器(在數(shù)據(jù)存儲(chǔ)器的第0頁(yè))示 例 TMS320C54x除了程序和數(shù)據(jù)存儲(chǔ)器空間外,還有一個(gè)I/O存儲(chǔ)器空間。I/O是一個(gè)64KB的地址空間(0000HFFFFH),都在片外。可以用兩條指令(輸入指令PORTR和輸出指令PORTW)對(duì)I/O空間尋址。可以擴(kuò)展外部I/O,外部I/O必須使用緩沖或鎖存電路,配合外部I/O讀寫控制構(gòu)成外部I/O的控制電路。 3、I/O空間I/O端口的擴(kuò)展數(shù)據(jù)采集 STM #1000h,AR3 ;AR3指向目的地址 STM #0063h,AR4 ;AR4為采集的長(zhǎng)度 LOOP: PORTR 4000H,*AR3+ BANZ LOOP,*AR4-#pragma

15、 DATA_SECTION(buf,”adsect”)int buf100;ioport unsigned port4000;int i;for(i=0;i VECT PAGE 0.text PRAM PAGE 0.data PRAM PAGE 0.bss DRAM PAGE 1.stack STACK PAGE1DSP匯編語(yǔ)言:SECTION偽指令5個(gè)SECTION偽指令 .bsssymbol,size in word .text .data .sect“section name”symbol .usect“section name”,size in word其中symbol相當(dāng)于變量名,s

16、ize in word保留的存儲(chǔ)單元長(zhǎng)度初試化段和未初試化段.bss和.usect為未初試化段,用于為變量、堆棧等保留一塊存儲(chǔ)空間.text、.data和.sect為初試化段,用于存放代碼塊或有初值的數(shù)據(jù)塊系統(tǒng)定義的段和用戶定義的段.text、.data和.bss為系統(tǒng)已定義好的段名用戶根據(jù)需要用. sect和.usect偽指令來(lái)定義段名,創(chuàng)建相應(yīng)的“段”匯編程序中,程序員用“段”偽指令來(lái)組織程序的代碼和數(shù)據(jù)段定義偽指令初始化段: .text .data .sect “section name”非初始化段 .bss symbol, size in wordssymbol .usect “sec

17、tion name”, size in words.text.text定義代碼段,用于代碼段開(kāi)始前,通常.text段用來(lái)存放可執(zhí)行代碼。.text是默認(rèn)段,在匯編一開(kāi)始如不指定其它段(.data段或.sect段),則自動(dòng)匯編到.text段。 舉例:.textAdcproc:clrcsxm;從此段開(kāi)始處放置一個(gè)子程序Adcprog.data.data定義數(shù)據(jù)段,用于數(shù)據(jù)段開(kāi)始前,通常.data段用來(lái)存放數(shù)據(jù)表或初始化后的變量。舉例: .datasym .word0abcdh, 01234h, 9876;從此段開(kāi)始處定義三個(gè)常數(shù)對(duì)應(yīng)的C語(yǔ)言表示方法為:int sym3=0 x0abcd,0 x12

18、34,9876;.sect.sect “section name”定義自定義命名段(已初始化段),給其后的段取名以便調(diào)用。注意:段名必須用引號(hào)引起。buf .sect “var_defs” .word 17,18;Start assembling into a named, initialized;section, var_defs對(duì)應(yīng)的C語(yǔ)言表示方法為:#pragma DATA_SECTION(buf,”var_defs”)int buf2=17,18;.bss.bss symbol, size in words定義非初始化變量空間,為未初始化變量在RAM中保留若干字空間舉例: .bss s

19、ym, 19 ; Reserve space in .bss對(duì)應(yīng)的C語(yǔ)言表示方法為:int sym19;.usectsymbol .usect “section name”, size in words定義自定義命名段(未初始化段),為該名稱的段保留若干字空間。舉例:usym.usect ”xy”, 20; Reserve space in xy對(duì)應(yīng)的C語(yǔ)言表示方法為:#pragma DATA_SECTION(usym,”xy”)int usym20;段的定位:在編程時(shí),“段”沒(méi)有絕對(duì)定位,每個(gè)“段”都認(rèn)為是從0地址開(kāi)始的一塊連續(xù)的儲(chǔ)存空間,所以軟件開(kāi)發(fā)人員只需要將不同代碼塊和數(shù)據(jù)塊放到不同的

20、“段”中,而無(wú)需關(guān)心這些“段”究竟定位于系統(tǒng)何處。重定位:由于所有的“段”都是從0地址開(kāi)始,所以程序編譯完成后無(wú)法直接運(yùn)行的,要讓程序正確運(yùn)行,必須對(duì)“段”進(jìn)行重新定位,這個(gè)工作由鏈接器完成優(yōu)點(diǎn):便于程序的模塊化編程;便于工程化管理:可將軟件開(kāi)發(fā)人員和硬件開(kāi)發(fā)人員基本上分離開(kāi)段的定位DSP匯編語(yǔ)言:匯編器對(duì)“段”的處理匯編器第一次遇到新“段”時(shí),將該“段”的段程序計(jì)數(shù)器(SPC)置為0,并將隨后的程序代碼或數(shù)據(jù)順序編譯進(jìn)該“段”中匯編器遇到同名“段”時(shí),將它們合并,然后將隨后的程序代碼或數(shù)據(jù)順序編譯進(jìn)該“段”中當(dāng)匯編器遇到.text、.data和.sect偽指令時(shí),匯編器停止將隨后的程序代碼或

21、數(shù)據(jù)順序編譯進(jìn)當(dāng)前“段”中,而是順序編譯進(jìn)遇到的“段”中當(dāng)匯編器遇到.bss和.usect偽指令時(shí),匯編器并不結(jié)束當(dāng)前“段”,而只是簡(jiǎn)單地暫時(shí)脫離當(dāng)前“段”,隨后的程序代碼或數(shù)據(jù)仍將順序編譯進(jìn)當(dāng)前“段”中。.bss和.usect偽指令,可以出現(xiàn)在.text、.data或.sect“段”中的任何位置,它們不會(huì)影響這些“段”的內(nèi)容DSP匯編語(yǔ)言:鏈接器對(duì)“段”的處理鏈接器對(duì)“段”的處理有2個(gè)方面:將輸入“段”組合產(chǎn)生輸出“段”將多個(gè).obj文件中的同名“段”合并一個(gè)輸出“段”也可將不同名的“段”合并產(chǎn)生一個(gè)輸出“段”將輸出“段”定位到實(shí)際的存儲(chǔ)空間中MEMORY命令:用于掃描系統(tǒng)實(shí)際的硬件資源SE

22、CTIONS命令:用于描述程序中定義了哪些“段”,這些“段”是否需要合并?如何合并?合并產(chǎn)生的輸出“段”定位到實(shí)際硬件資源的何處?鏈接器通過(guò).cmd文件來(lái)獲得上述這些信息鏈接器還將檢查各輸出“段”是否重疊、是否超界,避免了人工檢查邊界帶來(lái)的隱患鏈接器對(duì)段的處理數(shù)據(jù)采集buf .usect “adsect”, 100 STM #buf,AR3 ;AR3指向目的地址 STM #0063h,AR4 ;AR4為采集的長(zhǎng)度 LOOP: PORTR 4000H,*AR3+ BANZ LOOP,*AR4-#pragma DATA_SECTION(buf,”adsect”)int buf100;ioport

23、unsigned port4000;int i;for(i=0;i0 x1000 page 1run屬性:規(guī)定輸出段將被運(yùn)行在存儲(chǔ)器中的位置。Possible properties which defines where in memory the section is to be loadedSyntax: load = allocationor allocationor allocation run = allocationor run allocationLoad & Run allocation是MEMORY所定義的范圍內(nèi)的地址,包括ROM、RAM、實(shí)際地址值(16位常數(shù))等load屬

24、性:規(guī)定輸出段將被裝載在存儲(chǔ)器中的位置。當(dāng)運(yùn)行地址與加載地址一致時(shí),可省掉run,直接寫成allocation利用CMD文件根據(jù)實(shí)際硬件資源定位保留片內(nèi)DARAM外部OVLY=1DROM=0將程序代碼、系數(shù)表放在EXPRAM處(即片外256KW的RAM存儲(chǔ)器CY7C1041中)將未初始化變量存放在EXDRAM處(即片外32KW的RAM存儲(chǔ)器IS61C3216中)107Fhvectors.data1200h120Fh.text5000h5FFFhSTACK1500h26FFh.bss5000h5FFFhSECTIONS .text:EXPRAM PAGE 0 .data:DARAM2 PAGE

25、0 vectors: DARAM1 PAGE 0 STACK:DARAM3 PAGE 1 .bss:EXDRAM PAGE 1DARAM2 DARAM1 DARAM3EXDRAMEXPRAM-o example.out-m example.map-e startMEMORYPAGE 0: /* PM Program memory */ DARAM1: org=0080h,len=1000h DARAM2 : org=1200h,len=10h EXPRAM: org=5000h,len=1000h PAGE 1: DARAM3: org=1500h,len=1200h EXDRAM: org=

26、5000h,len=1000h SECTIONS .text:EXPRAM PAGE 0 .data:DARAM2 PAGE 0 vectors: DARAM1 PAGE 0 STACK:DARAM3 PAGE 1 .bss:EXDRAM PAGE 1* example.asm * stack .usect STACK, 10h CMD文件編寫舉例example.asm程序清單* example.asm y= a1*x1+a2*x2+a3*x3+a4*x4 * .title example.asmstack .usect STACK, 10h ;allocate space for stack

27、 .bss x,4 ;allocate 9 word for variables .bss a,4 .bss y,1 .def start .data table: .word 1,2,3,4 ;data follows . .word 8,6,4,2示例程序: .text ;code follows .start: STM #stack+10h, SP ;set stack pointer STM #table,AR1 ;AR1 point to table STM #x,AR2 ;AR2 point to x STM #7,AR0 LD #0,Aloop: LD *AR1+,A ;move

28、 8 values STL A,*AR2+ ;from program memory BANZ loop,*AR0- ;into data memory CALL SUM ;call SUM subroutineend: B endSUM: STM #a, AR3 ;The subroutine ; implement STM #x, AR4 ;multiply- ;accumulate RPTZ A, #3 MAC *AR3+, *AR4+, A STL A, y RET .end中斷向量文件vectors.asm* vectors.asm Reset vector * .title vec

29、tors.asm .ref start .sect .vectors B start .endvectors.objexample.obj-o example.out-m example.map-e startMEMORY PAGE 0: EPROM:org=0E000h,len=100h VECS: org=0FF80h,len=80h PAGE 1: SPRAM: org=0060h,len=20h DARAM:org=0080h,len=100h SECTIONS .text:EPROM PAGE 0 .bss:SPRAM PAGE 1 .data:DARAM PAGE 1 STACK:DARAM PAGE 1 vectors:VECS PAGE 0鏈接命令文件 example.cmdEPROME000hE0FFhEPROME000hE0FFhSPRAMDARAM017Fh利用CMD文件配置存儲(chǔ)器空間VECSVECS映象文件(.map).map文件給出了存儲(chǔ)器的配置情況程序段、數(shù)據(jù)段、堆棧段以及向量段在存儲(chǔ)器中的定位表全局符號(hào)在存儲(chǔ)器中的位置映象文件舉例*TMS320C54x COFF Linker Version

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論