《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 大容量無線傳輸技術中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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久国产精品99国产精| 免费播看30分钟大片| 97久久天天综合色天天综合色 | jizzjizz之xxxx18| 日韩a级毛片免费观看| 亚洲狼人综合网| 精品无码国产自产在线观看水浒传 | 国产精品伦理一二三区伦理| xxxxx做受大片视频免费| 日本边吃奶边摸边做在线视频| 亚洲日韩精品国产一区二区三区| 精品久久久久久亚洲精品| 国产免费爽爽视频在线观看| 田中瞳中文字幕久久精品| 奇米影视中文字幕| 中文字幕综合网| 日韩系列第一页| 亚洲欧美日韩视频一区| 精品免费人成视频APP| 国产乱子伦精品无码专区| 亚洲www在线观看| 国精产品自偷自偷综合下载 | 男人和女人做免费做爽爽视频| 国产一级毛片大陆| 国产精品视频yuojizz| 国产超碰人人模人人爽人人喊| √天堂8资源中文在线| 攵女yin乱合集小丹| 久久精品国产亚洲av瑜伽| 欧美日韩a级片| 亚洲黄色激情网| 精品无码一区二区三区爱欲| 国产亚洲精品aa片在线观看网站| 日韩在线你懂的| 国产精品自拍电影| 亚洲欧洲国产成人精品| 精品国产污污免费网站入口| 国产免费一区二区三区免费视频 | 亚洲人成人77777在线播放| 毛片在线播放a| 免费吃奶摸下激烈免费视频|