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