日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
μClinux下SDRAM數(shù)據(jù)交換區(qū)的生成和使用
μClinux下SDRAM數(shù)據(jù)交換區(qū)的生成和使用
 更新時(shí)間:2008-8-4 4:29:43  點(diǎn)擊數(shù):21
【字體: 字體顏色
<!-- adcode -->
 Cold Fire 5307可以支持二個(gè)Bank的SDRAM,在本系統(tǒng)中只使用了第一個(gè)Bank,另外一個(gè)Bank的控制信號懸空不使用。其中,SDRAM和FlashRom以及其他外設(shè)一同使用32位數(shù)據(jù)總線D0-D31;SDRAM映射到內(nèi)部物理地址,但是因?yàn)镾DRAM的特殊性,并不需要所有的地址線信號A0-A31,而是使用其中一部分信號線,這個(gè)地址映射的工作由DRAM控制器來完成;RAS0-RAS1是Bank片選信號,本設(shè)計(jì)中只使用RAS0來片選所使用的SDRAM Bank;CAS0-CAS3是SDRAM 32位數(shù)據(jù)線中4個(gè)8位數(shù)據(jù)線(Byte)獨(dú)立的片選信號;SCAS和SRAS分別是SDRAM的行、列地址鎖存信號;DRAMW是DRAM寫信號;BCLK0是系統(tǒng)時(shí)鐘輸出,連接到SDRAM的時(shí)鐘輸入引腳CLK端;SCKE是SDRAM時(shí)鐘使能信號,來使能輸入給SDRAM的時(shí)鐘信號,高電平時(shí)SDRAM自動(dòng)進(jìn)入休眠狀態(tài)。

       3 數(shù)據(jù)交換區(qū)軟件實(shí)現(xiàn)

      
