www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]嵌入式Web訪問時的內(nèi)存丟失問題


    由于嵌入式技術的發(fā)展,嵌入式Web服務器軟件越來越大,對硬件的要求也相應地提高,但在工業(yè)現(xiàn)場的底層控制中,一般嵌入式系統(tǒng)的硬件配置都不是很高,導致了軟件和硬件的沖突。本文就是對實際應用過程中,偶爾出現(xiàn)的Web頁面訪問出錯問題進行深入的研究。


1 嵌入式Web在系統(tǒng)中的應用
    多支點觸發(fā)系統(tǒng)包括以下幾個模塊:控制臺模塊、網(wǎng)絡觸發(fā)源模塊、被觸發(fā)設備模塊。其中,網(wǎng)絡觸發(fā)源和被觸發(fā)設備都是掛載在總線上的,通過現(xiàn)場總線可以將系統(tǒng)各個節(jié)點相互連接起來以方便管理。嵌入式web就是應用于網(wǎng)絡觸發(fā)源模塊中,它負責控制臺和被觸發(fā)設備之間的通信??刂婆_通過瀏覽器訪問網(wǎng)絡觸發(fā)源,在Web頁面上完成相應控制操作后,由網(wǎng)絡觸發(fā)源把操作命令發(fā)送到總線上,被觸發(fā)設備從總線上接收到命令后,完成相應操作。在網(wǎng)絡觸發(fā)源模塊中,Web服務器采用的是Boa,嵌入式操作系統(tǒng)采用的是uClinux,處理器采用的是Sam-sung公司的S3C44BO。多支點觸發(fā)系統(tǒng)結(jié)構如圖1所示。

2 Boa的運行流程及出現(xiàn)的問題
    Boa是單任務的http服務器,源碼開放,性能高。與傳統(tǒng)的Web服務器不同,它并不對每個進入服務器的連接開辟新的進程,所有活動的http連接都在內(nèi)部進行處理,而只為每個CGI連接啟動新進程。在已進行的測試中,Boa服務器比其他的Web服務器要快,所以它應用在嵌入式系統(tǒng)中是具有良好前景的。圖2是Boa基本的運行流程。[!--empirenews.page--]
    在Boa運行過程中,用戶請求初始Lo-gin頁面時,系統(tǒng)能正常響應操作。當用戶輸入正確的Login信息,要實現(xiàn)頁面跳轉(zhuǎn)時,PC機上的瀏覽器里面不能正確瀏覽,提示錯誤:“502 bad gate-way The CGI was notCGI/1.1 compliant”。由于運行的是CGI程序,通過調(diào)試和查看錯誤日志,發(fā)現(xiàn)系統(tǒng)停留在步驟⑤~⑦間。在排除CGI程序錯誤后,通過串口調(diào)試終端打印出的錯誤信息發(fā)現(xiàn):在執(zhí)行CGI程序時,內(nèi)核申請內(nèi)存時出錯,提示申請的內(nèi)存塊不能得到,即內(nèi)存丟失。


3 系統(tǒng)內(nèi)存丟失分析
3.1 uClinux的內(nèi)存管理
    uClinux不能使用處理器的虛擬內(nèi)存管理技術,它仍然采用存儲器的分頁管理。系統(tǒng)啟動時對存儲器分頁,加載應用程序?qū)Τ绦蚍猪摷虞d。由于沒有MMU管理,所以uClinux采用實存儲器管理。uClinux系統(tǒng)對內(nèi)存的訪問是直接的(它對地址的訪問不經(jīng)MMU,而是直接送到地址線上輸出),所有程序訪問的地址是物理地址。那些比物理內(nèi)存還大的程序?qū)o法執(zhí)行。[!--empirenews.page--]
    uClinux將整個物理內(nèi)存劃分成為4 KB的頁面。由數(shù)據(jù)結(jié)構page管理,有多少頁面就有多少page結(jié)構,它們又作為元素組成數(shù)組men_map[]。物理頁面可作為進程代碼、數(shù)據(jù)和堆棧的一部分,還可存儲裝入的文件,也可作緩沖區(qū)。
    uClinux用標準Linux內(nèi)核變型BuddySystem機制管理空閑物理頁面。
