博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《嵌入式资料整合共两辑》
阅读量:2348 次
发布时间:2019-05-10

本文共 1413 字,大约阅读时间需要 4 分钟。

1、linux内核代码理解

毛德操 《Linux内核源代码情景分析》、《嵌入式系统》、《深入理解linux内核》
cpu和操作系统,arm和ucos。ucOS功能有限,实用用得较少,而ucLinux功能较多,实用性比较强。
把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。
嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。

2、嵌入式软件必须具备的基本技术

(1)掌握主流嵌入式微处理器的结构与原理
(2)必须掌握一个嵌入式操作系统
(3)必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目

3、进程和线程

(1)进程是资源管理的最小单位,线程是程序执行的最小单位。
(2)从进程演化出线程,最主要的目的就是要更好的支持SMP(Symmetry Multiple Processer对称对处理器)以及减少上下文切换开销
(3)线程模型有核心级线程和用户级线程两种线程模型,分类的标准主要是线程的调度者在核内还是在核外,前者更利于并发实用多处理器的资源,
而后者则更多考虑的是上下文切换开销。
(4)在目前的商用系统中, 通常将这两种模型结合起来,既提供核心线程以满足smp系统的需要,也支持用线程库的方式在用户态实现另一套线程机制,
此时一个核心线程同时成为多个用户态线程的调度者。

(5)在核外实现的线程分为“一对一”和“多对一”两种模型,前者用一个核心进程对应一个线程,将线程调度等同于进程调度,交给核心完成,而后者则完全在核外实现多线程,调度也在用户态完成。

目前最流行的线程机制LinuxThreads所采用的就是线程-进程“一对一”模型,调度交给核心,而在用户级实现一个包括信号处理在内的线程管理机制。
最初的进程定义都包含程序、资源及其执行三部分,后来逐渐允许将进程所占用的资源从其主体剥离出来,允许某些进程共享一部分资源,这就发展出了轻量级进程的概念。

(6)LinuxThreads存在不足,不完全兼容POSIX

进程ID问题,这是最关键的不足,Linux内核并不支持真正意义上的线程,这些轻量级进程拥有独立的进程id,而按照POSIX定义,同一
进程的所有线程应该共享一个进程id和父进程id,这在目前的“一对一”模型下是无法实现的;
信号处理问题,某些信号的缺省动作难以在现行体系上实现,比如SIGSTOP和SIGCONT,linuxThreads只能将一个线程挂起,而无法挂起整个进程。
线程总数问题,LinuxThreads将每个进程的线程最大数目定义为1024,但实际上这个数值还受到整个系统的总进程数限制,这是由于线程其实是核心进程。
管理线程问题, 管理线程容易成为瓶颈,这是这种结构的问题,如果管理线程死亡,用户线程就不得不手工清理了。

4、宏

(1)#运算符
把跟在其后的参数转换成一个字符串,把这种用法的#称为字符串化运算符。
#define PASTE(n) "adhfkj"#n
(2)##运算符
##运算符用于把参数连接到一起。预处理程序把出现在##两侧的参数合并成一个符号。
#define NUM(a,b,c) a##b##c
printf("%d",NUM(1,2,3));输出为123
(3)#error指令
将使编译器显示一条错误信息,然后停止编译
#error "This is a compiling error"

 

转载地址:http://qmxvb.baihongyu.com/

你可能感兴趣的文章
3--TCP三次握手
查看>>
4--网关
查看>>
4.内存非连续分配管理方式
查看>>
5.虚拟内存的概念、特征以及虚拟内存的实现
查看>>
mmap()函数:建立内存映射
查看>>
munmap()函数:解除内存映射
查看>>
三层交换机是否会代替路由器?
查看>>
5--TCP的状态
查看>>
6--企业常用防火墙iptables相关原理详解
查看>>
7--企业常用防火墙iptables核心配置讲解
查看>>
1.block_inode
查看>>
2.Linux文件和目录之间对应关系
查看>>
4.硬链接和软链接
查看>>
可能返回 null 的 SQL 语句
查看>>
以下关于STL的描述中,错误的有
查看>>
假设某棵二叉查找树的所有键均为1到10的整数,现在我们要查找5。下面____不可能是键的检查序列。
查看>>
给定一个整数sum,从有N个无序元素的数组中寻找元素a、b、c、d,使得 a+b+c+d =sum,最快的平均时间复杂度是____。
查看>>
设二叉树结点的先根序列、中根序列和后根序列中,所有叶子结点的先后顺序____。
查看>>
将整数序列(7-2-4-6-3-1-5)按所示顺序构建一棵二叉排序树a(亦称二叉搜索树),之后将整数8按照二叉排序树规则插入树a中,请问插入之后的树a中序遍历结果是____。
查看>>
IP地址、子网掩码、网络号、主机号、网络地址、主机地址
查看>>