嵌入式基础知识点
是桃萌萌鸭~
生活不怕缓慢!只怕停滞不前!
展开
-
进程的状态转换和进程标识符
Linux中的进程有以下几种主要状态。①运行状态( TASK_ RUNNING) 进程当前正在运行,或者正在运行队列中等待调度。②可中断的阻塞状态( TASK_ INTERRUPTIBLE) 进程处于阻塞(睡眠)状态,正在等待某些事件发生或能够占用某些资源。处在这种状态下的进程可以被信号中断。接收到信号或被显式地唤醒呼叫(如调用wake_ up系列宏: wake_ up、wake_ up_ interruptible 等)唤醒之后,进程将转变为TASK_ RUNNING状态。原创 2022-09-27 18:32:38 · 304 阅读 · 0 评论 -
嵌入式基础知识点
Linux将硬件设备分为3大类,分别是字符设备、块设备和网络设备。字符设备是指那些能一个字节一个字节读取数据的设备,提供连续的数据流,一般不支持随机读取,如键盘鼠标等,常见的SPI/I2C/UART默认也是字符设备。块设备与字符设备类似,一般是像磁盘一样的设备,可以访问任意位置数据,读取位置和大小由程序决定,支持随机读取。网络设备主要负责主机之间的数据交换。与字符设备和块设备完全不同,网络设备主要是面向数据包的接收和发送而设计的原创 2022-09-20 17:14:49 · 312 阅读 · 1 评论 -
static修饰局部变量和全局变量会有什么效果
静态全局变量:具有全局作用域,它与全局变量的区别在于如果程序包含多个文件的话,它作用于定义它的文件里,不能作用到其它文件里,即被 static 关键字修饰过的变量具有文件作用域。 静态局部变量:具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在。原创 2022-09-20 11:49:53 · 671 阅读 · 0 评论 -
详解:堆和栈 线程与进程 Linux驱动程序
共有5点不同:1.分配与回收机制不同,栈由系统自动分配回收,堆由程序员手动分配与回收。2.空间大小不同,堆的大小由程序员手动开辟,理论上可开辟整个虚拟内存大小,栈的大小较小,有默认上限。3.地址增长方向不同,堆地址由低地址往高地址方向增长,栈的地址由高地址向低地址方向增长。4.存放内容不同:栈存放函数返回地址,局部变量,相关参数,寄存器内容等。堆顶有一个字节的堆的大小,堆中存放的内容由程序员自己填充。5.效率不同:栈由系统自动分配,空间较小,执行效率较高。堆由程序员自己控制,分配复杂,容易产生碎片,还需程序原创 2022-09-20 11:38:57 · 1334 阅读 · 1 评论