服務(wù)器依據(jù)數(shù)據(jù)交換區(qū)配置文件生成設(shè)備數(shù)據(jù)交換區(qū)。服務(wù)器進(jìn)入運(yùn)行模式之后,首先檢查生成數(shù)據(jù)交換區(qū)與底層緩沖區(qū)的配置文件是否存在。如果不存在則打印錯(cuò)誤信息,存在則依據(jù)配置文件在系統(tǒng)SDRAM區(qū)開辟數(shù)據(jù)交換區(qū)與底層緩沖區(qū)。接著系統(tǒng)檢查PLC通信協(xié)議交換是否存在,不存在則打印錯(cuò)誤信息,存在則將COM2口置為PLC通信端口。一切就緒之后,系統(tǒng)啟動(dòng)任務(wù)調(diào)度完成各種任務(wù)。數(shù)據(jù)交換區(qū)生成及使用流程圖如圖2所示,數(shù)據(jù)緩沖區(qū)生成子程序流程如圖3所示。


 


       在2.4片μClinux內(nèi)核中,內(nèi)核引導(dǎo)時(shí),通過訪問系統(tǒng)所有的物理內(nèi)存,然后調(diào)用各個(gè)子系統(tǒng)的初始化函數(shù)進(jìn)行初始化,允許初始化代碼分配私有的緩沖區(qū),并減少了留給常規(guī)系統(tǒng)操作的RAM數(shù)量。在2.4版μClinux內(nèi)核中,這種分配通過調(diào)用下列函數(shù)之一進(jìn)行:

       分配內(nèi)存空間所使用的函數(shù)調(diào)用如下:

       (1)函數(shù)malloc和calloc都用于分配動(dòng)態(tài)內(nèi)存空間的函數(shù)。

  (2)函數(shù)malloc的參考size表示申請分配的內(nèi)存空間的大小,以字節(jié)計(jì)算;

  (3)函數(shù)calloc的參數(shù)nmemb表示分配的內(nèi)存空間占的數(shù)據(jù)項(xiàng)數(shù)目。參數(shù)size表示每一個(gè)數(shù)據(jù)項(xiàng)的大小,以字節(jié)計(jì)算。也就是說,calloc函數(shù)分配大小為nmemb*size大小的內(nèi)存空間。

       Calloc函數(shù)與malloc函數(shù)最大的區(qū)別是calloc函數(shù)被初始化所分配的內(nèi)存空間,把所有位置為0。調(diào)用成功時(shí),malloc函數(shù)為calloc函數(shù)的返回值都為被分配的內(nèi)存空間的指針;調(diào)用失敗時(shí),返回值為NULL。動(dòng)態(tài)內(nèi)存被釋放。

       在C語言中,指針是處理許多數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵。沒有指針,也許根據(jù)不能使用動(dòng)態(tài)內(nèi)存的諸多特性。在編寫程序的時(shí)候,它允許程序員建立復(fù)雜的內(nèi)存系統(tǒng)。提高了處理未知內(nèi)容或者類型數(shù)據(jù)的靈活性。在C中還有一點(diǎn)對字符串處理和數(shù)據(jù)的輸入輸出很重要。對指針的徹底了解有助于我們寫出更好、更高效的代碼。

       如果使用一種算法不夠,鏈表可以解決這個(gè)問題。當(dāng)從未知大小的數(shù)據(jù)塊中讀入數(shù)據(jù)時(shí),用戶不得不把數(shù)據(jù)讀到內(nèi)存中。這是因?yàn)樘幚碜x入數(shù)據(jù)的函數(shù)必須把數(shù)據(jù)讀到一塊一定大小的內(nèi)存中。在讀入以后,必須找到一種接合分離數(shù)據(jù)的辦法。一般使用fgets()把數(shù)據(jù)讀到n個(gè)字節(jié)大小的內(nèi)存中。緩沖區(qū)是n+1個(gè)字節(jié)大,但是請注意必須使用1個(gè)字節(jié)放結(jié)束標(biāo)記。然后使用了一簡單的鏈表保存數(shù)據(jù)。這個(gè)鏈表中一個(gè)特殊項(xiàng):一個(gè)名為iscontinuing的整型變量。如果這個(gè)變量有值,表示當(dāng)前結(jié)構(gòu)中的數(shù)據(jù)不是字符串最后的部分,最后的部分將包含在以后的結(jié)構(gòu)后。這個(gè)變量再把數(shù)據(jù)從內(nèi)存中調(diào)出來,重新組裝的時(shí)候使用。

       還有一種更明智的保存數(shù)據(jù)的方法。逐步處理數(shù)據(jù)直到達(dá)到數(shù)據(jù)末尾。首先要修改的是結(jié)構(gòu)的定義。在結(jié)構(gòu)中包含字符串。在結(jié)構(gòu)中定義一個(gè)指針,指向動(dòng)態(tài)申請的內(nèi)存區(qū)域。這樣做的好處是,字符串可以很長,F(xiàn)在產(chǎn)生輸出的代碼更簡單了。它做的所有的事情就是計(jì)算和顯示。不再需要合并字符串。因?yàn)橐呀?jīng)被合并。

       4 結(jié)束語

      
數(shù)據(jù)交換區(qū)的生成和使用對嵌入式工業(yè)網(wǎng)絡(luò)服務(wù)器項(xiàng)目尤為重要,它是WEB服務(wù)器正常運(yùn)行的先決條件,起到承上啟下的樞紐作用。向上負(fù)責(zé)對客戶端交互現(xiàn)場設(shè)備數(shù)據(jù),向下負(fù)責(zé)與接口緩沖區(qū)交互設(shè)備實(shí)時(shí)數(shù)據(jù)。目前,該部分設(shè)計(jì)工作已經(jīng)完成,并在試運(yùn)行期間情況良好,達(dá)到預(yù)期效果。



  • 上一篇: 計(jì)數(shù)器/定時(shí)器的C編程
  • 下一篇: 交流信號電平移位電路
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1