F2812存儲(chǔ)器映射及CMD詳解_第1頁(yè)
F2812存儲(chǔ)器映射及CMD詳解_第2頁(yè)
F2812存儲(chǔ)器映射及CMD詳解_第3頁(yè)
F2812存儲(chǔ)器映射及CMD詳解_第4頁(yè)
F2812存儲(chǔ)器映射及CMD詳解_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2812存儲(chǔ)器映射及 CMD2812存儲(chǔ)器映射2812具有 32位的數(shù)據(jù)地址 和 22位的程序地址 , 總地址空間可以達(dá)到 4M 的數(shù)據(jù)空間和 4M 的程序空間 。32位的數(shù)據(jù)地址,就是能訪(fǎng)問(wèn) 2的 32次,是 4G,而 22位的程序地址,就 是能訪(fǎng)問(wèn) 2的 22次,是 4M。其實(shí),2812可尋址的數(shù)據(jù)空間最大是 4G,但是實(shí)際線(xiàn)性地址 能達(dá)到的只有 4M,原因是 2812的存儲(chǔ)器分配采用的是分頁(yè)機(jī)制,分頁(yè)機(jī)制采用的是形如 0 xXXXXXXX 的線(xiàn)性地址,所以數(shù)據(jù)空間能尋址的只有 4M。 2812的存儲(chǔ)器被劃分成了下面的幾個(gè)部分:1. 程序空間和數(shù)據(jù)空間 。2812所具有的 RAM、ROM

2、和 FLASH 都被統(tǒng)一編址,映射到了程序 空間和數(shù)據(jù)空間,這些空間的作用就是存放指令代碼和數(shù)據(jù)變量。2. 保留區(qū) 。數(shù)據(jù)空間里面某些地址被保留了,作為 CPU 的仿真寄存器使用,這些地址是不 向用戶(hù)開(kāi)放的。3. CPU 中斷向量 。在程序空間里也保留了 64個(gè)地址作為 CPU 的 32個(gè)中斷向量。通過(guò) CPU 寄 存器 ST1中的 VMAP 位 來(lái)將這一段地址映射到程序空間的底部或者頂部。映射和空間的統(tǒng)一 編址 F2 812內(nèi)部的映射空間低地址空間 高地址空間 2812CMD詳解CMD:command 命令, 顧名思義就是命令文件指定存儲(chǔ)區(qū)域的分配.2812的 CMD 采用的是分頁(yè) 制,其中

3、 PAGE0用于存放程序空間,而 PAGE1用于存放數(shù)據(jù)空間 。1.#pragma ,CODE_SECTION和 DATA_SECTION偽指令#pragma DATA_SECTION(funcA,"dataA" - 函數(shù)外聲明將 funcA 數(shù)據(jù)塊定位于用戶(hù)自定義的段"dataA"中 - 需要在 CMD 中指定 dataA 段 的 物理地址2. MEMORY 和 SECTIONS 是命令文件中最常用的兩偽指令。 MEMORY 偽指令用來(lái)表示實(shí)際存在 目標(biāo)系統(tǒng)中的可以使用的存儲(chǔ)器范圍, 在這里 每個(gè)存儲(chǔ)器都有自己的名字, 起始地址和長(zhǎng)度。 SECTION

4、S 偽指令是用來(lái)描述輸入端是如何組合到輸出端內(nèi)的。F2812_nonBIOS_RAM.cmd - 用于仿真,無(wú) BIOS 系統(tǒng),片外 SRAM 配置 CMD 文件里有兩個(gè)基本的段:初始化段和非初始化段 。初始化段包含代碼和常數(shù)等必須在 D SP 上電之后有效的數(shù)。故初始化塊必須保存在如片內(nèi) FLASH 等非遺失性存儲(chǔ)器中,非初始 化段中含有在程序運(yùn)行過(guò)程中才像變量?jī)?nèi)寫(xiě)數(shù)據(jù)進(jìn)去, 所以非初始化段必須鏈接到易失性存 儲(chǔ)器中如 RAM。已初始化的段:.text,.cinit,.const,.econst,.pinit和.switch.text:所有可以執(zhí)行的代碼和常量.cinit:全局變量和靜態(tài)變量

