日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

DUALBOOT(双启动) 调试

發(fā)布時(shí)間:2025/7/14 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DUALBOOT(双启动) 调试 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這里說(shuō)說(shuō)XO3的雙啟動(dòng)。首先你要知道什么是雙啟動(dòng)?為什么要用雙啟動(dòng)?雙啟動(dòng)需要做什么設(shè)置?需要怎么調(diào)試?and so on.

XO3來(lái)說(shuō),什么是雙啟動(dòng)?雙啟動(dòng)就是內(nèi)部啟動(dòng)(內(nèi)部flash)和外部啟動(dòng)(外部SPI flash),啟動(dòng)順序可以在軟件設(shè)置,如下圖。DUALBOOTGOLDEN設(shè)置為EXTERNAL,指定備份文件為外部SPI Flash,先從內(nèi)部啟動(dòng),設(shè)置為internal,即內(nèi)部是備份,先從外部啟動(dòng)。

?

?

下圖說(shuō)法有誤,其實(shí)是可以設(shè)置的是內(nèi)還是外先啟動(dòng)的,親測(cè)可用。

?

?

?

?

為什么要用雙啟動(dòng)?細(xì)想一下假如沒有雙啟動(dòng),只要內(nèi)部或者外部存儲(chǔ)用戶邏輯,但是用戶邏輯被環(huán)境破壞了呢?怎么辦?是不是沒法用了?特別一些高溫高壓高輻射的特殊環(huán)境。有了雙啟動(dòng),壞了一個(gè)好有一個(gè)作為備胎使用。

????雙啟動(dòng)需要做什么設(shè)置?很簡(jiǎn)單,如下圖。也好好理解,因?yàn)槭峭獠?/span>SPI flsah和內(nèi)部FLASH作為雙啟動(dòng)(而且也僅有這么一種雙啟動(dòng)模式XO3),所有LATTICE是作為主機(jī)去讀取外部SPI FLASH 的數(shù)據(jù),所有自然就要把MASTER_SPI_PORT設(shè)為ENABLE.

?

?

?

?

?

需要怎么調(diào)試?在此,把幫客戶debug的過(guò)程share to us

?

為了測(cè)試客戶在了兩份程序,一份放到內(nèi)部FLASH,程序中會(huì)添加版本號(hào)叫做V001,一份放到外部SPI FLASH,程序中會(huì)添加版本號(hào)叫做V002,通過(guò)串口讀取版本號(hào)就可以知道雙啟動(dòng)是否成功。

用戶做了如下的軟件設(shè)置

?

?

客戶大體測(cè)試了幾種基本情況,如下

NO

CPLD內(nèi)部flash

SPI Flash

加載方式

結(jié)果

說(shuō)明

A

V001

不在位

重新上下電

PROGRAMMER REFRESH

PROGRAMN觸發(fā)

V001

?

B

V001

在位但為BLANK

同上

V001

?

C

V001

V002

同上

V002

?

D

FLASH ERASE ONLY

V002

同上

未成功加載

?

E

FLASH ERASE CFG ONLY

V002

同上

未成功加載

?

F

FLASH ERASE CFG AND UFM ONLY

V002

同上

未成功加載

?

?

看到上面的測(cè)試結(jié)果了吧,AB是成功的,符合雙啟動(dòng)預(yù)期,其他的都掛了。解釋一下:

用戶設(shè)置為EXTERNAL,指定備份文件為外部SPI Flash,即先從內(nèi)部啟動(dòng),A的時(shí)候是內(nèi)部flash放了程序,外部spi flash把他扣下來(lái)(不在位),這樣自然就是讀到版本號(hào)V001了,B類同。C的測(cè)試結(jié)果就有問(wèn)題,既然內(nèi)外都放了程序,而且是內(nèi)部先啟動(dòng)(內(nèi)部啟動(dòng)失敗就會(huì)外部啟動(dòng),這個(gè)lattice芯片會(huì)通過(guò)CRC校驗(yàn)告知,不用為人干預(yù)),怎么讀出來(lái)的版本號(hào)是V002V002可是外部SPI flash的啊,正常應(yīng)該是V001才對(duì)啊。

軟件設(shè)置,硬件電路查了一個(gè)遍,沒有問(wèn)題。看現(xiàn)象感覺很像是CJED被破壞了,所以沒法啟動(dòng),所以就啟動(dòng)到外部的,所以就得到V002,沒辦法只能讀取C是的JED,對(duì)比AJED,發(fā)現(xiàn)完全一樣---說(shuō)明CJED沒有被破壞----呵呵了。被人家RD鄙視一把,說(shuō)你們LATTICE的東西真尼瑪爛---人家大公司,我也不好說(shuō)什么---只能繼續(xù)查找問(wèn)題--查啊查,中午都不得睡覺。

沒地方懷疑了,就問(wèn)他,你程序是通過(guò)夾具下載到SPI flash的還是通過(guò)我diamond放進(jìn)去的的---他說(shuō)夾具試了幾把沒成功,是通過(guò)diamond搞進(jìn)去的。好請(qǐng)操作一般給我看看。我把關(guān)鍵部分截出來(lái)給大家審視一下。

?

