项目:飞凌单片机boa服务器遇到问题总结
1.項目描述:
\qquad基于飛凌單片機OKA40i-C開發板,使用browser+boa進行通信,可以通過網頁下載單片機的文件,也可以通過網頁上傳電腦客戶端的文件到單片機。
2.開發環境:
\qquad單片機是飛凌公司的OKA40i-C開發板,使用系統鏡像為sun8iw11p1_linux_OKA40i_C_uart0-1080p.img;
\qquad另外有兩臺電腦,負責對單片機進行開發,一臺操作系統是Ubuntu20.04.1;另外一臺為windows10。Ubuntu電腦的交叉編譯器是arm-linux-gnueabi-gcc-5.3.1。
\qquad單片機和兩臺電腦通過交換價互相連接,可以基于局域網的IP地址,通過ssh,telnet方式進行控制,通過sftp,ftp方式進行文件傳輸。
3. 問題描述
3.1 把boa移植到Ubuntu電腦上和網頁的簡單編寫
83~92講
3.2 把boa移植到開發板上
嵌入式boa的移植
在嵌入式Linux系統(OK6410)中移植Boa 服務器
3.3 網頁把電腦文件上傳到單片機
CGIC編程
\qquad在這一步遇到問題,首先是網頁上傳文件不成功,出現下面錯誤:
502 Bad Gateway The CGI was not CGI/1.1 compliant
\qquad這個問題一直沒有解決,然后發現在Ubuntu電腦經過交叉編譯器編譯的程序,通過ftp發到單片機中,運行會出現下面錯誤:
** segmentation fault**
\qquad參考這篇文章之后,發現解決方案
segmentation fault,順著這個思路,發現前者那個問題也有了思路,單片機和開發電腦之間的文件傳輸,有兩種方式,一個是ftp,一個是sftp。
\qquad我發現經過sftp方式,上傳到單片機的編譯完的程序在單片機上運行都沒問題,然后我改變的發送方式,將upload.cgi和upload.html通過sftp方式發送到單片機,然后通過網頁上傳文件就可以成功了。
4.boa的移植
4.1 boa的編譯
將boa的壓縮包解壓之后,進入src文件,這里面放置boa的源碼,在進行make之前,需要進行修改里面的文件,和安裝一些必須工具比如flex,bison,再進行make編譯,編譯之后得到可執行文件boa。
4.2 配置boa.conf
boa.conf的放置位置有define.h決定,一般放在/etc/boa下面,在boa.conf中,可以修改端口號,log日志文件的存放位置,HTML文件存放位置,cgi程序文件的存放位置。沒有相應的目錄和文件的話,需要進行創建。
4.3 移植和啟動
將boa可執行程序和boa.conf移植到開發板
5.瀏覽器和單片機之間的http通信
瀏覽器中輸入ip地址,默認端口號為80,再加上要請求的文件,比如index.html,瀏覽器界面就可以跳轉到對應的文件。
<!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是外部拓展應用程序和web服務器交互的標準接口, CGIC是一個功能比較強大的支持CGI開發的標準C庫。
6.1 CGI處理步驟
1、通過瀏覽器將用戶請求送到服務器
2、服務器接收用戶請求并交給CGI程序處理
3、CGI程序把處理結果傳送給服務器
4、服務器把結果送回到瀏覽器
總結
以上是生活随笔為你收集整理的项目:飞凌单片机boa服务器遇到问题总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyTorch 之 requires_g
- 下一篇: Unity 基本操作