国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

復(fù)雜電磁干擾環(huán)境下的C6000DSP自舉方法

2013-10-10 01:56:44周文輝李少華李敬東
關(guān)鍵詞:程序代碼常量代碼

周文輝,李少華,李敬東

(中國人民解放軍95899部隊,北京100085)

引 言

TMS320C6000在軍事通信、電子對抗、雷達系統(tǒng)、精確制導(dǎo)武器等需要高度智能化的領(lǐng)域應(yīng)用非常廣泛,而這些領(lǐng)域?qū)υO(shè)備的可靠性和穩(wěn)定性要求非常高。在這些特殊應(yīng)用領(lǐng)域,電磁干擾環(huán)境較為復(fù)雜,單粒子翻轉(zhuǎn)效應(yīng)無法避免,會引起一些關(guān)鍵參數(shù)發(fā)生變化,一個比特的錯誤可能會造成嚴重故障。為緩解單粒子翻轉(zhuǎn)效應(yīng),經(jīng)常采取程序代碼在外部ROM中執(zhí)行,RAM中關(guān)鍵變量采取軟件三模冗余可靠性技術(shù)手段來保障。

另一方面,程序在外部ROM中執(zhí)行的速度較慢,在片內(nèi)RAM中執(zhí)行的效率最高,片外RAM其次。為了使充分發(fā)揮DSP的效能,應(yīng)盡量將程序代碼放在片內(nèi)RAM中運行。

本文以TMS320C6000系列的620X/670XDSP為例,采用一種分兩次生成ROM文件的自舉實現(xiàn)方法,使程序在片內(nèi)程序RAM中執(zhí)行的同時,預(yù)置關(guān)鍵參數(shù)和常量從ROM中讀取,從而在發(fā)揮DSP最大效能的同時在一定程度上防止單粒子翻轉(zhuǎn)效應(yīng)。

1 傳統(tǒng)自舉方法

1.1 地址映射方式

TMS320C620X/670X有兩種地址映射模式,即MAP0和MAP1,這兩種映射模式用于確定存儲器的地址訪問空間和啟動工作方式。

MAP0映射模式下,地址0映射在外部空間,DSP啟動時從外部直接執(zhí)行。MAP1映射模式下,地址0 映射在內(nèi)部空間,DSP啟動時需要從外部空間裝載執(zhí)行代碼到內(nèi)部地址0位置處后再運行。

本文采用MAP1映射模式。在MAP1映射模式下,片外ROM映射空間起始地址為0x01400000。

1.2 自舉方法及實現(xiàn)原理

TMS320C620X/670X的啟動模式根據(jù)BOOTMODE[4:0]引腳確定,通過仔細分析,可以總結(jié)為以下3種啟動方式。

① 無引導(dǎo)(No Boot),DSP上電復(fù)位后直接從存儲器地址0處開始執(zhí)行;

②ROM 引導(dǎo)(ROM Boot),在DSP上電復(fù)位時由DMA/EDMA控制器從外部空間CE1處起始位置裝載64 KB代碼到DSP內(nèi)部RAM地址0處,從地址0處執(zhí)行;

③ 主機引導(dǎo)(Host Boot),DSP上電后,保持復(fù)位狀態(tài),外部主機將應(yīng)用程序?qū)懙紻SP內(nèi)部,并修改相應(yīng)的寄存器內(nèi)容,使DSP從地址0處執(zhí)行。

第1種方式運行在MAP0映射模式下,要求用于啟動的外部存儲器必須是32位寬ROM。由于一般ROM均是8位寬,這樣至少需要4片才能組成一個32位寬啟動功能部件,造成外部擴展規(guī)模較大。另外,ROM的讀取速度遠遠低于內(nèi)部程序區(qū)的讀取速度,會造成系統(tǒng)處理能力大大降低。

第2種方式運行在MAP1映射模式下,DSP啟動時自動裝載64KB代碼到內(nèi)部地址0后自動執(zhí)行。這在程序代碼量小于64KB條件下有很多優(yōu)勢,如外部擴展存儲器規(guī)模小,代碼運行速度快等。但在復(fù)雜電磁干擾環(huán)境下,該方式需要對所有的關(guān)鍵參數(shù)和常量考慮三模冗余,增大了程序設(shè)計復(fù)雜度。

第3種方式一般用于存在主機的設(shè)備。

在實際DSP系統(tǒng)中最常用的是第2種方式,一般僅需要一片非易失性存儲器就可方便實現(xiàn)程序配置。

1.3 段定義

由于篇幅所限,段(section)定義中僅列出必須的段,對可選的段定義可以根據(jù)實際工程環(huán)境需要添加。

.text:存放C程序的代碼。

.cinit:存放C程序中的變量初值和常量。

.const:存放C程序中的字符常量、浮點常量和用const聲明的常量。

.bss:為C程序中的全局和靜態(tài)變量保留存儲空間。

.stack:為C程序系統(tǒng)堆棧保留存儲空間,用于保存返回地址、函數(shù)間的參數(shù)傳遞、存儲局部變量和保存中間結(jié)果。

2 兩次生成自舉方法

2.1 方法介紹

為了在發(fā)揮DSP最大效能的同時有效防止單粒子翻轉(zhuǎn)效應(yīng),在分析前兩種引導(dǎo)方式的基礎(chǔ)上,筆者設(shè)計了一種程序在片內(nèi)程序RAM中執(zhí)行,初始化參數(shù)和常量在ROM中讀取的自舉方法。

