《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 大容量無線傳輸技術中DSP的啟動
大容量無線傳輸技術中DSP的啟動
摘要: 大容量無線傳輸技術中DSP的啟動,1引言在極低譜密度,高頻譜利用率的大容量無線傳輸技術中,高速實時信號處理成為技術的關鍵。目前市場上,能滿足對高速實時信號處理的需要有具有良好的可編程性的器件主要有DSP和FPGA。TMS320C6000系
關鍵詞: DSP
Abstract:
Key words :

1 引言

在極低譜密度,高頻譜利用率的大容量

C6416 啟動模式管腳配置 www.elecfans.com


如果DSP 的程序小于1K 字節,那么上述ROM 啟動機制已經可以完成程序的加載。然而事實上大部分DSP 的程序會大于1K 字節,這時就需要創建一個特定啟動程序來完成更多代 碼的加載。該特定啟動程序又被稱作二級bootloader。

在需要二級bootloader 的程序中,這段特定啟動代碼通常駐留在ROM 存儲器的起始位 置以便在DSP 復位后能自動被加載到內存地址0 處。當1K 字節代碼被加載完畢后,CPU 開始從地址0 處執行,也就是執行二級bootloader 的內容。二級bootloader 的功能就是將程序的剩余部分拷貝到內存中。

2 啟動方法的設計與實現

采用二級bootloader 的DSP 啟動方法的實現大體分為四步:配置存儲器;編寫 secondary bootloader 代碼;編譯程序,轉換目標文件的格式;將程序燒寫進Flash。圖1 為實施該啟動方法的硬件平臺示意圖,其中DSP 的型號選擇C6416,Flash 的型號選擇 AM29LV800B。

 

為實施該啟動方法的硬件平臺示意圖 www.elecfans.com




2.1 配置存儲器

2.1.1 定義存儲器分區

為了實現使用二級bootloader 的ROM 啟動,需要將Flash 劃分為FLASH_BOOT, FLASH_REST 兩個區。這兩個區分別存儲由on-chip bootloader 拷貝的程序段和由secondary bootloader 拷貝的程序段。對于BIOS 程序,Memory 段的定義在MEM(Memory Section Manager)對象里。對于非BIOS 程序,Memory 段定義在linker command file 中。一個C6416 的Memory 段定義的例子如下所示:




2.1.2 COFF 段的定位

DSP 程序是以COFF 段的形式在內存中存放的。一個COFF 段就是一個代碼或數據塊, 它在內存中占據連續空間。COFF 段分為自定義段,初始化段和未初始化段三種。COFF 段可 以有各種屬性,其中load 屬性和run 屬性跟DSP 啟動有密切關系。Load 屬性指明段的存儲 地址,run 屬性指明段的執行地址。二級bootloader 負責將所有的段從load 地址拷貝到run 地址。例如:

.text: LOAD= FLASH, RUN= IRAM

表示代碼段.text 被存儲在flash 中,DSP 啟動時二級bootloader 將該段拷貝到IRAM 中。

2.2 編寫Secondary bootloader 代碼

對于C6416,外部存儲器接口(EMIF)需要正確配置以后才可以訪問外部存儲器件。在這 項工作完成后,二級bootloader 應該將所 有的初始化段從它們的load 地址拷貝到run 地址, 之后再跳轉到_c_int00,也即是程序入口點。Secondary Bootloader 用匯編語言編寫,因 為此時C 環境尚未建立。  

二級bootloader 必須知道所有初始化段的大小,在Flash 中存儲的位置以及應該被加 載到何處才能進行正確的拷貝。事實上,二級bootloader 通過讀取段拷貝表獲得上述信息。 本文第三部分詳細說明了有關段拷貝表的內容。完成二級bootloader 代碼的編寫后,應將它添加入工程,與工程的其他代碼一同編譯鏈接生成.out 文件。

2.3 轉換目標文件的格式

編譯鏈接生成的是.out 格式文件,然而Flash 一般接收的是ASCII 格式的文件。CCS 附帶的工具hex conversion utility 可將.out 文件轉換為ASCII 格式的.hex 文件,Hex6x 以命令行文件的形式執行。Hex 命令行文件中,首先指明輸入文件(.out),輸出文件的格式和ROM 的大小及類型,以及哪些段需要被放在ROM 中。一個Hex 命令行文件的例子如下所示(注釋內容用“/*”和“*/”括起):







