第 12 章 嵌入式系统的应用程序开发

Preview:

DESCRIPTION

第 12 章 嵌入式系统的应用程序开发. 第 12 章 嵌入式系统的应用程序开发. 12.1 嵌入式 GUI 系统 12.2 嵌入式网络应用. 12.1 嵌入式 GUI 系统. 嵌入式 GUI 的概述 GUI 系统的设计原理 GUI 系统的移植 GUI 系统的应用的开发. 嵌入式 GUI 的概述. 随着需求的增加和嵌入式系统性能的提高。 GUI (图形用户系统)在嵌入式系统的应用越来越广泛。 嵌入式 GUI 系统了友好的人机交互方式,类似桌面电脑 Window 和 Linux 的图形用户界面。. 嵌入式 GUI 的概述. - PowerPoint PPT Presentation

Citation preview

第 12 章 嵌入式系统的应用程序开发

第 12 章 嵌入式系统的应用程序开发

12.1 嵌入式 GUI 系统 12.2 嵌入式网络应用

12.1 嵌入式 GUI 系统

嵌入式 GUI 的概述 GUI 系统的设计原理 GUI 系统的移植 GUI 系统的应用的开发

嵌入式 GUI 的概述

随着需求的增加和嵌入式系统性能的提高。 GUI (图形用户系统)在嵌入式系统的应用越来越广泛。

嵌入式 GUI 系统了友好的人机交互方式,类似桌面电脑 Window 和 Linux 的图形用户界面。

嵌入式 GUI 的概述

嵌入式 GUI 系统从下至上分成四个层次,: 硬件和操作系统 GUI 系统的移植部分 GUI 系统 应用程序

移植部分

硬件\操作系统

图形系统

API

应用程序

嵌入式 GUI 的概述

从整个嵌入式系统 GUI 的实现角度,开发者一共有三个部分的工作:

嵌入式 GUI 系统的本身 嵌入式 GUI 系统的移植 嵌入式 GUI 系统的应用程序的

开发

GUI 系统的设计原理

嵌入式 GUI 系统的特点:可移植性稳定可靠系统开销少可配置

GUI 系统的设计原理

常见嵌入式 GUI 系统: QTE

(TrollTech ) MicroWindow

( 开源软件 ) MiniGUI

(中国飞漫)

GUI 系统的设计原理

嵌入式 GUI 系统的特点:可移植性稳定可靠系统开销少可配置

GUI 系统的设计原理

MiniGUI MicroWindows QT/E

典型库的大小 约 300k 约 300k 约 600k

移植性 很好 很好 较好授权条约 LGPL LGPL LGPL

系统消耗 小 较大 大操作系统支持 Linux

uCLinuxuCOS等

LinuxuCLinuxDOS

Linux

编程语言 C C C++

GUI系统的移植

嵌入式 GUI 系统移植的几个方面:

操作系统的移植硬件的移植 (输入设备和输出设备)

GUI系统的移植

图形系统依赖库移植

图形系统

操作系统

图形系统依赖库

应用程序

显示部分 输入部分

驱动程序

LCD硬件

输入设备

图形系统可移植层

编译系统

显示部分移植

输入部分移植

操作系统调用接口

编译系统

12.2 嵌入式网络应用

网络基础知识 TCP/IP 知识 嵌入式 Linux 的网络应用

网络基础知识

OSI 是一个开放性的通行系统互连参考模型1 、应用层( A )2 、表示层( P )3 、会话层( S )4 、传输层( T )5 、网络层( N )6 、数据链路层 (DL)7 、物理层 (PH)

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

TCP/IP 知识

TCP/IP 协议( Transmission Control Protocol/Internet Protocol )叫做传输控制 / 网际协议,又叫网络通讯协议,这个协议是 Internet 国际互联网络的基础。

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

OSI参考模型

应用层

传输层

网络层

TCP/IP模型

网络接口层

物理层

TCP/IP 知识

TCP/IP 协议族 : IP( 网络层 ) ARPP( 网络层 ) ICMPP( 网络层 ) TCP( 传输层 ) UDP( 传输层 ) RIP( 应用层 ) TELNET( 应用层 ) FTP( 应用层 ) SMTP( 应用层 ) TFTP( 应用层 )

应用层

TCP UDP

IP(以及ICMP、IGMP)

硬件设备驱动程序和媒体接入协议

HTTP FTP DNS TFTPTELNET SMTP SNMP RIP

传输层

网络层

网络接口层

ARP RARP

嵌入式 Linux的网络应用

套接字( socket )是 UNIX 中网络编程一种通用的方式,它为应用层的网络编程提供了很大的方便。

应用程序

用户进程

TCP UDP

IP

设备驱动和硬件

因特网协议

内核

通讯细节

应用细节

socket

嵌入式 Linux的网络应用

嵌入式 Linux 的网络程序和桌面 Linux 的网络程序在结构上都很类似,网络驱动可以使用各种通用接口。

硬件驱动程序

物理层

Linux的网络设备接口(net_device)

网络接口调用

网络协议

网络应用程序

硬件

驱动程序

网络协议

应用程序

嵌入式 Linux的网络应用

嵌入式系统网络的应用模式 :

监控设备(网络服务器)

监控设备(网络客户端)

网络连接

嵌入式 Linux的网络应用

嵌入式系统网络的应用模式 :

监控设备(网络服务器)

监控设备(网络客户端)

网络连接

嵌入式 Linux的网络应用

Linux 的主要网络命令:ping : 使用 ICMP 协议检测主机连接。ifconfig : 用于指定的参数设置网络接口 , 指定的参数包括 IP 地址 , 子网掩码 , 广播地址等。route : 用来产生和修改路由表。netstat : 用于显示与 IP 、 TCP 、 UDP 和 ICMP 协议相关的统计数据 , 一般用于检验本机各端口的网络连接情况。

大小端处理函数

函数原型 描述uint16_t htons(uint16_t value); 16位转换,返回网络字节序

uint32_t htonl(uint32_t value); 32位转换,返回网络字节序

uint16_t ntohs(uint16_t value); 16位转换,返回主机字节序

uint32_t ntohl(uint32_t value); 32位转换,返回网络字节序

TCP/IP 网络协议使用大端的字节序( big endian ),但是处理器(主机)的字节序却存在大小端。

内存操作处理函数

函数原型 描述

void bzero(void *dest, size_t nbytes); 按字节内存置零

void bcopy(const void *src, void *dest, size_t nbytes);

按字节内存拷贝:

int bcmp(const void *ptr1, const void *ptr2, size_t nbytes);

按字节内存比较:

void *memset(void *dest, int c, size_t len); 内存设置

void *memcpy(void *dest, const void *src, size_t bytes);

内存拷贝

int memcmp(const void *ptr1, const void *ptr2, size_t nbytes);

内存比较

Socket编程主要函数

int socket (int family, int type, int protocol);int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);int close( int fd ); int listen( int s, int backlog );int accept(int s, struct sockaddr *addr, socklen_t *addrlen);int connect( int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen );

Socket编程主要函数

ssize_t read(int filedes, void *buff, size_t nbytes) ;ssize_t write(int filedes, const void *buff, size_t nbytes) ;

int recv( int sockfd,void *buf,int len,int flags );int send( int sockfd,void *buf,int len,int flags );

int recvfrom( int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen );int sendto( int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);

课程结束

Recommended