音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

6713的CMD怎樣設置才可以將程序放到SDRAM中運行

作者:polarstars 欄目:DSP技術
6713的CMD怎樣設置才可以將程序放到SDRAM中運行
我的6713的CMD怎樣設置才可以將程序放到SDRAM中運行(先不考慮執(zhí)行速度的問題),試了半天都不行,僅把堆棧設置在SDRAM中程序都不運行,只有全部使用內(nèi)部RAM時程序才正常,SDRAM是好的,寫進去的數(shù)據(jù)和讀出來的一致!哪位能在關鍵的地方給點一下?


這個CMD無法運行,到底哪里有錯?

MEMORY
{
        IPRAM : origin = 0x0, len = 0x10000
        SDRAM : origin = 0x80000000, len = 0x10000
}

SECTIONS
{
        .vecs > IPRAM
        .text > IPRAM
        .bss > SDRAM
        .cinit > SDRAM
        .const > SDRAM
        .far > SDRAM
        .stack > SDRAM
        .cio > SDRAM
        .sysmem > SDRAM
}


2樓: >>參與討論
simple_head
具體怎樣不行?
講具體一點。是編譯不通過?鏈接不通過?程序下載失?還是運行失敗?

3樓: >>參與討論
sly1982
.text > SDRAM
.text > IPRAM
改成
.text > SDRAM
可以么?


4樓: >>參與討論
sly1982
二次搬移程序
剛才看了自己的程序

我的6713是在自己的內(nèi)部RAM里運行的

但是要在外面的RAM里運行應該需要修改二次搬移程序吧

FLASH里的源程序搬移到外部RAM之后再運行

5樓: >>參與討論
tmhy2000
二次搬移程序
同意樓上的說華,在2812中也是這樣的,需要自己將程序搬移到外部RAM之后再運行

6樓: >>參與討論
iversonma
lz已經(jīng)解決問題了吧~
也不回來看看,呵呵

7樓: >>參與討論
polarstars
我是用仿真器把程序裝入SDRAM的,需要二次搬移?
.text > IPRAM
改成
.text > SDRAM
程序就當?shù)袅耍?br>只有全部在內(nèi)部才正常!

8樓: >>參與討論
simple_head
SDRAM正確初始化沒有?
在你的程序運行c_int00之前,有沒有SDRAM初始化的代碼先運行?如果你是在C程序中(也就是c_int00之后)才初始化SDRAM,是沒用的。

以我的方法,應該在BootLoader中加入SDRAM的初始化代碼,BootLoader是在c_int00之前運行的,那么在PC指針跳轉(zhuǎn)到外部SDRAM空間后,C的code部分才可以正確讀出,這樣程序才可以正確運行。

9樓: >>參與討論
polarstars
T0:simple_head GEL已經(jīng)把SDRAM初始化了
我現(xiàn)在還沒用bootload,用仿真器直接把.out下載到板子上就運行不了!

10樓: >>參與討論
simple_head
to polarstars:
你將.text設為SDRAM,其他全部為內(nèi)部RAM。build和download之后,將PC指針設為reset中斷出,這時PC指向的是內(nèi)部ram,單步運行應該不會有錯,然后觀察是否在跳轉(zhuǎn)到_c_int00時出錯,并且觀察SDRAM中的數(shù)據(jù),是否為正確的指令代碼。

11樓: >>參與討論
polarstars
能運行到c_int00:但到不了main
MEMORY
{
    VECS : origin = 0x0, len = 0x200
    IPRAM: origin = 0x200, len = 0x20000
    IDRAM : origin = 0x80000000, len = 0x20000
}

SECTIONS
{
    .vecs > VECS
    .text > IPRAM
    .bss > IPRAM
    .cinit > IPRAM
    .const > IPRAM
    .far > IPRAM
    .stack > IPRAM
    .cio > IPRAM
    .sysmem > IPRAM
}


Count :   1
Count :   2
Count :   3
Count :   4
Count :   5
Count :   6
Count :   7
Count :   8
Count :   9
Count :  10
Count :  11
Count :  12
Count :  13
Count :  14
Count :  15
Count :  16
Count :  17
Count :  18
Count :  19
Count :  20
TEST PASSED
運行正常!

MEMORY
{
    VECS : origin = 0x0, len = 0x200
    IPRAM: origin = 0x200, len = 0x20000
    IDRAM : origin = 0x80000000, len = 0x20000
}

