项目开发日报表
项目名称 | 【苏嵌实训-嵌入式 linux C 第七天】 |
---|---|
今日进度以及任务 | 学习了嵌入式Linux C编程的文件编程和多任务编程(进程、线程) |
本日任务完成情况 | 完成了老师上课布置的任务 |
本日开发中出现的问题汇总 | 无 |
本日未解决问题 | 无 |
本日开发收获 | 初步了解了文件编程和线程的实现 |
其他 | 无 |
笔记
嵌入式C编程:语法、使用
嵌入式Linux C编程:在Linux上使用C语言调用操作系统功能接口开发应用程序;
嵌入式为什么要移植操作系统?
1、提供软件的移植性;
2、操作系统提供了多任务操作;
3、操作系统提供了丰富的网络协议栈;
4、操作系统将所有设备抽象成文件,方便访问设备;
嵌入式Linux C编程:文件编程、多任务编程(进程、线程)、网络编程
1、Linux系统构成/划分;用户空间、内核空间
<为什么将系统划分为用户空间、内核空间?> 保护内核的安全;
<用户该如何访问内核空间?> 通过系统调用
内核提供安全的访问内核的数据及服务的接口:系统调用
<用户如何发生系统调用?> 调用系统提供的编程函数接口–API(用户编程接口)
【文件编程】
1、文件描述符 ->(文件id)-> unsighed int;
<知道一个文件描述符、操作这个文件描述符,相当于再操作这个文件>
<文件描述符的分配方式:动态分配(只有当你操作这个文件、系统才会给你分配文件描述符,使用完毕之后回收)>
<0,1,2这三个文件描述符已经被系统占用,有特殊作用,所以说系统的普通文件id是从3开始的>
2、文件API(记头文件、记函数原型(形参和返回值的作用)、写测试、应用)
creat\open\read\write\seek\close
【嵌入式Linux多任务编程】
1、什么是多任务?
单任务:在一个任务执行期间,其他任务不能被调度;
多任务:
<当前CPU单核,存在任务并发,不存在并行>
<当前CPU是多核,即存在并法,也存在并行>
2、实现多任务的方式:进程、线程
进程(fork):实现多任务的开销比较大,因为每个进程都有4G的独立空间,导致进程间通信效率不高,优点:安全
线程:实现多任务的开销小,因为每个线程共享地址空间,通信效率高,缺点:不安全