3.2 內(nèi)存丟失原因
    由于uClinux提供了跟普通Linux一樣的內(nèi)存分配器,普通Linux中缺省的內(nèi)存分配器是使用“2的冪”的分配方法,這樣可以快速找到符合要求的內(nèi)存區(qū)域。在系統(tǒng)開發(fā)過程初期,采用的就是“2的冪”的分配方法。如果一個應用程序要求(X)KB內(nèi)存空間進行裝載,則實際使用占用的內(nèi)存空間大小為Y=2m(Y≥X)。試想一個65 KB應用程序,如果按照“2的冪”的分配方法,就必須分配128 KB(2的7次方)的內(nèi)存空間,這樣就有63 KB的內(nèi)存空間不能被利用上。這對于小內(nèi)存的嵌入式系統(tǒng)來說是相當大的浪費。
    多支點觸發(fā)系統(tǒng)運行時,嵌入式操作系統(tǒng)uClinux使用“2的冪”的內(nèi)存分配方法,大多數(shù)情況下都能正常工作。但在不斷反復測試中,偶爾會出現(xiàn)上述頁面出錯問題。錯誤的原因是不能獲得足夠的內(nèi)存加載程序。通過調(diào)試終端,用free命令查看系統(tǒng)內(nèi)存分配情況如表1所列。

    由表1可以看出,空閑的內(nèi)存空間還有1560 KB,而應用程序所需的內(nèi)存空間為400多KB,但是內(nèi)核認為并沒有足夠的內(nèi)存空間用來加載程序。例如一個系統(tǒng)內(nèi)存大小為1 MB,有400KB的空閑內(nèi)存,為了裝載一個應用程序需要分配100 KB的空間。大家可能覺得這個需要肯定能得到滿足,然而,由于uClinux必須給應用程序分配連續(xù)內(nèi)存空間的特性,所以必須有100KB連續(xù)的內(nèi)存空間才能滿足這個需要。而當系統(tǒng)內(nèi)存分配如圖3所示時,最大的連續(xù)內(nèi)存塊的大小只有80 KB,這樣是沒有辦法分配給這個應用程序的。這就是系統(tǒng)中頁面訪問出錯的問題所在,雖然有足夠的空閑內(nèi)存空間,但是沒有應用程序所需的連續(xù)內(nèi)存空間。

    這就是內(nèi)存丟失問題。雖然系統(tǒng)會顯示大量的可用內(nèi)存,但是應用程序卻不能得到。

[!--empirenews.page--]
4 內(nèi)存丟失問題的解決
    由于系統(tǒng)的內(nèi)存管理默認采用“2的冪”的分配方法,這就造成了內(nèi)存空間的巨大浪費,當某些應用程序要申請較大的連續(xù)空間時,卻不能滿足。為了解決這個問題,專門為uClinux內(nèi)核設計了可選的內(nèi)存分配器。不同的內(nèi)核版本,這個可選的內(nèi)存分配器不同,一般是page_alloc2和kmalloc2。
    page_alloc2能解決缺省的分配方法造成的浪費問題。雖然它也是使用“2的冪”的分配方法,但它是按頁(每頁4 096B,即4 KB)分配的,分配的內(nèi)存大小如果已經(jīng)滿足了要求,則只是將當前的一頁分配出去,其他的就不再分配。還是一個65 KB的應用程序,如果使用這種方法,就只是分配68 KB(≥65 KB,且為整頁)即可,這樣就能節(jié)省60 KB的空間。
    page_alloc2還采取了一些避免內(nèi)存碎片的方法。它將所有的兩頁(8 KB)或更少的內(nèi)存需求從空閑內(nèi)存開始部分向上分配,所有大的內(nèi)存需求從剩余內(nèi)存的末尾部分開始向下分配。這樣防止了網(wǎng)絡緩存等的臨時分配,避免了內(nèi)存碎片的出現(xiàn)。同時,它支持一次申請超過1 MB的內(nèi)存空間,這對一些大的應用程序是很好的支持。采用此方法后,在系統(tǒng)運行過程中,并未出現(xiàn)過頁面訪問出錯問題。通過free命令查看內(nèi)存分配如表2所列。

結(jié) 語
    在嵌入式系統(tǒng)應用日益廣泛的情況下,本文結(jié)合嵌入式Web在多支點觸發(fā)系統(tǒng)中的應用,介紹了Web訪問出現(xiàn)的問題以及它的解決方法。在實際應用中,新的內(nèi)存分配方法能讓系統(tǒng)穩(wěn)定地工作,但是從表2可以發(fā)現(xiàn):采用“page_alloc2‘’的內(nèi)存分配方法時,系統(tǒng)的Cache較小,這就造成了頁面訪問有一定的延時。而“2的冪”的分配方法,系統(tǒng)的Cache較大,訪問速度較快。從這個對比得知,在反應時間要求不是很高的情況下,“page_alloc2”的內(nèi)存分配方法更適合小內(nèi)存的嵌入式系統(tǒng);而“2的冪”的分配方法更合適那些內(nèi)存足夠大的嵌入式系統(tǒng)。系統(tǒng)開發(fā)者可以根據(jù)實際情況采用不同的方案。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

美國紐約州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)發(fā)布 2022 年第三季度業(yè)績報告。 IBM 董事長兼首席執(zhí)行官 Arvind Kri...

關鍵字: IBM 軟件 BSP 云平臺

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產(chǎn)品設計和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產(chǎn)品供給。 搭養(yǎng)老政策東風 ...

關鍵字: 溫度 BSP 東風 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎單元,承載著生存與活動的最基本功能。而對于理想空間的解構意義卻在物理性容器之外,體現(xiàn)出人們對于空間和生活深層關系的思考,同時也塑造著人與空間的新型連接...

關鍵字: 溫度 BSP 智能化 進程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預告。今年前三季度,公司預計實現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預計為1.73億...

關鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術中心"認定。 北京市企業(yè)技...

關鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團成立60周年的紀念日。趁著首都銀行集團成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機構對在華戰(zhàn)略的構想和業(yè)...

關鍵字: 數(shù)字化 BSP 供應鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團公司上海通運國際物流有限公司(Nipp...

關鍵字: 溫控 精密儀器 半導體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進出口商品交易會("廣交會")于"云端"開幕。本屆廣交會上高新技術企業(yè)云集,展出的智能產(chǎn)品超過140,...

關鍵字: 中國智造 BSP 手機 CAN

要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...

關鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車

嵌入式軟件

15715 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