SECTIONS
{
    .vecs > VECS
    .text > IPRAM
    .bss > IDRAM
    .cinit > IDRAM
    .const > IDRAM
    .far > IDRAM
    .stack > IDRAM
    .cio > IDRAM
    .sysmem > IDRAM
}
胦u铘 :   1
胦u铘 :   2
胦u铘 :   3
胦u铘 :   4
胦u铘 :   5
胦u铘 :   6
胦u铘 :   7
胦u铘 :   8
胦u铘 :   9
胦u铘 :  10
胦u铘 :  11
胦u铘 :  12
胦u铘 :  13
胦u铘 :  14
胦u铘 :  15
胦u铘 :  16
胦u铘 :  17
胦u铘 :  18
胦u铘 :  19
胦u铘 :  20
T龐T 辛SS拍

顯示亂碼,但程序還能運行!

MEMORY
{
    VECS : origin = 0x0, len = 0x200
    IPRAM: origin = 0x200, len = 0x20000
    IDRAM : origin = 0x80000000, len = 0x20000
}

SECTIONS
{
    .vecs > VECS
    .text > IDRAM
    .bss > IDRAM
    .cinit > IDRAM
    .const > IDRAM
    .far > IDRAM
    .stack > IDRAM
    .cio > IDRAM
    .sysmem > IDRAM
}
程序放入SDRAM運行就出現(xiàn):
Trouble Halting Target CPU:
Error 0x80000020/-1070
Fatal Error during: Execution,
An UNKNOWN error prevented the EMULATOR.html">EMULATOR from accessing the processor
in a timely fashion.
It is recommended to RESET EMULATOR.  This will disconnect each
target from the EMULATOR.html">EMULATOR.  The targets should then be POWER cycled
or hard reset followed by an emureset and reconnect to each target.


Sequence ID: 15
Error Code: -1070
Error Class: 0x80000020

12樓: >>參與討論
polarstars
奇怪了,匯編怎么會這樣
我瘋了:程序放在SDRAM中時匯編程序有問題:
請看地址80008524 的那行MVKH.S2       0x80000000,B5
我通過對比程序放在內(nèi)部RAM中的匯編  這里的B5似乎應該為B4,應為他要調(diào)用
auto_init(地址:80006700),不知為什么會這個樣子,下面的匯編是.text放在SDRAM中時看到的。

80008500          c_int00:
80008500 07E8FE2A            MVK.S2        0xffffd1fc,SP
80008504 07C0006A            MVKH.S2       0x80000000,SP
80008508 07FF07A2            .word         0x07ff07a2
8000850C 0701002A            MVK.S2        0x0200,DP
80008510 0700006A            MVKH.S2       0x0000,DP
80008514 020000FA            ZERO.L2       B4
80008518 091003A2            MVC.S2        B4,FADCR
8000851C 0A1003A2            MVC.S2        B4,FMCR
80008520 0233802A            MVK.S2        0x6700,B4
80008524 02C0006A            MVKH.S2       0x80000000,B5
80008528 00100362            B.S2          B4
8000852C 022E6828            MVK.S1        0x5cd0,A4
80008530 01C2A02A            MVK.S2        0xffff8540,B3
80008534 02000068            MVKH.S1       0x0000,A4
80008538 01C0006A            MVKH.S2       0x80000000,B3
8000853C 00000000            NOP           
80008540 01C36028            MVK.S1        0xffff86c0,A3
80008544 01C00068            MVKH.S1       0x80000000,A3
80008548 000C1362            B.S2X         A3
8000854C 01C2AC2A            MVK.S2        0xffff8558,B3
80008550 01C0006A            MVKH.S2       0x80000000,B3
80008554 00004000            NOP           3
80008558 0234C02A            MVK.S2        0x6980,B4
8000855C 02C0006A            MVKH.S2       0x80000000,B5
80008560 00100362            B.S2          B4
80008564 01C2BA2A            MVK.S2        0xffff8574,B3
80008568 020000A8            MVK.S1        0x0001,A4
8000856C 01C0006A            MVKH.S2       0x80000000,B3
80008570 00002000            NOP           2
80008574 00000290            B.S1          0x80008574
80008578 00008000            NOP           5
8000857C 00000000            NOP           


程序放到內(nèi)部