2.4 將程序燒寫進Flash

將2.3 節生成的ASCII 文件燒寫進Flash 可以使用CCS 自帶的FlashBurn 工具。 FlashBurn 是一個帶圖形界面的軟件,它首先將一個稱作FlashBurn Target Component (FBTC) 的程序下載到DSP 內存中,通過與FBTC 的實時數據交換完成對Flash 的擦除編程等操作。 針對不同的硬件(DSP,Flash 型號)修改FBTC 是該方法的關鍵。所需修改處包括Flash 的基地址,大小,及讀寫命令字等。

3 段拷貝表

二級bootloader 使用一個段拷貝表(section copy table)進行段的拷貝。段拷貝表包 含每個需要拷貝的段的必要信息,如段的load 地址,段的run 地址,段的大小。段拷貝表被插入在secondary bootloader 的末尾。

生成段拷貝表的方法有兩種:  

1) 使用 hex conversion utility 的-boot 選項 在2.3 節中我們討論了程序文件格式的轉換和hex 命令行文件,事實上Code Composer Studio 自帶的工具hex conversion utility 提供了一種更為方便的生成段拷貝表的方法, 只要在hex 命令行文件中使用一些特殊的選項即可。特殊的選項有–boot, ?bootorg 和 –bootsection,這三個選項的含義分別如下:

-boot 使用該選項時hex conversion utility 將自動轉換所有初始化段的格式

-bootorg 指明段拷貝表的地址

-bootsection 指明二級bootloader 所在的段的名稱

2) 使用 linker 選項(LOAD_START,RUN_START,SIZE)

涉及段拷貝表的生成的有三個選項:LOAD_START,RUN_START 和SIZE,可分別獲得一個段的駐留地址,運行地址和大小。例如下列代碼可獲得text 段的駐留地址(存于_text_ld_start 中),運行地址(_text_rn_start)和段的大小(存于_text_size)

.text : load = FLASH_REST, run = IRAM

LOAD_START(_text_ld_start),

RUN_START(_text_rn_start),

SIZE(_text_size)

4 結束語

本文針對在極低譜密度,高頻譜利用率的大容量無線傳輸技術研究中C6000 系列DSP 的應用程序大于1K 字節的情況,提出了一種使用二級bootloader 從Flash 啟動DSP 的方法。 該方法可應用于采用了C6000 系列DSP 的嵌入式系統中,不需要額外的Flash 編程器,具有 廣泛的適用性。

本文作者創新點:在二級bootloader 中引入段拷貝表用以控制程序加載過程,并利用 CCS 自身的編譯功能獲取段拷貝表的內容,該方法可提高效率且準確性高。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产又色又爽又刺激在线播放 | 四虎成人精品在永久免费| 91成人在线播放| 手机在线看片不卡中文字幕| 国产成人精品一区二区三区| jlzzjlzz欧美大全| 日本孕妇大胆孕交| 亚洲国产精品无码成人片久久| 精品国产污污免费网站入口| 国产在线激情视频| 18禁止看的免费污网站| 女人喷液抽搐高潮视频| 久久99精品九九九久久婷婷| 欧美丰满熟妇xxxx性ppx人交| 免费a级毛片网站| 色妞www精品视频| 国产欧美另类久久久精品免费| 99在线热视频| 成人性生交大片免费看午夜a| 久久综合精品国产一区二区三区| 欧美综合在线视频| 免费精品国产日韩热久久| 草莓视频丝瓜视频-丝瓜视18岁苹果免费网 | 新人本田岬847正在播放| 亚洲AV无码乱码国产精品| 欧美色图在线播放| 免费看一级特黄a大片| 草莓污污视频在线观看| 国产激情电影综合在线看| 97在线视频精品| 好男人好资源影视在线| 中文毛片无遮挡高清免费| 日韩精品欧美激情国产一区| 亚洲大尺度无码无码专区| 狼人久蕉在线播放| 午夜免费福利在线观看| 草久视频在线观看| 国产妇女馒头高清泬20P多毛| 337p中国人体啪啪| 日本www在线| 亚洲av本道一区二区三区四区 |