arm开发教程.ppt

arm开发教程.ppt

ID:48817383

大小:839.50 KB

页数:15页

时间:2020-01-28

arm开发教程.ppt_第1页
arm开发教程.ppt_第2页
arm开发教程.ppt_第3页
arm开发教程.ppt_第4页
arm开发教程.ppt_第5页
资源描述:

《arm开发教程.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ARM开发教程之基于ARM的移动视频监控系统(2)3.1基于ARM的嵌入式Linux开发平台3.2移动视频监控软件的设计3.2.1流媒体服务器的设计(1)采集视频数据(2)传输视频数据(3)采集线程与传输线程同步3.2.2动态网页的设计(1)设计流程(2)双缓冲技术4系统测试3.1基于arm的嵌入式Linux开发平台本方案采用了Linux嵌入式操作系统,以Linux2.6.24为基础进行裁减定制自己的内核,在编译内核时保留必须的文件系统、存储器、串口、USB、以太网驱动,将摄像头、USB无线网卡驱动以模块的形式编译,以减少编译后内核的大小。

2、Bootloader采用blob,烧写blob后利用tftp协议实现Linux内核和文件系统在Flash上的烧写。在Redhat9安装arm-linux-gcc。建立交叉编译环境,实现流媒体服务器和Boa在PAX270上的搭建。鉴于现在烧写技术已经很成熟,故不详细讨论。3.2ARM开发教程之移动视频监控软件的设计移动视频监控软件完成的主要功能有:设计流媒体服务器采集并传输摄像头拍摄的视频信息;构建嵌入式Web服务器Boa;动态网页的设计以及流媒体服务器、web服务器与浏览器之间的通信等任务。因此系统软件框架如图2所示。3.2.1ARM开发教

3、程之流媒体服务器的设计流媒体服务器主程序用于开放某个视频服务器端口,并不断监听端口,如有连接请求则建立连接,建立后流媒体服务进程将不断向端口提供采集到的视频数据流同时也接收客户端发送过来的视频调节命令参数。流媒体服务器主程序流程图如图3所示。(1)ARM开发教程之采集视频数据系统是在嵌入式Linux系统平台上采用Video4Linux编程来采集视频的。一般摄像头是直接读视频设备,采集到视频数据并存在文件中。对文件进行操作,这样程序运行效率会很低。本系统摒弃这种方法,采用mmap(内存映射)方式截取视频数据。mmap()系统调用使得进程之间通

4、过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。(2)传输视频数据本系统通过网络传输视频数据,用套接字(Socket)编程实现。(3)采集线程与传输线程同步流媒体服务器的设计有个关键点:保证连续不断的视频流。针对这一点,本系统采用多线程编程,采集和传输并行执行。用互斥量和标志位来实现采集线程和传输线程的同步。采集数据时给互斥量加锁,直到当前帧

5、采集完并填充完当前帧头结构体才解锁互斥量,再开始传输。同理,传输当前帧时采集线程等待,直到当前帧传输完。采集完两帧数据传输第二帧。传输完成后,采集完第三帧传输第三帧。依此循环,采集完第N帧传输第N帧。此时实际只传输了第2帧到第N帧,即N-1帧。用户的视觉反应需要时间,此丢弃第一帧的设计思想并不会使画面失真。反而连续不断的视频流传输到客户端为用户能够获得良好的视频质量打下了基础。采集线程:3.2.2ARM开发教程之动态网页的设计嵌入式Web服务器是Web服务器简化后的专用系统。本系统选用适合嵌入式系统的BoaWeb服务器。Boa是一个单任务的

6、HTTP服务器,支持能够实现动态Web技术的JavaScript技术,源代码开放,性能高。同时服务器本身所占空间很小,因而十分适用于嵌入式系统。鉴于Boa移植技术已经很成熟,故不详细讨论。Applet是能够嵌入到一个HTML页面中,且可通过Web浏览器下载和执行的一种Java类。它是Java技术容器(container)的一种特定类型。Applet可以通过网络传输,由浏览器自动装载并执行。这恰恰非常符合本系统的要求,因此选用Applet来很好地实现动态网页,打开网页就可以看到视频数据,方便快捷。(1)ARM开发教程之设计流程Applet不能

7、单独运行,需要嵌入在网页中借助浏览器的解释。必须要创建一个HTML文件来告诉浏览器需装载什么以及如何运行它。其执行顺序如下:①浏览器装入URL;②浏览器装入HTML文档;③浏览器装入Applet类;④浏览器运行Applet。本系统JavaApplet实现三个功能:视频数据通过Socket传送到客户端显示;将客户端调节视频带参数发送到服务器;将客户端点击的运动控制参数发送到服务器。其中init和start函数在Applet开始执行时调用,通过start创建2个线程:用于socket通信;提供用户界面显示视频和相应用户操作。用户界面设计用到Su

8、n的SwingWorker类库。(2)ARM开发教程之双缓冲技术双缓冲技术主要应用于屏幕闪烁现象的消除。在一帧图像的绘制过程中,如果一帧图像的绘制时间大于屏幕的刷新时间,就会造成

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。