嵌入式Web訪問時的內(nèi)存丟失問題
在Boa運(yùn)行過程中,用戶請求初始Lo-gin頁面時,系統(tǒng)能正常響應(yīng)操作。當(dāng)用戶輸入正確的Login信息,要實(shí)現(xiàn)頁面跳轉(zhuǎn)時,PC機(jī)上的瀏覽器里面不能正確瀏覽,提示錯誤:“502 bad gate-way The CGI was notCGI/1.1 compliant”。由于運(yùn)行的是CGI程序,通過調(diào)試和查看錯誤日志,發(fā)現(xiàn)系統(tǒng)停留在步驟⑤~⑦間。在排除CGI程序錯誤后,通過串口調(diào)試終端打印出的錯誤信息發(fā)現(xiàn):在執(zhí)行CGI程序時,內(nèi)核申請內(nèi)存時出錯,提示申請的內(nèi)存塊不能得到,即內(nèi)存丟失。本文引用地址:http://2s4d.com/article/152276.htm
3 系統(tǒng)內(nèi)存丟失分析
3.1 uClinux的內(nèi)存管理
uClinux不能使用處理器的虛擬內(nèi)存管理技術(shù),它仍然采用存儲器的分頁管理。系統(tǒng)啟動時對存儲器分頁,加載應(yīng)用程序?qū)Τ绦蚍猪摷虞d。由于沒有MMU管理,所以uClinux采用實(shí)存儲器管理。uClinux系統(tǒng)對內(nèi)存的訪問是直接的(它對地址的訪問不經(jīng)MMU,而是直接送到地址線上輸出),所有程序訪問的地址是物理地址。那些比物理內(nèi)存還大的程序?qū)o法執(zhí)行。
評論