版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中国电子科技集团公司第三十二研究所 自主可控计算研究院,ReWorks嵌入式应用开发,ReWorks扩展功能分析,1.ReWorks实时操作系统概述,4.ReWorks BSP实例分析,2,培训大纲,5.ReWorks核心功能介绍,2.ReDe开发环境介绍,3.ReWorks BSP开发,8.ReWorks设备驱动开发,6.ReWorks核心功能实例分析与实验,7.ReWorks扩展功能介绍,9.ReWorks实例分析与实验,3,培训大纲,I/O系统 阐述ReWorks的基本输入输出功能。,文件系统 描述ReWorks文件系统。,网络编程 讲述ReWorks网络编程接口。,总结 通过几个上机分
2、组实验对培训内容进行归纳总结。,1,2,3,4,5,4,培训大纲,I/O系统 阐述ReWorks的基本输入输出功能。,文件系统 描述ReWorks文件系统。,网络编程 讲述ReWorks网络编程接口。,总结 通过几个上机分组实验对培训内容进行归纳总结。,1,2,3,4,5,5,I/O系统,操作系统中负责管理输入输出设备的部分称为I/O系统 主要功能包括: 管理设备驱动程序 实现设备命名 向用户提供统一的调用接口,6,I/O系统,7,I/O系统,字符设备 以字符为单位进行数据访问的设备,如串口。 块设备 在输入/输出时数据处理以块为处理单位的设备。块设备可以容纳文件系统,支持数据的随机读写。如I
3、DE硬盘、软盘、FLASH、USB。 网络设备 网络设备由网络协议栈和网卡驱动程序负责发送和接收数据包,区别于其它I/O设备,网络设备无对应的设备文件。如dm9000网卡。,8,I/O系统,字符设备号 主设备号:标识设备对应的驱动程序(标准串口主设备号为4) 次设备号:相同驱动程序控制的设备编号(标准串口1的从设备号为64,标准 串口2为65) ReWorks典型字符设备 /dev/serial0/ 标准串口1 /dev/serial1/ 标准串口2 /dev/tty0/ 控制台,9,I/O系统,设备号 每类块设备具有唯一的设备号,如第一个硬盘设备号为3 ReWorks典型块设备 /dev/h
4、da1/ 第一个硬盘的分区1 /dev/hda2/ 第二个硬盘的分区2 /dev/umass0/ 第一个USB设备 块设备安装 块设备调用mount()接口安装到ReWorks根文件系统,10,I/O系统,ReWorks典型网络设备 lo0/ 本地网络 dmxx0/ dm9000网络接口 eeE0/ Intel82559网络接口 rtl0/ RTL8139网络接口,11,I/O系统,creat 创建文件 open 打开文件 read 写文件 write 读文件 ioctl I/O控制 select I/O多路复用 close 关闭文件描述符,I/O设备都被当作文件来访问,12,I/O系统,标识
5、一个file(文件或设备)的32位整数 通过open()和creat()函数分配 使用read() 、write()、ioctl()和close()修改文件 系统保留前3个文件描述符 0,标准输入;1,标准输出;2,标准错误 支持I/O重定向,可以将这3个描述符重新定向 到别的I/O设备上,比如串口、socket和文件 void global_std_set( int stdFd, int newFd ),13,I/O系统,调用select()的任务等待一组文件中的某一个文件描述符Ready int select(int n, fd_set *inp, fd_set *outp, fd_set
6、 *exp, struct timeval *tvp) inp 监测是否有字符可以从某个描述符读入 outp 监测是否某个描述符准备好了能立即写入 exp 监测是否某个描述符有异常出现 tvp 超时处理的等待时间,14,I/O系统,第一步:打开串口0 int fd, i, cnt; struct termios newterm, oldterm; char buf1024; fd = open(“/dev/serial0”, O_RDWR);/ 以读写方式打开/串口0 第二步:获取串口属性 tcgetattr(fd, ,15,I/O系统,第三步:设置串口属性 newterm.c_lflag /
7、 设置新属性,16,I/O系统,第四步:发送、接收数据 for( ; ; ) memset(buf, 0, 101); buf0 = 0 x11; buf1 = 0 x13; buf2 = 0 x0a; buf3 = 0 x60; buf4 = n; write(fd, buf, 5);/ 发送5个字符 memset(buf, 0, 1024); cnt = read(fd, buf, 1024);/ 接收信息 for(i = 0; i cnt; i +) printf(“0 x%02x ”, bufi);/ 打印信息 printf(n); ,17,培训大纲,I/O系统 阐述ReWorks的基
8、本输入输出功能。,文件系统 描述ReWorks文件系统。,网络编程 讲述ReWorks网络编程接口。,总结 通过几个上机分组实验对培训内容进行归纳总结。,1,2,3,4,5,18,文件系统,文件系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统 。 文件系统为用户提供一种简便的、统一的存取和管理信息的方法 。 文件系统负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。,19,文件系统,根文件系统 在ReWorks启动时创建顶层目录”/” 用于建立临时文件:提供缺省目录”/dev”,以建立设备文件 用于为其它文件系统提
9、供安装点 dosFs 与MS-DOS文件系统兼容 支持FAT16、FAT32格式,20,ram_config(16, /dev/ramdisk, /c);,RAM Disk的大小,以M为单位,设备名称,安装目录,文件系统,将内存当作硬盘使用,其大小不能超过“存储模块”中的系统内存大小,21,文件系统,22,hd_dev_create_disk(0,0,/dev/hda); mount(dosfs, /dev/hda1, /c);,主控制器,第一个硬盘,ReWorks硬盘设备,文件系统类型,第一个分区,安装目录,文件系统,23,基本I/O函数 creat, open, close, read,
10、write 缓存I/O函数 - 符合ANSI C - 在基本I/O的基础上,增加了缓冲机制,应用程序实际上访问的是缓冲区buffer - 可以提高系统效率,缓存 I/O不需要每次访问都调用基本的I/O系统函数 - fopen,fclose,fread,fwrite,fseek等,文件系统,24,文件和目录操作函数 rm 删除文件 ls 显示文件 mv 移动文件 truncate 截取文件长度 rename 改变文件名 opendir 打开目录 readdir 读取目录 closedir 关闭目录 cd 改变工作目录 mkdir 创建一个目录 rmdir 删除一个目录 getcwd 得到当前工作
11、目录,文件系统,25,培训大纲,I/O系统 阐述ReWorks的基本输入输出功能。,文件系统 描述ReWorks文件系统。,网络编程 讲述ReWorks网络编程接口。,总结 通过几个上机分组实验对培训内容进行归纳总结。,1,2,3,4,5,26,ReWorks提供套接字(Socket)编程接口 支持两种套接字 数据报套接字:支持双向的数据流,但不保证数据传送的可靠性、有序性和无重复 流套接字:提供双向的、有序的、无重复并且无记录边界的数据服务,网络编程,27,网络编程,28,网络编程,29,socket 建立一个通信端点 bind 将一个名字绑定到socket上 connect 建立一个连接
12、listen 侦听socket连接 accept 接受一个连接请求 send 从一个socket发送消息(TCP) recv 从一个socket接收消息(TCP) sendto 从一个socket发送消息(UDP) recvfrom 从一个socket接收消息(UDP) close 关闭socket,网络编程,30,网络编程,31,TCP服务端第一步:建立、绑定、监听socket接口 int s; s = socket(AF_INET, SOCK_STREAM, 0);/ 建立socket接口 . struct sockaddr_in srvr; srvr.sin_family = AF_IN
13、ET; srvr.sin_port = htons(1412); srvr.sin_addr.s_addr = 0L; int ret = bind(s, (struct sockaddr *)/ 监听接口 .,网络编程,32,TCP服务端第二步:接受连接请求,建立新的newSocket接口 int newSock; struct sockaddr_in addr; int addrLen; addrLen = sizeof (struct sockaddr); bzero (void *) .,网络编程,33,TCP服务端第三步:通过newSocket接口接收、发送网络信息 char rec
14、vbuf1024 = 0; int buf_len = sizeof(recvbuf); ret = recv(newSock, recvbuf, buf_len, 0);/ 接收客户端信息 . char sendbuf = This is a message from 7:1412; buf_len = sizeof(recvbuf); ret = send(newSock, sendbuf, buf_len, 0);/ 向客户端发送信息 . close(newSock);/ 关闭端口 close(s);,网络编程,34,TCP客户端第一步:建立socket接口,连接服务端
15、int s; struct sockaddr_in srvr; s = socket(AF_INET, SOCK_STREAM, 0);/ 建立socket端口 . srvr.sin_family = AF_INET; srvr.sin_port = htons(1412); inet_pton(AF_INET, 7, .,网络编程,35,TCP客户端第二步:通过socket接口接收、发送网络信息 char sendbuf = This is a message from 8:1412; int buf_len = sizeof(recvbuf); ret = send(s, sendbuf, buf_len, 0);/ 向客户端发送信息 . char recvbuf1024 = 0; buf_len = sizeof(recvbuf); ret = recv(s, recvbuf, buf_len, 0);/ 接收客户端信息 . close(s);/ 关闭端口,网络编程,36,培训大纲,I/O系统 阐述ReWorks的基本输入输出功能。,文件系统 描述ReWorks文件系统。,网络编程 讲述ReWorks网络编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025沈阳城市学院教师招聘考试题目及答案
- 2025江苏城市职业学院教师招聘考试题目及答案
- 2026山东京昇商业管理有限公司招聘2人建设笔试参考题库及答案解析
- 2026铁塔智联技术有限公司招聘博士后研究人员5人建设笔试备考题库及答案解析
- 2026江苏盐城市东台市教育局直属学校招聘教师、教练员73人建设考试参考题库及答案解析
- 安徽某国企外包工作人员岗位招聘3人建设考试参考试题及答案解析
- 2026广东广州市荔湾区白鹤洞街道环卫站招聘环卫工人4人建设笔试备考题库及答案解析
- 2026云南昆明医科大学附属口腔医院招聘非事业编制人员(第二批次)9人建设笔试模拟试题及答案解析
- 2026年4月西南医科大学附属中医医院招聘辅助岗位2人(四川)建设考试参考试题及答案解析
- 2026湖北黄石西塞山区创发企业管理集团有限公司下属管理公司招聘站长1人建设笔试模拟试题及答案解析
- 2026中国石油集团昆仑资本有限公司社会招聘笔试模拟试题及答案解析
- 北京市2025国家发展和改革委员会城市和小城镇改革发展中心面向应届毕业生招聘1人笔试历年参考题库典型考点附带答案详解
- 街道督察督办工作制度
- 2026年教案合集2026年春人教版八年级下册英语Unit 1~Unit 8全册教案新版
- 2026济南市第七人民医院公开招聘派遣制工作人员(2名)考试参考试题及答案解析
- 电子信息系统机房设计规范标准
- 金融职务犯罪及几种常见罪名课件
- 维修改造加固工程监理质量评估报告
- 2023甘肃庆阳市检察机关决定招聘聘用制书记员15人笔试备考题库及答案解析
- 农业机械化生产学(已讲修改版)
- DB37T 3314-2018肥料中海藻酸含量测定 分光光度法
评论
0/150
提交评论