看到他這一步操作,我就放心了,思路明就了了。懂的人都知道,這步驟應(yīng)該是沒辦法加載外部SPI ?FLASH的。思路明了了:貌似是外部SPI FLASH沒有加載進(jìn)去,就是空的一顆flsah,他那個(gè)步驟貌似只是重新加載了內(nèi)部的flash。這樣的猜想出來(lái)之后,他測(cè)試的結(jié)果都可以解釋通了。首先解釋他的C,因?yàn)樗牟襟E是重新加載了內(nèi)部的flash,相當(dāng)于之前的V001是被V002覆蓋了,所以讀出來(lái)版本號(hào)是V002。在看D,內(nèi)部FLASH被他擦空,外部SPI FLASH有沒有程序,所以啟動(dòng)失敗正常,EF也是一樣的道理。哈哈,畢竟只是猜想,而且感覺他們RD應(yīng)該也不會(huì)傻到自己的外部FLASH是否有程序都不知道。那么做個(gè)測(cè)試驗(yàn)證一下,我想的到底對(duì)不對(duì)就知道了。

?

對(duì)癥下藥,既然懷疑外部flash是空的,讀到的V002是被覆蓋的結(jié)果,那么做第一個(gè)測(cè)試就可以驗(yàn)證了

1.針對(duì)C,我直接把外部FLASH取下來(lái),假如還是讀到V002,那么肯定說(shuō)明就不是外部SPI FLASH讀出來(lái)的,二是內(nèi)部flash被覆蓋的結(jié)果---測(cè)試結(jié)果,你猜猜,他們真的有這么傻,取下來(lái)之后,我還是讀到V002很顯然說(shuō)明是內(nèi)部flash本覆蓋了。加入不是被覆蓋,外部spi flash被取下來(lái)了,應(yīng)該讀到V001才對(duì)----第一個(gè)驗(yàn)證,還不是很放心。

2.第二個(gè)測(cè)試,測(cè)試條件,內(nèi)部flash擦空,外部flash按照他說(shuō)的放V002的程序。然后讀版本號(hào)----讀出來(lái)了,結(jié)果腳毛都沒有一根,顯然驗(yàn)證了我的猜想,外部flash確實(shí)是空的。

3.經(jīng)過(guò)兩個(gè)測(cè)試可以確定是,他們RD沒有把程序放到外部FLASH導(dǎo)致的,死活還不讓我走。說(shuō)一定要把上述情況驗(yàn)證通過(guò)之后才讓我走。接下來(lái)的事情就簡(jiǎn)單了,僅僅是如何通過(guò)diamond把程序放到外部spi flash而已,截圖給你們,如下圖。要點(diǎn):選擇Bit,起始地址改為0x00010000

?

?

?

??

依據(jù)如下

?

?

做一個(gè)測(cè)試看看剛才的操作是否將程序下載到了外部flsah中

1.測(cè)試條件,內(nèi)部flsah擦空,外部flash放版本號(hào)為V001的程序---讀取結(jié)果,本版好果然是V001,

2.不放心再來(lái)一個(gè)測(cè)試,內(nèi)部flash擦空,外部flash放本版好為V003的程序------讀取結(jié)果,本版好果然是V003,

3,還不放心,那就極端點(diǎn),外部flash擦空,外部直接卸下來(lái)--讀取結(jié)果,毛都沒有,這個(gè)說(shuō)明剛才的操作確實(shí)是把程序加載到外部flash中了

?

然后各種教程測(cè)試一一驗(yàn)證,沒有不通過(guò)的。

找問(wèn)題花了好多時(shí)間,調(diào)試就是這樣,問(wèn)題的根源并不高深,高深的是找問(wèn)題的過(guò)程,如何去發(fā)現(xiàn)問(wèn)題,如何去猜想,如何去驗(yàn)證,等等。

?

附上

sysConfig配置說(shuō)明(diamond3.8):

SDM_PORT=PROGRAMN,設(shè)置PROGRAMN管腳為專用SDM功能,以便控制器可以REFRESH CPLD。

SLAVE_SPI_PORT=DISABLE,禁用SSPI加載功能

I2C_PORT=DISABLE,禁用I2C加載功能

MASTER_SPI_PORT=ENABLE,允許從外部SPI Flash加載

COMPRESS_CONFIG=ON:加載BITSTREAM采用壓縮方式

CONFIGURATION=CFG:加載程序位于內(nèi)部Flash(不用UFM)

MY_ASSP=OFF:用于LatticeXP2

ONE_TIME_PROGRAM=OFF:允許內(nèi)部Flash重復(fù)擦除和燒寫

CONFIG_SECURE=OFF:用于LatticeECP2

MCCLK_FREQ=2.08

JTAG_PORT=ENABLE,JTAG專用

ENABLE_TRANSFER=DISABLE,禁用TRANSFER功能

SHAREDEBRINIT=DISABLE,共享EBR初始化文件

MUX_CONFIGURATION_PORTS=DISABLE,用于MachXO2

DUALBOOTGOLDEN=EXTERNAL,指定備份文件為外部SPI Flash

BACKGROUND_RECONFIG=OFF,禁止加載完成后、進(jìn)行重新加載

?如有疑問(wèn)請(qǐng)聯(lián)系QQ:825972925

轉(zhuǎn)載于:https://www.cnblogs.com/xiaozhuge/p/6442069.html

總結(jié)

以上是生活随笔為你收集整理的DUALBOOT(双启动) 调试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。