chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于DSP的嵌入式系統(tǒng)實(shí)現(xiàn)擦寫(xiě)片外FLASH器件

電子設(shè)計(jì) ? 來(lái)源:半導(dǎo)體技術(shù) ? 作者:張偉,張?zhí)劊?/span> ? 2020-09-18 16:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:張偉,張?zhí)?,陳志剛,呂?/p>

1 引言

DSP系統(tǒng)的設(shè)計(jì)中,經(jīng)常要使用片外存儲(chǔ)器擴(kuò)充系統(tǒng)存儲(chǔ)空間。特別是當(dāng)DSP的片內(nèi)數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器容量比較小時(shí), 必須把一部分?jǐn)?shù)據(jù),如常量、原始數(shù)據(jù)庫(kù)等存儲(chǔ)到片外的存儲(chǔ)器中,從而節(jié)省DSP芯片內(nèi)部的存儲(chǔ)器資源。在實(shí)際應(yīng)用中,片外存儲(chǔ)器通常選擇RAM或FLASH MEMORY。RAM數(shù)據(jù)掉電即丟失,不適合長(zhǎng)期保存數(shù)據(jù)。對(duì)于一些無(wú)需頻繁讀寫(xiě)但需要長(zhǎng)期保存的數(shù)據(jù),如字模數(shù)據(jù)、端口地址等時(shí),通常選擇片外FLASH作偽擴(kuò)展的數(shù)據(jù)存儲(chǔ)器。使用片外 FLASH必須要解決對(duì)其擦寫(xiě)的問(wèn)題。

在實(shí)際應(yīng)用中,對(duì)片外FLASH的擦寫(xiě)有兩種方式:一是使用通用編程器對(duì)FLASH芯片進(jìn)行擦寫(xiě);二是直接由DSP對(duì)FLASH進(jìn)行擦寫(xiě)。對(duì)于需要修改或已安裝在電路板上的FLASH芯片無(wú)法使用第一種方式,只能采用第二種方式,且便于調(diào)試。本文介紹一種利用存儲(chǔ)器映射技術(shù)實(shí)現(xiàn)對(duì)DSP片外FLASH擦寫(xiě)的方法。

DSP56F805芯片是Motorola公司在DSP56800 的基礎(chǔ)上開(kāi)發(fā)的系列DSP芯片之一。該芯片采用先進(jìn)的修正哈佛結(jié)構(gòu),三個(gè)內(nèi)部地址總線和四個(gè)內(nèi)部數(shù)據(jù)總線支持?jǐn)?shù)據(jù)傳輸;采用MCU形式的指令集,尋址方式靈活;具有較強(qiáng)的片外存儲(chǔ)空間擴(kuò)展能力;功耗小,高度并行。但是該芯片的片內(nèi)數(shù)據(jù)存儲(chǔ)器空間最大為64k,程序存儲(chǔ)空間尋址范圍是64k,內(nèi)部模式(Mode0A和Mode0B)下只有31.5k。對(duì)于一些需要復(fù)雜中文圖形用戶界面的 DSP系統(tǒng)來(lái)說(shuō)芯片存儲(chǔ)資源顯得不夠,必須對(duì)芯片存儲(chǔ)空間進(jìn)行擴(kuò)展。考慮到具體要求,本文使用片外FLASH來(lái)擴(kuò)展系統(tǒng)數(shù)據(jù)存儲(chǔ)空間,將DSP系統(tǒng)的中文圖形用戶界面中用到的所有字模數(shù)據(jù)和頁(yè)面內(nèi)容數(shù)據(jù)存放到片外FLASH中,大大節(jié)省了片內(nèi)的數(shù)據(jù)存儲(chǔ)器空間。

CodeWarrior IDE是由Metrowerks公司專為Motorola的DSP56800系列設(shè)計(jì)的開(kāi)發(fā)平臺(tái)。該平臺(tái)具有簡(jiǎn)單明了的圖形用戶界面和豐富的軟件開(kāi)發(fā)工具,適合于開(kāi)發(fā)基于DSP56800系列的應(yīng)用程序、插件程序等各種程序代碼。在CodeWarrior環(huán)境中,用戶可以通過(guò)修改.cmd文件來(lái)配置存儲(chǔ)器分配方式,還可以通過(guò)修改startup文件夾中的初始化程序來(lái)控制系統(tǒng)的初始化操作。用戶編譯并鏈接后,將生成.elf文件,在文件中可以看到存儲(chǔ)器的詳細(xì)分配情況。當(dāng)用戶將程序下載到DSP芯片后,可以使用CodeWarrior的調(diào)試器對(duì)程序進(jìn)行全面的調(diào)試,如設(shè)置斷點(diǎn)、單步執(zhí)行等;也可以使用 Watch Memory指令來(lái)檢查存儲(chǔ)器中的各地址段的值,還可以使用Save/Load Memory指令來(lái)保存或是載入某段存儲(chǔ)器的值。

