项目:飞凌单片机boa服务器遇到问题总结
1.項(xiàng)目描述:
\qquad基于飛凌單片機(jī)OKA40i-C開發(fā)板,使用browser+boa進(jìn)行通信,可以通過網(wǎng)頁(yè)下載單片機(jī)的文件,也可以通過網(wǎng)頁(yè)上傳電腦客戶端的文件到單片機(jī)。
2.開發(fā)環(huán)境:
\qquad單片機(jī)是飛凌公司的OKA40i-C開發(fā)板,使用系統(tǒng)鏡像為sun8iw11p1_linux_OKA40i_C_uart0-1080p.img;
\qquad另外有兩臺(tái)電腦,負(fù)責(zé)對(duì)單片機(jī)進(jìn)行開發(fā),一臺(tái)操作系統(tǒng)是Ubuntu20.04.1;另外一臺(tái)為windows10。Ubuntu電腦的交叉編譯器是arm-linux-gnueabi-gcc-5.3.1。
\qquad單片機(jī)和兩臺(tái)電腦通過交換價(jià)互相連接,可以基于局域網(wǎng)的IP地址,通過ssh,telnet方式進(jìn)行控制,通過sftp,ftp方式進(jìn)行文件傳輸。
3. 問題描述
3.1 把boa移植到Ubuntu電腦上和網(wǎng)頁(yè)的簡(jiǎn)單編寫
83~92講
3.2 把boa移植到開發(fā)板上
嵌入式boa的移植
在嵌入式Linux系統(tǒng)(OK6410)中移植Boa 服務(wù)器
3.3 網(wǎng)頁(yè)把電腦文件上傳到單片機(jī)
CGIC編程
\qquad在這一步遇到問題,首先是網(wǎng)頁(yè)上傳文件不成功,出現(xiàn)下面錯(cuò)誤:
502 Bad Gateway The CGI was not CGI/1.1 compliant
\qquad這個(gè)問題一直沒有解決,然后發(fā)現(xiàn)在Ubuntu電腦經(jīng)過交叉編譯器編譯的程序,通過ftp發(fā)到單片機(jī)中,運(yùn)行會(huì)出現(xiàn)下面錯(cuò)誤:
** segmentation fault**
\qquad參考這篇文章之后,發(fā)現(xiàn)解決方案
segmentation fault,順著這個(gè)思路,發(fā)現(xiàn)前者那個(gè)問題也有了思路,單片機(jī)和開發(fā)電腦之間的文件傳輸,有兩種方式,一個(gè)是ftp,一個(gè)是sftp。
\qquad我發(fā)現(xiàn)經(jīng)過sftp方式,上傳到單片機(jī)的編譯完的程序在單片機(jī)上運(yùn)行都沒問題,然后我改變的發(fā)送方式,將upload.cgi和upload.html通過sftp方式發(fā)送到單片機(jī),然后通過網(wǎng)頁(yè)上傳文件就可以成功了。
4.boa的移植
4.1 boa的編譯
將boa的壓縮包解壓之后,進(jìn)入src文件,這里面放置boa的源碼,在進(jìn)行make之前,需要進(jìn)行修改里面的文件,和安裝一些必須工具比如flex,bison,再進(jìn)行make編譯,編譯之后得到可執(zhí)行文件boa。
4.2 配置boa.conf
boa.conf的放置位置有define.h決定,一般放在/etc/boa下面,在boa.conf中,可以修改端口號(hào),log日志文件的存放位置,HTML文件存放位置,cgi程序文件的存放位置。沒有相應(yīng)的目錄和文件的話,需要進(jìn)行創(chuàng)建。
4.3 移植和啟動(dòng)
將boa可執(zhí)行程序和boa.conf移植到開發(fā)板
5.瀏覽器和單片機(jī)之間的http通信
瀏覽器中輸入ip地址,默認(rèn)端口號(hào)為80,再加上要請(qǐng)求的文件,比如index.html,瀏覽器界面就可以跳轉(zhuǎn)到對(duì)應(yīng)的文件。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Test Upload</title><meta name="author" content="scorpio"><!-- Date: 2016-07-30 --> </head> <body> <form action="cgi-bin/upload.cgi" method="post" enctype="multipart/form-data" target="_blank"><input type="file" name="file" value="" /><input type="submit" name="submit" value="OK"> </form> </body> </html>6.cgi編程
cgi是外部拓展應(yīng)用程序和web服務(wù)器交互的標(biāo)準(zhǔn)接口, CGIC是一個(gè)功能比較強(qiáng)大的支持CGI開發(fā)的標(biāo)準(zhǔn)C庫(kù)。
6.1 CGI處理步驟
1、通過瀏覽器將用戶請(qǐng)求送到服務(wù)器
2、服務(wù)器接收用戶請(qǐng)求并交給CGI程序處理
3、CGI程序把處理結(jié)果傳送給服務(wù)器
4、服務(wù)器把結(jié)果送回到瀏覽器
總結(jié)
以上是生活随笔為你收集整理的项目:飞凌单片机boa服务器遇到问题总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyTorch 之 requires_g
- 下一篇: Unity 基本操作