Linux设备驱动程序概述

设备驱动程序概述


linux控制硬件与在单片机中控制硬件的区别

先来看一下在stm32单片机程序中如何点亮LED灯

Linux设备驱动程序概述_第1张图片

可以看到stm32单片机驱动LED的程序非常简单,在main函数中直接调用HAL库,本质就是操作寄存器控制硬件引脚输出。程序可以直接操作寄存器从而控制LED。

在Linux系统中,应用程序时无法直接操作寄存器的,只有设备驱动程序才能操作寄存器。

Linux设备驱动程序概述_第2张图片

应用程序要操作硬件,只能通过调用驱动程序去操作。

在单片机中没有应用程序、驱动程序,这样的概念。

在linux中,应用程序是完成某项或多项特定工作的计算机软件,工作在用户空间。设备驱动程序是专用于控制和管理特定硬件设备的软件,工作于内核空间。


用户空间与内核空间

Linux设备驱动程序概述_第3张图片

内核空间和用户空间分离。

用户空间与内核空间的概念比较抽象,其实就是内存访问权限不一样。可以认为,内核是有特权的,而用户程序是受限制的。

内核模式下,CPU可以访问整个内存。

用户模式下,CPU只能访问标有用户空间访

你可能感兴趣的:(嵌入式Linux驱动开发,linux)