2 方法介紹

首先利用GPIOD0口生成合適的片外FLASH和片內(nèi)XRAM片選信號(hào),實(shí)現(xiàn)片內(nèi)XRAM和片外FLASH的訪問(wèn)切換。例如當(dāng)GPIOD0 =0時(shí),0x8000~0xFFFF映射到片內(nèi)XRAM,此時(shí)對(duì)于整個(gè)0x0000~0xFFFF地址范圍的讀寫(xiě)操作就是對(duì)于片內(nèi) XRAM的操作;當(dāng)GPIOD0=1時(shí),0x8000~0xFFFF地址范圍映射到數(shù)據(jù)FLASH,則對(duì)0x8000~0xFFFF 地址范圍的讀寫(xiě)操作就是對(duì)于片外FLASH的操作;對(duì)0x0000~0x7FFF地址范圍的讀寫(xiě)仍是針對(duì)片內(nèi) XRAM的操作,從而將數(shù)據(jù)存儲(chǔ)空間擴(kuò)展了32k。

再將映射方式設(shè)置為片內(nèi),將需要寫(xiě)到FLASH中的數(shù)據(jù)文件載入片內(nèi)XRAM。最后根據(jù)需要設(shè)置GPIO端口值,切換地址映射的存儲(chǔ)器。這樣通過(guò)地址映射的方法,便可實(shí)現(xiàn)將XRAM中數(shù)據(jù)寫(xiě)入片外FLASH的操作,而對(duì)于DSP芯片來(lái)說(shuō)只是進(jìn)行了其XRAM尋址空間內(nèi)部的數(shù)據(jù)搬移操作。

假設(shè)要將一組二維數(shù)組character[180][32]形式的字模數(shù)據(jù)保存入片外數(shù)據(jù)FLASH的0x8000~0xA000地址段中,先做以下準(zhǔn)備工作:

①用一個(gè)GPIO端口,擴(kuò)展系統(tǒng)的可尋址數(shù)據(jù)存儲(chǔ)器空間;②編寫(xiě)FLASH擦寫(xiě)程序,程序流程如圖1所示。

#define N 100 /* 由于FLASH與RAM的讀寫(xiě)速度不同,所以需要在每項(xiàng)操作后加入若干個(gè)延遲以保證正確性,延遲的具體長(zhǎng)短可以根據(jù)具體情況作調(diào)整 */

基于DSP的嵌入式系統(tǒng)實(shí)現(xiàn)擦寫(xiě)片外FLASH器件

void main()