為了實現(xiàn)該設(shè)計目的,需要分別生成用于燒寫ROM的程序文件和初始常量文件。在初始常量文件生成時,為了能夠直接寫ROM文件,假設(shè)起始地址為0x0000c000,而程序?qū)嶋H執(zhí)行時從起始地址0x0140c000讀取。

在以下實例描述中約定項目工程名為project,對應(yīng)的鏈接命令文件名為project.cmd,目標代碼文件名為project.out,用于燒寫ROM的二進制程序文件名和初始常量文件名分別為prog.bin和data.bin。其中程序文件所占空間不超過48KB,初始常量文件所占空間不超過16KB。

2.2 實現(xiàn)過程

(1)程序文件生成過程

首先需要借助CCS集成開發(fā)環(huán)境,生成目標代碼文件project.out。project.out對應(yīng)的project.cmd文件內(nèi)容如下:

然后通過執(zhí)行CCS自帶的工具hex6x.exe對目標代碼文件進行格式轉(zhuǎn)換,生成程序文件prog.bin。執(zhí)行命令為“hex6x.exe hex.cmd”,其中hex.cmd格式內(nèi)容如下:

(2)初始常量文件生成過程

過程參照上述程序文件的生成,其中project.cmd文件內(nèi)容如下:

初始常量文件data.bin生成過程參照程序文件,其中hex.cmd格式內(nèi)容如下:

(3)燒寫程序

程序文件prog.bin和初始常量文件data.bin生成完畢后,通過編程器或編寫ROM在線編程程序,將兩個文件寫入ROM。其中程序文件prog.bin在ROM偏移地址0x0處,初始常量文件data.bin在ROM偏移地址0x0000c000處。

2.3 兩次生成自舉方法補充

①在本實例中,程序代碼、程序初始化參數(shù)和常量編譯后總空間不能超過64KB,程序代碼、程序初始化參數(shù)和常量所占空間比例可以通過更改鏈接命令文件動態(tài)調(diào)節(jié)。對于超過64KB的情形,也可以借鑒此思路,通過編寫二次引導(dǎo)裝載程序,達到此目的。

②在調(diào)試過程中,需要經(jīng)常通過Load下載方式將project.out文件下載到片內(nèi)RAM中執(zhí)行。Load執(zhí)行時需對鏈接命令文件重新定義,將.cinit和.const段映射到IDRAM。

③采用該方法,可以不用考慮預(yù)置初始參數(shù)和常量的軟件三模冗余,可以在很大程度上簡化程序設(shè)計,縮短項目開發(fā)周期。

④對于必須要在內(nèi)存中保存的關(guān)鍵參數(shù)和變量,可以采用軟件三模冗余的方法實現(xiàn)。

⑤筆者經(jīng)過反復(fù)嘗試發(fā)現(xiàn),盡管通過該自舉方法,程序在執(zhí)行過程中從片外ROM區(qū)讀取初始參數(shù)和常量,但自舉過程中初始化.cinit段的初始化變量由Flash拷貝到數(shù)據(jù)RAM區(qū)的過程不可或缺。

結(jié) 語

本文分析了TMS320C620X/670X芯片的存儲結(jié)構(gòu)和特點,通過分兩次生成ROM燒寫文件,給出了一種切實可行的自舉方法,該方法可以在發(fā)揮DSP最大效能的同時,有效防止單粒子翻轉(zhuǎn)效應(yīng)。有關(guān)的TMS320C620X/670X自舉實例已完成設(shè)計開發(fā)并得到實際應(yīng)用,實踐證明,該方法是行之有效的。

[1]薛雷,張金藝.DSPs原理及應(yīng)用教程[M].北京:清華大學出版社,2009.

[2]左顥睿.6000系列DSP Flash二次加載技術(shù)研究[J].單片機與嵌入式系統(tǒng)應(yīng)用,2011(11).

[3]劉小匯,武微.軟件錯誤檢測與糾正技術(shù)可靠性研究[J].信號處理,2011(8).

[4]張路,賀興華.空間DSP加載系統(tǒng)可靠性設(shè)計[J].計算機工程,2010(3).

猜你喜歡
程序代碼常量代碼
科學照亮世界
——卡文迪什測定萬有引力常量
創(chuàng)世代碼
動漫星空(2018年11期)2018-10-26 02:24:02
創(chuàng)世代碼
動漫星空(2018年2期)2018-10-26 02:11:00
創(chuàng)世代碼
動漫星空(2018年9期)2018-10-26 01:16:48
創(chuàng)世代碼
動漫星空(2018年5期)2018-10-26 01:15:02
計算機網(wǎng)絡(luò)信息安全未來發(fā)展趨勢
基于圖元裝接模式由程序流程圖自動生成源代碼
軟件工程(2016年11期)2017-01-17 16:56:57
低氧低分壓環(huán)境下泡塑吸附火焰原子吸收光譜法測定常量金
西藏科技(2015年1期)2015-09-26 12:09:20
論常量函數(shù)的充分必要條件
嵌入式系統(tǒng)中程序的優(yōu)化策略
新媒體研究(2009年4期)2009-03-14 06:59:48
禄劝| 额敏县| 新巴尔虎右旗| 遂宁市| 阜阳市| 文山县| 延吉市| 若尔盖县| 信丰县| 米易县| 融水| 阿瓦提县| 行唐县| 宜兴市| 长泰县| 霍山县| 盖州市| 汤原县| 嘉义县| 麻江县| 东宁县| 二连浩特市| 新干县| 封丘县| 鲁山县| 泾源县| 来宾市| 盐城市| 长寿区| 大石桥市| 广汉市| 澳门| 黄平县| 兴业县| 长子县| 名山县| 新晃| 香格里拉县| 理塘县| 宁都县| 慈溪市|