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

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

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

修復(fù)基于VMEBus的處理器接口機(jī)箱

電子工程師 ? 來源:網(wǎng)絡(luò)整理 ? 2018-04-07 10:52 ? 次閱讀

一位知名的喜劇演員曾經(jīng)創(chuàng)造了這句流行用語──“我很不喜歡這種感覺!”(I hate it when that happens!!!)。我其實(shí)完全能夠了解那種感受。每一次當(dāng)我不得不去破解、調(diào)試或改善“別人的設(shè)計(jì)”(Someone Else's Design;SED)時(shí),我相信自己都說了這句話。

有一天,我的老板給了我一個(gè)任務(wù),要我去弄清楚一個(gè)基于VMEBus的處理器接口機(jī)箱究竟是哪里出錯(cuò)了。由于這是在1990年代那個(gè)桌上型電腦獨(dú)大的“黑暗時(shí)代”(Dark Ages),這個(gè)接口機(jī)箱中有一款摩托羅拉68010微處理器,并采用匯編語言(而非C語言、JAVA或HTML)進(jìn)行編碼。我們所做的事就是將兩個(gè)6RU機(jī)架高、以線繞連接且基于7400邏輯電路的客制化接口機(jī)箱置入一個(gè)5RU高的VMEBus盒中,并使其維持與兩個(gè)HP1000 Fast Fortran處理器的連接。

這個(gè)接口機(jī)箱表面平滑:前方的觸控面板用于執(zhí)行處理器的狀態(tài)顯示,并顯示從接口所記錄到的數(shù)據(jù)信息等。但這個(gè)接口機(jī)箱原本面臨的問題十分吊詭──想想,你如何能將10磅的東西放在只能裝5磅的袋子里?從封裝、布線、后面板的連接器、電源以及冷卻器看來都很正常。但問題是,為了盡量地節(jié)省機(jī)架空間等,設(shè)計(jì)者采用了超越其能力所及的匯編語言進(jìn)行編碼。

原來的接口僅建置了‘L’模式。新的VMEBus設(shè)計(jì)則同時(shí)建置‘L’和‘S’模式,使復(fù)雜度增加了4倍。在‘L’模式下,每125微秒從144bit的數(shù)據(jù)框架下提取DF和NV位元,使L模式成功地完成建置。

然而,'S'模式是一種新的編碼方式。這種模式則是每四個(gè)193位元、125ms提供一個(gè)DF和NV位元。測試此模式后發(fā)現(xiàn)無法順利運(yùn)作。我懷疑問題就出在以匯編語言編碼的邏輯電路設(shè)置。我后來打了幾次電話詢問才知道當(dāng)初的設(shè)計(jì)者已經(jīng)離職了,現(xiàn)在已經(jīng)沒人可回答有關(guān)他所設(shè)計(jì)的任何問題。

我只好開始研究匯編語言代碼,發(fā)現(xiàn)設(shè)計(jì)者對于所做的一切都進(jìn)行了完整的建檔操作。但有關(guān)匯編語言所要解決的最大難題通常都跟“子程序”(subroutine)語言有關(guān)。如果你看到布滿'JSR'和'RTS'的代碼,你可就很難追蹤到邏輯建置了。很快地你就會(huì)發(fā)現(xiàn),子程序讀取操作也需要利用一些CPU周期來執(zhí)行。而這就是在編寫匯編語言時(shí)用于進(jìn)行控制的關(guān)鍵參數(shù)。而處理中斷服務(wù)程序(ISR)就更棘手了,因?yàn)橹灰獠恐袛嘁话l(fā)生,ISR即隨時(shí)啟動(dòng)執(zhí)行。

最后我終于發(fā)現(xiàn),大部分用于尋找DF和NV的邏輯是透過ISR內(nèi)部所執(zhí)行的,每512微秒執(zhí)行兩次ISR操作?,F(xiàn)在我?guī)缀蹙鸵鉀Q這個(gè)問題了。我找到了Motorola Assembler手冊,然后開始增加執(zhí)行ISR所需的CPU指令周期,接著就發(fā)現(xiàn)其中一個(gè)ISR無法在下一次中斷發(fā)生前完成指令操作,因而不斷地耗用CPU堆棧中的暫存器,直至存儲器耗盡后死機(jī)。