00008700          c_int00:
00008700 07EDBE2A            MVK.S2        0xffffdb7c,SP
00008704 0780006A            MVKH.S2       0x0000,SP
00008708 07BF07A2            AND.S2        -8,SP,SP
0000870C 0701002A            MVK.S2        0x0200,DP
00008710 0700006A            MVKH.S2       0x0000,DP
00008714 020000FA            ZERO.L2       B4
00008718 091003A2            MVC.S2        B4,FADCR
0000871C 0A1003A2            MVC.S2        B4,FMCR
00008720 0234802A            MVK.S2        0x6900,B4
00008724 0200006A            MVKH.S2       0x0000,B4
00008728 00100362            B.S2          B4
0000872C 02732828            MVK.S1        0xffffe650,A4
00008730 01C3A02A            MVK.S2        0xffff8740,B3
00008734 02000068            MVKH.S1       0x0000,A4
00008738 0180006A            MVKH.S2       0x0000,B3
0000873C 00000000            NOP     &nbs
13樓: >>參與討論
simple_head
你的SDRAM讀寫有錯誤
我仔細看了你的disassembly, 發(fā)現(xiàn)除了地址80008524 的那行MVKH.S2       0x80000000,B5不對之外,還有80008508 07FF07A2  .word  0x07ff07a2也不對,對應的是00008708 07BF07A2   AND.S2        -8,SP,SP

比較:
80008508 07FF07A2
00008708 07BF07A2

其實指令機器碼只差了一個Bit。

而你發(fā)現(xiàn)的80008524 的那行MVKH.S2       0x80000000,B5同正確的指令機器碼也只差1個Bit(出去auto_init地址不同產(chǎn)生的另外一個Bit)。

由此推斷:還是你的SDRAM讀寫有錯誤!
降低SDRAM頻率再試!

14樓: >>參與討論
polarstars
感謝 simple_head 的大力幫助.
現(xiàn)在初步判斷為D22,D23兩根數(shù)據(jù)線短路了,當時測SDRAM時沒測到高位,所以才引出那么多莫名其妙的問題,真是硬件問題害死人呀,開發(fā)板已經(jīng)退回廠家更換了,同時謝謝那些關注本貼的朋友。

15樓: >>參與討論
simple_head
你用的是6713dsk板子?
你用的是6713dsk板子?

16樓: >>參與討論
polarstars
我用的是北京一家公司出的6713開發(fā)板
 
17樓: >>參與討論
zhangsifu
用loader程序
要用loader程序?qū)⒃?a target="_blank" href="http://m.58mhw.cn/stock-ic/FLASH.html">FLASH中的程序搬運到SDRAM,然后再運行。
我們就是這么做的。

18樓: >>參與討論
simple_head
代碼放到外面SDRAM上,操心的事就多了
代碼放到外面SDRAM上,操心的事就多了。boot,cache,data讀寫速度等。樓主多多共享一些你的開發(fā)經(jīng)驗阿。

此處提一個問題:
當用    .cinit        >    MemSdram
    .const        >    MemSdram
    .SWITCH        >    MemSdram
    .text        >    MemSdram
    .pinit        >    MemSdram
    .cio        >    MemSdram
    .bss        >    MemSdram
    .tables        >    MemSdram
    .data        >    MemSdram
    .far        >    MemSdram
    .stack        >    MemSdram    
    .sysmem        >    MemSdram
定義C的程序全部在外部時,同時又需要一部分C的程序在DSP內(nèi)部以保證最高的運行速度,該怎么辦?

我只會用一種方法,#pragma CODE_SECTION(XXXFunction, ".IRam")

但是這需要對每一個需要放到內(nèi)部的函數(shù)一一進行聲明。有沒有更簡單一點的方法?

19樓: >>參與討論
sly1982
一個設想
我有一個想法,是跟我的一個同事聊天的時候說起的

就是程序初始化之類的放在FLASH或者外部的SDRAM

然后需要運行的話直接讀進來放在DSP內(nèi)部運行,這樣可以保證速度

但是一段時間就是一直運行程序的某一個部分,要想運行另外段的程序就需要再把需要運行的段程序搬移到內(nèi)部RAM中

只是想象,但是也覺得應該是可以辦到的,具體的怎么設置沒有實驗過

20樓: >>參與討論
lanmanck
這個玩意兒
好像要手動利用memcopy這個函數(shù)進行程序搬移,2812的是這樣,6713應該也不能簡單通過cmd來設置吧?

21樓: >>參與討論
DIY
我現(xiàn)在用6713  固化程序 并在內(nèi)部RAM里運行沒問題了 我現(xiàn)在想讓程序在外部SDRAM里運行,在用hex6x 生成HEX文件時  出現(xiàn)了警告  section '.text' at 080000000h falls in unconfigured memory  0x080000000是我SDRAM的起始地址 這個錯誤應該怎么解決?
參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
[求助]DSP的C編程中能不能對一個文件進行操作?
在電路板上,芯片中未用的輸入/輸出引腳如何處理?
xds510是不是沒有辦法分析函數(shù)的效率?
請教一個F2812的問題
請問各位!本人想學習DSP技術——————
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號