项目名称 |
【苏嵌实训-嵌入式 linux C 第 7 天】 |
今日进度以及任务 | 讲解了文件和多任务 |
本日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量) | 和老师一起把代码写了一遍
|
本日开发中出现的问题汇总 | 任务和线程都是之前写程序用的很少的知识点,没有很明白的知道所有知识点,尤其还是在Linux系统下的写法 |
本日未解决问题 | 对于文件和多任务自己写程序可能运用不出来 |
本日开发收获 | 1、讲解了文件的用法,从创建到写入再到读出 2、简单讲解了一下多任务,然后又通过视频给讲解了线程 |
其他 |
|
上周 嵌入式C编程:语法、使用
本周 嵌入式LinuxC编程:在Linux上使用C语言调用操作系统功能接口开发应用程序
文件编程、多任务编程、网络编程
嵌入式为什么要移植操作系统?
1、提供软件的移植性
2、操作系统提供了多任务操作
3、操作系统提供了丰富的网络协议栈
4、操作系统将所有设备抽象成文件,方便访问设备
嵌入式LinuxC编程
1、Linux系统构成/划分;用户空间、内核空间
为什么将系统划分为用户空间、内核空间? 保护内核的安全
用户该如何访问内核空间? 通过系统调用(内核提供安全的访问内核的数据及服务的接口)
用户如何发生系统调用? 调用系统提供的的编程函数接口--API(用户编程接口)
文件编程
1、文件描述符(文件id)unsigned int 知道一个文件描述符,操作这个文件描述符,相当于再操作这个文件
文件描述符的分配方式:动态分配(只有当你操作这个文件、系统才会给你分配文件描述符,使用完毕后回收
0,1,2这个三个文件描述符已经被系统占用,有特殊作用,所以说系统的普通文件id是从3开始的
2、文件API 记头文件,记函数原型(形参和返回值的作用)、写测试、应用
creat\open\read\write\lseek\close
嵌入式Linux多任务编程
1、什么是多任务
单任务 在一个任务执行期间,其他任务不能被调度
多任务
当前CPU单核,存在任务并发,不存在并行
当前CPU是多核,即存在并发,也存在并行
2、实现多任务的方式 进程、线程
进程(fork) 实现多任务的开销较大,因为每个进程都有4G的独立地址空间,导致进程间通信率不高 优点 安全
线程 实现多任务的开销小,因为每个线程共享地址空间,通信效率高 缺点 不安全