1.项目描述:
\qquad 基于飞凌单片机OKA40i-C开发板,使用browser+boa进行通信,可以通过网页下载单片机的文件,也可以通过网页上传电脑客户端的文件到单片机。
2.开发环境:
\qquad
单片机是飞凌公司的OKA40i-C开发板,使用系统镜像为sun8iw11p1_linux_OKA40i_C_uart0-1080p.img
,开发板自带boa服务器,不需要我们进行移植;
\qquad
另外有两台电脑,负责对单片机进行开发,一台操作系统是Ubuntu20.04.1;另外一台为windows10。Ubuntu电脑的交叉编译器是arm-linux-gnueabi-gcc-5.3.1。
\qquad
单片机和两台电脑通过交换价互相连接,可以基于局域网的IP地址,通过ssh,telnet方式进行控制,通过sftp,ftp方式进行文件传输。
3. 问题描述
3.1 把boa移植到Ubuntu电脑上和网页的简单编写
3.2 把boa移植到开发板上(因为我的开发板上已经有了,所以我没有移植到开发板上)
3.3 网页把电脑文件上传到单片机
\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方式发送到单片机,然后通过网页上传文件就可以成功了。