5、的 C 初始化記錄.const:包含字符串常量和初始化的全局變量和靜態(tài)變量(由 const的初始化和說(shuō)明.econst:包含字符串常量和初始化的全局變量和靜態(tài)變量(由 far const的初始化和說(shuō) 明.pinit:全局構(gòu)造器(C+程序列表.switch:包含 switch 聲明的列表非初始化的段:.bss,.ebss,.stack,.sysmem,和 esysmem .(更好的理解就是,這些段就是 存儲(chǔ)空間而已.bss: 為全局變量和局部變量保留的空間,在程序上電時(shí).cinit 空間中的數(shù)據(jù)復(fù)制出來(lái)并 存儲(chǔ)在.bss 空間中。.ebss:為使用大寄存器模式時(shí)的全局變量和靜態(tài)變量預(yù)留的空間,在

6、程序上電時(shí),cinit 空間中的數(shù)據(jù)復(fù)制出來(lái)并存儲(chǔ)在.ebss 中.stack:為系統(tǒng)堆棧保留的空間,用于和函數(shù)傳遞變量或?yàn)榫植孔兞糠峙淇臻g。.sysmem:為動(dòng)態(tài)存儲(chǔ)分配保留的空間。 如果有宏函數(shù), 此空間被宏函數(shù)占用, 如果沒(méi)有的話(huà), 此空間保留為 0.esysmem:為動(dòng)態(tài)存儲(chǔ)分配保留的空間。如果有 far 函數(shù),此空間被相應(yīng)的占用,如果沒(méi)有 的化,此空間保留為 0. F2812_nonBIOS_Flash.cmd - 用于無(wú) BIOS,從片內(nèi) FLASH 引導(dǎo) 對(duì)于程序在 FLASH 中運(yùn)行時(shí),需要 注意 的: DSP在 150M 時(shí)鐘頻率下,FLASH 中只能提供大 約 120M 的

7、時(shí)鐘頻率, 所以有時(shí)候我們希望在 RAM 中運(yùn)行時(shí)間敏感或計(jì)算量很大的子程序 (比 如 AD 采樣。但是我們所有代碼都放在 FLASH 中,這就必須在 上電后將 FLASH 中的這段敏 感程序復(fù)制到 RAM 中運(yùn)行 ,加快速度。這是在.CMD 文件就必須劃分一段用來(lái)設(shè)置 RAM 的載 入和運(yùn)行地址。 程序代碼如下:SECTIONS ramfuncs : LOAD = FLASHD,RUN = RAML0,LOAD_START(_RamfuncsLoadStart,LOAD_END(_RamfuncsLoadEnd,RUN_START(_RamfuncsRunStart,PAGE = 0DSP2

8、81x_Headers_nonBIOS.cmd - 用于無(wú) BIOS,外設(shè)寄存器產(chǎn)生的數(shù)據(jù)段映射至對(duì)應(yīng) 的存儲(chǔ)器空間 cmd 小技巧:如果.text 文件很大將其放在一段放不下,需將其放到兩個(gè)程序段中 最長(zhǎng)的一個(gè) length=0x002000,也放不下時(shí).可以這樣處理:PAGE 0 :PRAMH0 : origin = 0x3F8002, length = 0x0014FE L0RAM : origin = 0x008000, length = 0x001000SECTIONS.text:*(.text >>PRAMH0|L0RAM 這樣就可以將.text 文件放在兩個(gè)定義段中。查看段的分配及使用情況.map 的鏈接器(存儲(chǔ)器分配映射文件 ,鏈接器的 map 文件描述 以下內(nèi)容:通過(guò) map 文件可以查看各段的分配情況,包括段的起始地址,使用的字節(jié)數(shù)等 配合 cmd 文件的使用 , 可確定各個(gè)段的使用情況, 從而保證程序的正常運(yùn)行和最小的空間使 用 。VisualLinker 可視化鏈接器 TI 公司出品的 DSP 軟件開(kāi)發(fā)環(huán)境 CCS 還提供了一種可視化生成 存儲(chǔ)器配置文件的工具:VisualLinker可視化鏈接器。如果程序原來(lái)包含了一個(gè)鏈接器命 令文件(.cmd文件,則當(dāng)創(chuàng)建可視

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論