{

unsigned int i,code;

unsigned int *code_addr;

unsigned int *flash_addr;

*GPIO_D_DR=0x0002; /*映射方式設(shè)置為映射到片外數(shù)據(jù)FLASH*/

delay(N);

GPIOD_setup(); /*GPIOD設(shè)置*/

delay(N);

erase_flash(); /*如FLASH上原有數(shù)據(jù)無(wú)需保留,則全部擦除,如部分據(jù)需保留,也可部分擦除*/

*GPIO_D_DR=0x0000; /*映射方式設(shè)置為映射到片內(nèi)XRAM*/ delay(N);

flash_addr=(unsigned int *) FLASH_ADDR;

code_addr=(unsigned int *)CODE_ADDR; /*設(shè)置XRAM的存儲(chǔ)起始地址和數(shù)據(jù)FLASH擦寫(xiě)起始地址*/

/*循環(huán)擦寫(xiě)*/

for(i=0;i{

*GPIO_D_DR=0x0000;

delay(N);

code=*(code_addr++); /*保存XRAM中數(shù)據(jù)到變量code*/

delay(N);

*GPIO_D_DR=0x0002;

delay(N);

pre_write_flash(); /* 寫(xiě)FLASH前的預(yù)處理,向FLASH內(nèi)寫(xiě)入相應(yīng)命令字,根據(jù)所選用 FLASH的不同預(yù)處理操作也有所不同*/

delay(N);

*(flash_addr++)=code; /*寫(xiě)數(shù)據(jù)到FLASH中*/

delay(N);

}

}

擦寫(xiě)步驟如下:

① 將character[180][32]設(shè)置為全局變量。

② 將程序編譯下載到DSP芯片中,打開(kāi)工程目錄中output文件夾中的.elf文件,找到character 數(shù)組在XRAM中存放的起始地址和長(zhǎng)度。用戶可以使用Watch Memory命令察看該段地址的數(shù)據(jù)值。

③ 使用Save Memory命令將XRAM中對(duì)應(yīng)于character數(shù)組的地址段的數(shù)據(jù)以二進(jìn)制形式保存在計(jì)算機(jī)上。通過(guò)UltraEdit將其打開(kāi),檢看數(shù)據(jù)保存是否正確。

④ 打開(kāi)FLASH擦寫(xiě)程序,修改數(shù)據(jù)在片內(nèi)XRAM中存儲(chǔ)的起始地址和FLASH的擦寫(xiě)起始地址與數(shù)據(jù)長(zhǎng)度。編譯下載后,單步執(zhí)行,執(zhí)行到擦除完FLASH,并將地址映射方式置為映射到片內(nèi)XRAM處,使用Load Memory指令將char數(shù)據(jù)文件載入到片內(nèi)XRAM的相應(yīng)存儲(chǔ)地址段中,再接著全速運(yùn)行程序,幾十秒之后程序執(zhí)行完畢,數(shù)據(jù)便寫(xiě)到片外FLASH的相應(yīng)地址中。

⑤ 再次打開(kāi)FLASH擦寫(xiě)程序,單步執(zhí)行到映射方式置為片外FLASH處停止,使用Save Memory命令保存FLASH中剛寫(xiě)入的地址段的數(shù)據(jù)值。接著使用UltraEdit的比較文件命令比較前兩次保存的數(shù)據(jù),如完全相同就表明character字模數(shù)組已經(jīng)正確的寫(xiě)到片外FLASH中。

將數(shù)據(jù)擦寫(xiě)入片外數(shù)據(jù)FLASH后,就可以在用戶程序中對(duì)該數(shù)據(jù)加以調(diào)用。在調(diào)用的時(shí)候要先將映射方式設(shè)置為映射到片外FLASH,然后再取數(shù)據(jù)。如下所示,取出FLASH中0x6000地址上存儲(chǔ)的數(shù)據(jù):

#define FLASH_ADD (unsigned int *)0x6000

*GPIO_D_DR=0x0002; /*映射方式設(shè)置為映射到片外FLASH*/

data = *(FLASH_ADD);

3 結(jié)論

本文介紹了一種通過(guò)地址映射方式,在基于 DSP的嵌入式系統(tǒng)中,通過(guò)DSP擦寫(xiě)片外FLASH的方法。該方法可適用于多種場(chǎng)合,針對(duì)多個(gè) FLASH芯片可使用多個(gè)GPIO端口進(jìn)行地址的擴(kuò)展,并可通過(guò)DSP實(shí)現(xiàn)對(duì)其擦寫(xiě)操作;若將部分程序放置到片外FLASH中并作相應(yīng)設(shè)置,即可實(shí)現(xiàn)系統(tǒng)的自舉運(yùn)行等。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    559

    文章

    8184

    瀏覽量

    362229
  • 嵌入式
    +關(guān)注

    關(guān)注

    5175

    文章

    19986

    瀏覽量

    324610
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1701

    瀏覽量

    154010
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    采用nios和μClinux實(shí)現(xiàn)嵌入式系統(tǒng)設(shè)計(jì)

    外設(shè)接口。 基于sopc的嵌入式系統(tǒng)主要由1核心芯片sopc和器件,以及一些相關(guān)的接口設(shè)備
    發(fā)表于 04-18 07:00

    如何設(shè)計(jì)嵌入式FIFO數(shù)據(jù)傳輸系統(tǒng)?

    C6727B,由于其內(nèi)集成dMAX模塊,使得實(shí)現(xiàn)嵌入式FIFO成為可能。其實(shí)現(xiàn)嵌入式FIFO的本質(zhì)就是將
    發(fā)表于 08-08 07:03

    嵌入式手持移動(dòng)終端中文件系統(tǒng)實(shí)現(xiàn)

    而廣泛應(yīng)用于便攜電子產(chǎn)品中。在Flash存儲(chǔ)器中使用文件系統(tǒng),可將存儲(chǔ)空間當(dāng)作直觀的名稱空間,不用在每次應(yīng)用開(kāi)發(fā)中都從頭使用存儲(chǔ)器,還可方便地利用標(biāo)準(zhǔn)接口同主系統(tǒng)通信。本文中,我們將以嵌入式
    發(fā)表于 01-05 07:29

    如何用存儲(chǔ)器映射的方法實(shí)現(xiàn)FLASH擦寫(xiě)

    請(qǐng)問(wèn)如何用存儲(chǔ)器映射的方法實(shí)現(xiàn)FLASH擦寫(xiě)?
    發(fā)表于 04-20 06:13

    有什么方法可以實(shí)現(xiàn)FLASH擦寫(xiě)嗎?

    請(qǐng)問(wèn)大神有什么方法可以實(shí)現(xiàn)FLASH擦寫(xiě)嗎?
    發(fā)表于 04-26 06:26

    嵌入式系統(tǒng)中的Flash文件系統(tǒng)

    介紹嵌入式系統(tǒng)中的 Flash文件系統(tǒng)。對(duì) FFS需求,Flash存儲(chǔ)器特性,F(xiàn)FS要求和實(shí)現(xiàn)
    發(fā)表于 04-07 09:40 ?16次下載

    微處理器與DSP器件相結(jié)合的嵌入式系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

    微處理器和DSP器件共同組成的嵌入式系統(tǒng),不僅具有嵌入式系統(tǒng)的全部技術(shù)優(yōu)勢(shì),還提供了快速數(shù)據(jù)處理
    發(fā)表于 05-09 10:48 ?20次下載

    DSP嵌入式系統(tǒng)人機(jī)接口設(shè)計(jì)

    DSP嵌入式系統(tǒng)人機(jī)接口設(shè)計(jì)  1 引言   人機(jī)接口是嵌入式控制系統(tǒng)的重要組成部分,用于人機(jī)之間實(shí)時(shí)交換控制
    發(fā)表于 12-24 16:34 ?1141次閱讀
    <b class='flag-5'>DSP</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>人機(jī)接口設(shè)計(jì)

    基于 DSP嵌入式系統(tǒng)通過(guò)地址映射方式實(shí)現(xiàn)FLASH

    1 引言 在DSP系統(tǒng)的設(shè)計(jì)中,經(jīng)常要使用外存儲(chǔ)器擴(kuò)充系統(tǒng)存儲(chǔ)空間。特別是當(dāng)DSP內(nèi)數(shù)據(jù)存
    發(fā)表于 07-02 18:21 ?1458次閱讀
    基于 <b class='flag-5'>DSP</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>通過(guò)地址映射方式<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>片</b><b class='flag-5'>外</b><b class='flag-5'>FLASH</b>擦

    CCS的DSPFlash直接燒寫(xiě)設(shè)計(jì)

    CCS的DSPFlash直接燒寫(xiě)設(shè)計(jì)
    發(fā)表于 10-20 08:29 ?3次下載
    CCS的<b class='flag-5'>DSP</b><b class='flag-5'>片</b><b class='flag-5'>外</b><b class='flag-5'>Flash</b>直接燒寫(xiě)設(shè)計(jì)

    基于DSP嵌入式圖像識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)總結(jié)

    基于DSP嵌入式圖像識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)總結(jié)(基于linux的嵌入式開(kāi)發(fā)環(huán)境的搭建過(guò)程)-該文檔為基于D
    發(fā)表于 07-30 11:37 ?25次下載
    基于<b class='flag-5'>DSP</b>的<b class='flag-5'>嵌入式</b>圖像識(shí)別<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>總結(jié)

    DSP嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用(精)

    DSP嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用(精)(arm嵌入式開(kāi)發(fā)視頻)-該文檔為DSP嵌入式
    發(fā)表于 08-04 09:49 ?11次下載
    <b class='flag-5'>DSP</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)與應(yīng)用(精)

    基于Flash嵌入式交互系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于Flash嵌入式交互系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-08 10:48 ?0次下載
    基于<b class='flag-5'>Flash</b>的<b class='flag-5'>嵌入式</b>交互<b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    什么是可重復(fù)擦寫(xiě)Flash型)語(yǔ)音芯片?

    什么是可重復(fù)擦寫(xiě)Flash型)語(yǔ)音芯片?可重復(fù)擦寫(xiě)Flash型)語(yǔ)音芯片是一種嵌入式語(yǔ)音存儲(chǔ)解決方案,采用了
    的頭像 發(fā)表于 12-14 10:08 ?1171次閱讀
    什么是可重復(fù)<b class='flag-5'>擦寫(xiě)</b>(<b class='flag-5'>Flash</b>型)語(yǔ)音芯片?

    AS32X601芯片Flash擦寫(xiě)調(diào)試技術(shù)解析

    Flash 擦寫(xiě)操作流程,探討擦寫(xiě)過(guò)程中可能遭遇的挑戰(zhàn)及應(yīng)對(duì)策略,旨在為芯片應(yīng)用開(kāi)發(fā)者、硬件工程師等專業(yè)人士提供系統(tǒng)且詳實(shí)的參考資料,助力其精準(zhǔn)操控 AS32X601 芯片
    的頭像 發(fā)表于 07-22 13:47 ?366次閱讀
    AS32X601芯片<b class='flag-5'>Flash</b><b class='flag-5'>擦寫(xiě)</b>調(diào)試技術(shù)解析