實(shí)際動(dòng)手進(jìn)行修復(fù)并不簡單。我花了一個(gè)多月的時(shí)間重新建置ISR,使ISR內(nèi)部僅執(zhí)行關(guān)鍵的指令集,并建立了一個(gè)可立即儲存中間計(jì)算值的方式,以便使這些值也可用于ISR外部。

這些修改終于完成且經(jīng)測試過了,而這款接口機(jī)箱在那之后還用了好多年。我自己也對這一點(diǎn)成績感到相當(dāng)自豪。

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

    關(guān)注

    68

    文章

    19313

    瀏覽量

    230057
  • 工程師
    +關(guān)注

    關(guān)注

    59

    文章

    1571

    瀏覽量

    68549
收藏 人收藏

    評論

    相關(guān)推薦

    VIC6與Motorola 68040接口

    本應(yīng)用指南展示了如何將Cypress Semiconductor的VIC64 VMEbus控制接口到Motorola工作頻率為40MHz的68040微處理器上。attach://21
    發(fā)表于 09-23 10:19

    ARM微處理器編程基礎(chǔ)和接口實(shí)驗(yàn)

    慕課電子科技大學(xué).嵌入式系統(tǒng).第三章.ARM微處理器編程基礎(chǔ)和接口實(shí)驗(yàn).ARM微處理器編程基礎(chǔ)實(shí)驗(yàn)0 目錄3 ARM微處理器編程基礎(chǔ)和接口實(shí)
    發(fā)表于 12-14 09:04

    ARM微處理器編程基礎(chǔ)和接口實(shí)驗(yàn)

    慕課電子科技大學(xué).嵌入式系統(tǒng).第三章.ARM微處理器編程基礎(chǔ)和接口實(shí)驗(yàn).ARM設(shè)備接口實(shí)驗(yàn)0 目錄3 ARM微處理器編程基礎(chǔ)和接口實(shí)驗(yàn)3.2
    發(fā)表于 12-14 08:46

    AD7572A與高速DSP處理器接口設(shè)計(jì)

    AD7572A與高速DSP處理器接口設(shè)計(jì):
    發(fā)表于 06-10 09:45 ?25次下載
    AD7572A與高速DSP<b class='flag-5'>處理器</b>的<b class='flag-5'>接口</b>設(shè)計(jì)

    設(shè)計(jì)AD7574 AD轉(zhuǎn)換與微處理器接口(該接口用作存儲

    設(shè)計(jì)AD7574 A D轉(zhuǎn)換與微處理器接口(該接口用作存儲映像輸入設(shè)備) :
    發(fā)表于 06-12 14:21 ?52次下載
    設(shè)計(jì)AD7574 AD轉(zhuǎn)換<b class='flag-5'>器</b>與微<b class='flag-5'>處理器</b>的<b class='flag-5'>接口</b>(該<b class='flag-5'>接口</b>用作存儲

    基于Nios II處理器的USB接口設(shè)計(jì)

    本文以Nios II 嵌入式軟處理器為核心,利用USB 控制芯片CH372,設(shè)計(jì)了基于Nios II 嵌入式軟處理器的USB 通信接口。本文重點(diǎn)介紹了USB 接口的硬件實(shí)現(xiàn)方案,分析了
    發(fā)表于 08-28 11:34 ?33次下載

    機(jī)箱的前置USB接口

    機(jī)箱的前置USB接口              前置USB接口是位于機(jī)箱前面板上的U
    發(fā)表于 12-26 13:52 ?1799次閱讀

    LonWorks節(jié)點(diǎn)中主從處理器之間IC接口設(shè)計(jì)

    為提高LonWorks總線的控制能力, 設(shè)計(jì)了以單片機(jī)AT89S51為主的處理器、神經(jīng)元芯片MC143150為從處理器的LonWorks節(jié)點(diǎn), 主處理器和從處理器之間的
    發(fā)表于 05-18 16:38 ?18次下載
    LonWorks節(jié)點(diǎn)中主從<b class='flag-5'>處理器</b>之間IC<b class='flag-5'>接口</b>設(shè)計(jì)

    基于中斷方式LON節(jié)點(diǎn)處理器SPI接口設(shè)計(jì)

    為增強(qiáng)LonWorks節(jié)點(diǎn)控制能力,采用單片機(jī)作為LonWorks節(jié)點(diǎn)的主處理器,Neuron芯片作為從處理器; 主從處理器采用SPI通信接口;SPI
    發(fā)表于 05-18 16:53 ?29次下載
    基于中斷方式LON節(jié)點(diǎn)<b class='flag-5'>處理器</b>SPI<b class='flag-5'>接口</b>設(shè)計(jì)

    處理器系統(tǒng)接口部件的設(shè)計(jì)

    :本文給出了一種 處理器 系統(tǒng)接口部件的具體設(shè)計(jì)方案。該接口部件通過使用Split讀和片外Cache來提高處理器的性能。測試結(jié)果表明,Split讀和片外Cache能夠以比較低的代價(jià)使
    發(fā)表于 06-29 15:59 ?10次下載
    <b class='flag-5'>處理器</b>系統(tǒng)<b class='flag-5'>接口</b>部件的設(shè)計(jì)

    嵌入式硬件處理器選型與接口設(shè)計(jì)

    嵌入式處理器選型與接口設(shè)計(jì) 主講:華清遠(yuǎn)見北京總部周老師。本視頻教程主要內(nèi)容為: 1、2009年嵌入式處理器發(fā)展現(xiàn)狀與趨勢 2、處理器接口
    發(fā)表于 12-15 17:18 ?144次下載
    嵌入式硬件<b class='flag-5'>處理器</b>選型與<b class='flag-5'>接口</b>設(shè)計(jì)

    嵌入式微處理器模擬接口設(shè)計(jì)

    嵌入式微處理器模擬接口設(shè)計(jì) 有需要的朋友下來看看
    發(fā)表于 12-29 17:56 ?2次下載

    基于嵌入式硬件處理器選型與接口設(shè)計(jì)

    基于嵌入式硬件處理器選型與接口設(shè)計(jì)
    發(fā)表于 10-30 15:15 ?10次下載
    基于嵌入式硬件<b class='flag-5'>處理器</b>選型與<b class='flag-5'>接口</b>設(shè)計(jì)

    研華IPC-5120 桌面/壁掛式機(jī)箱 MicroATX母板前置 I/O 接口支持2代-9代智能處理器

    IPC-5120桌面/壁掛式機(jī)箱MicroATX/ATX母板前置I/O接口精簡機(jī)箱氣流設(shè)計(jì),支持LGA775Pentium4處理器,配備特制CPU風(fēng)扇所有的I/O
    的頭像 發(fā)表于 06-02 11:38 ?1960次閱讀
    研華IPC-5120 桌面/壁掛式<b class='flag-5'>機(jī)箱</b> MicroATX母板前置 I/O <b class='flag-5'>接口</b>支持2代-9代智能<b class='flag-5'>處理器</b>

    拼接處理器:支持多種輸入和輸出接口

    訊維拼接處理器是一種功能強(qiáng)大的視頻會(huì)議硬件設(shè)備,它集成了多種輸入和輸出接口,為用戶提供了高效、靈活和動(dòng)態(tài)的會(huì)議環(huán)境。本文將詳細(xì)介紹訊維拼接處理器的多種輸入和輸出接口,探討其在視頻會(huì)議中
    的頭像 發(fā)表于 09-05 14:06 ?909次閱讀
    拼接<b class='flag-5'>處理器</b>:支持多種輸入和輸出<b class='flag-5'>接口</b>