大家好,我是春哥。我又回来了,最近开始学习嵌入式web开发了,也和大家分享一下。
在嵌入式设备中,有两种交互界面,一种是lcd屏幕(比如车载电视,车载导航),这种配置直接用手触摸屏幕就可以实现,另一种就是web服务(比如路由器),相当于在嵌入式设备中放了一个服务器,这个嵌入式设备就可以当作百度,通过浏览器来访问嵌入式服务器,也可以通过浏览器来配置嵌入式设备的工作方式。
采用web服务,不管你使用的是什么设备,只要你的设备有浏览器,就可以访问到嵌入式设备,当前的无lcd屏幕的嵌入式设备一般都是采用web服务的方式来配置。
什么是web服务器
web服务器本质上就是一个tcp服务器,由于应用层在数据处理格式上,采用了一个HTTP格式的协议标准,这样的服务器称之为web服务器。web服务器可以为用户的浏览器提供合法数据。
嵌入式系统中,常用的开源web服务
一般常用的web服务有两种,BOA和appweb,还有一些公司自己开发的服务器。简单介绍一下两种服务器,BOA服务器,BOA算是特别老牌的服务器了,从13年开始就没有更新了,BOA功能简单,代码量少,学习起来比较方便。appweb功能强大,代码量也大,适合工程上面使用。
如何移植BOA服务器
BOA开源代码支持多功能选择,针对于不同的设备可以选择不同的配置方式,包括目标机器的体系结构,功耗性能等,生成一个适用于目标机器的可执行程序。比如我们的电脑的体系结构是X86结构,我们的嵌入式设备是ARM结构,在编译时我们就需要选择交叉编译。
总结一下移植的基本步骤:1、指定编译工具。2、根据目标机器性能进行配置。3、生成(make)。
BOA配置
1、进入sourceforge社区,搜索BOA,然后找到BOA这个项目
我们搜索出来的结果可能有很多,但是记住一定是这个,点击SeeProject,就可以进行源码下载了,然后拖到你的Linux里面,解压。
2、解压之后的目录如下
3、进入src目录,我们会发现没有Makefile,但是有configure这说明需要我们自己生成一个Makefile,执行命令./configure,执行之后就会有。
4、但是现在的Makefile只是根据当前机器生成的,所以现在执行make生成的可执行文件只能在当前的机器上运行,并不能在嵌入式设备上运行,所以我们还需要进行配置。
5、修改makefile,使得支持目标板。
编译BOA
以上步骤完成后,执行make,如果你的虚拟机是新的虚拟机,应该会报错
这是第一个,yacc:Commandnotfound,我们第一反应应该是我们这个系统有个工具没装,如果是Ubuntu的话,执行一下yacc会提示你该执行什么命令下载。
根据提示来下载软件,命令很多,执行第一个就好。然后再执行一下make
第二个错,和第一个是一样的,怎么解决应该知道了吧,下面再执行一下make
然后,又出错了,这个错的问题在于以前的GCC支持‘##’这个符号,而现在的GCC不支持,所以我们把