<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > L結(jié)構(gòu)處理器編程及應(yīng)用 《第一版》

          L結(jié)構(gòu)處理器編程及應(yīng)用 《第一版》

          ——
          作者: 時間:2006-10-27 來源:電子產(chǎn)品世界 收藏

          長沙理依信息科技有限公司

          二OO六年十月

          前言

            是采用新型體系結(jié)構(gòu)(L計算機處理器體系結(jié)構(gòu))的、具有多任務(wù)處理功能的系列處理器的總稱,統(tǒng)稱為LSSP,可廣泛用于生產(chǎn)過程控制、自動檢測、數(shù)據(jù)采集與處理、科技計算、商業(yè)管理和辦公室自動化等方面。它除了具有體積小、重量輕、可靠性高、通用性強等優(yōu)點外,尤其是極具特色的快速多任務(wù)處理可廣泛用于衛(wèi)星定向、汽車火花控制、音頻與視頻控制、交通自動管理、微波爐控制、中央空調(diào)控制、溫控和濕控等專用控制上。
          所構(gòu)成的計算機應(yīng)用系統(tǒng)特點是:
            
            芯片所構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠性。
             
            系統(tǒng)擴展和系統(tǒng)配置規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。
           
            構(gòu)成極具特色的多任務(wù)計算機系統(tǒng),相當(dāng)多的測試和控制功能由軟件實現(xiàn),故具有很強的柔性特點.有優(yōu)異的性能價格比。

            目前的處理器應(yīng)用技術(shù)是使用處理器和可編程邏輯器件相結(jié)合構(gòu)成的新一代電子應(yīng)用技術(shù),這是工程應(yīng)用技術(shù)發(fā)展的一個新趨勢,L結(jié)構(gòu)處理器正是這種新技術(shù)的最佳結(jié)果。選擇L結(jié)構(gòu)處理器就意味著選擇了最新技術(shù)。

            現(xiàn)有的L結(jié)構(gòu)處理器是字長為16位的嵌入式處理器,其最具特色是不用中斷而用事件觸發(fā);不用軟件編程形成的時間復(fù)用方式的多任務(wù)而用芯片內(nèi)部硬件自動實現(xiàn)的多道程序并發(fā)機制來完成多任務(wù)的處理。
          為了讓編程人員掌握L結(jié)構(gòu)處理器應(yīng)用系統(tǒng)軟件編程和設(shè)計,編寫了本分文檔,為了節(jié)省篇幅,突出重點,對于L結(jié)構(gòu)處理器的結(jié)構(gòu)和基本原理不作介紹。

          文檔共分成7部分:

          第1部分強調(diào)L結(jié)構(gòu)處理器的軟件設(shè)計要點。
           
          第2部分介紹多任務(wù)設(shè)計方法。介紹了不相關(guān)聯(lián)的多個任務(wù)分別通過相應(yīng)的道程序并發(fā)執(zhí)行各個任務(wù);對于具有相同的程序段,只是程序參數(shù)和運算結(jié)果不同時,分解成多個任務(wù)由各個道程序并發(fā)運行;子程序在多任務(wù)情況下的調(diào)用、0道程序的處理及數(shù)據(jù)存儲單元的分配。

          第3部分介紹了多道程序運行時的同步和互斥問題。用了一個背包加密和解密設(shè)計項目,通過11個步驟,用數(shù)據(jù)標(biāo)志位或同步標(biāo)志位控制道程序之間的同步和互斥。

          第4部分介紹了外部事件的處理。6個外部事件與通過外部事件激活的道程序的處理方式中,給出了同一個外部事件多次激活道程序的執(zhí)行程序,闡述了多個外部事件多次激活道程序的方法。

          第5部分介紹了系統(tǒng)硬件接口程序。包括人機對話通道接口程序如鍵盤、顯示器及計數(shù)/定時器等接口程序。

          第6部分總線設(shè)計介紹了幾種常用的總線標(biāo)準(zhǔn)及芯片接口程序。如I2C接口程序、SPI接口處理程序及一總線接口處理程序等。

          第7部分為通用軟件設(shè)計方法。介紹了程序語言編寫方法,L結(jié)構(gòu)處理器的匯編語言編程技巧等。
          由于作者開發(fā)設(shè)計L結(jié)構(gòu)處理器應(yīng)用軟件的時間不長,文檔中的錯誤與不妥之處在所難免,敬請諒解且請批評指正。

                        目錄

          一、程序設(shè)計的要點    3

          二、最簡硬件系統(tǒng)及其軟件設(shè)計框架    3

          1、硬件系統(tǒng)最簡構(gòu)成方案    3

          2、軟件設(shè)計最基本框架    3

          三、多任務(wù)    3

          1、不相關(guān)聯(lián)的多任務(wù)    3

          2、相同的運算程序段用多道程序處理    3

          3、子程序在多道程序中的調(diào)用    3

          4、多任務(wù)處理應(yīng)以0道程序為基準(zhǔn)    3

          5、多任務(wù)中應(yīng)建立好道程序的存儲數(shù)據(jù)區(qū)和共享數(shù)據(jù)區(qū)    3

          四、多道程序間的同步與互斥    3

          一)、多道程序同步與互斥    3

          1.    由私人密鑰產(chǎn)生公開密鑰    3

          2.    加密    3

          3.    解密    3

          4.    程序流程及密鑰求解    3

          5.    同步方式與互斥方式細(xì)化多道程序的任務(wù)    3

          6.啟動0道程序且數(shù)據(jù)初始化同時分發(fā)各道程序    3

          7.1~30道程序中的同步與互斥處理    3

          8.輸入明文    3

          9.    同步并發(fā)1~15道加密程序    3

          10.    同步并發(fā)16~30道解密程序    3

          11.    輸出明文    3

          二)、設(shè)置同步標(biāo)志位    3

          1.同步標(biāo)志初始化    3

          2.加密后開啟同步標(biāo)志    3

          3.同步標(biāo)志啟動解密道程序    3

          五、事件處理    3

          1、多個不同事件的處理    3

          2、同一事件多次發(fā)生的處理    3

          3、多個不同事件的多次發(fā)生處理    3

          六、硬件接口程序設(shè)計    3

          1、    定時器程序設(shè)計方法及實例    3

          2、    鍵盤設(shè)計    3

          1)、簡單行列結(jié)構(gòu)鍵盤設(shè)計    3

          2)、外部事件觸發(fā)定時掃描行列鍵盤的設(shè)計    3

          3)、編碼鍵盤    3

          3、    顯示程序設(shè)計方法及實例    3

          1)、串行接口8位共陰極LED驅(qū)動器MAX7219與LSSP的接口電路    3

          2)、段式LCD顯示器與LSSP連結(jié)的驅(qū)動接口    3

          七、總線標(biāo)準(zhǔn)常用芯片及程序設(shè)計    3

          1、    I2C總線及接口程序設(shè)計    3

          2、    SPI總線及接口程序設(shè)計    3

          3、    一總線接口及程序設(shè)計    錯誤!未定義書簽。

          八、常用程序的設(shè)計方法    3

          1、    程序流程圖的畫法    3

          2、    簡單程序    3

          3、    分支程序    3

          4、    循環(huán)程序    3

          5、    查表程序    3

          6、    子程序    3

          7、    散轉(zhuǎn)程序    3

          (1)、使用轉(zhuǎn)移指令表的散轉(zhuǎn)程序    3

          (2)、使用地址偏移量的散轉(zhuǎn)程序    3

          (3)、使用轉(zhuǎn)向地址表的散轉(zhuǎn)程序    3

          (4)、使用轉(zhuǎn)向地址偏移量表的散轉(zhuǎn)程序    3

          一、程序設(shè)計的要點

          1.    LSSP最多可支持32道程序的并發(fā)執(zhí)行,程序道號依次為#0 - #31;

          2.    0道程序應(yīng)作為程序設(shè)計的基礎(chǔ): 啟動或復(fù)位后,系統(tǒng)首先啟動0道執(zhí)行。這樣在程序設(shè)計時,必須以0道程序為基礎(chǔ),整個程序的規(guī)劃應(yīng)以0道程序為基準(zhǔn)。
           
          3.    數(shù)據(jù)的共享:在設(shè)計多道程序中的一個主要問題是確定多道程序的數(shù)據(jù)共享,每道程序除了要完成本道的程序任務(wù)外,還要實現(xiàn)其它道程序之間的數(shù)據(jù)共享。在L結(jié)構(gòu)處理器中,共享數(shù)據(jù)是通過定義共享數(shù)據(jù)(PD  … ENDS)段實現(xiàn)的。

          4.    0道程序負(fù)責(zé)共享數(shù)據(jù)的初始化:多道程序的共享數(shù)據(jù)一般由0道程序負(fù)責(zé)進(jìn)行初始化,以保證多道程序的正常運行。

          5.    0道程序根據(jù)系統(tǒng)設(shè)計的要求激活相應(yīng)道的程序:每道程序都由0道程序激活執(zhí)行,也只有0道程序才能激活其它道程序。

          6.    0道程序激活某道程序后,在該道程序處于執(zhí)行狀態(tài)時,0道程序不得再次激活該道程序;只有當(dāng)該道程序執(zhí)行結(jié)束且退出后,0道程序才能再次激活該道程序。

          7.    其它道程序不能激活程序。

          8.    程序存儲單元的區(qū)域范圍為0000H—7FFF,每個存儲單元為32位二進(jìn)制的數(shù)。

          9.    數(shù)據(jù)存儲單元的區(qū)域范圍為0000H—3FE0,每個存儲單元為16位二進(jìn)制的數(shù)。

          10.    每道程序都有各自獨立的16個通用寄存器。

          11.    由22個特殊寄存器,用于訪問外部EEPROM和RAM的地址寄存器、訪問外部EEPROM和SRAM的數(shù)據(jù)寄存器、用戶可編程的I/O以及Watchdog寄存器等。具體使用方式,請詳見《說明書》。

          二、最簡硬件系統(tǒng)及其軟件設(shè)計框架

          1、硬件系統(tǒng)最簡構(gòu)成方案

            LSSP芯片有100個腳位,它與AT28LV010芯片相連可組成最簡的LSSP硬件應(yīng)用系統(tǒng)。AT28LV010是一款擁有1Mbit電可擦除的只讀存儲器。LSSP系統(tǒng)每條匯編指令占32位,有220



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();