应用编程与裸机编程、驱动编程有什么区别?
51、
STM32 这类单片机的软件开发通常是裸机程序开发,并不会涉及到操作系统的概念,
那应用编程与裸机编程以及驱动开发有什么区别呢? 就拿嵌入式 Linux 硬件平台下的软件开发来说,我们大可将编程分为三种,分别为
裸机编程,
Linux
驱动编程以及
Linux
应用编程。
首先对于裸机编程这个概念来说很好理解,一般把没有操作系统支持的编程环境称为裸机编程环境,譬如单片机上的编程开发,编写直接在硬件上运行的程序,没有操作系统支持;
狭义上 Linux 驱动编程指的是基于内核驱动框架开发驱动程序,驱动开发工程师通过调用
Linux
内核提供的接口完成设备驱动的注册,驱动程序负责底层硬件操作相关逻辑,如果学习过 Linux
驱动开发的读者,想必对此并不陌生;
而 Linux 应用编程(系统编程)则指的是基于
Linux
操作系统的应用编程,在应用程序中通过调用系统调用 API
完成应用程序的功能和逻辑,应用程序运行于操作系统之上。通常在操作系统下有两种不同的状态:内核态和用户态,应用程序运行在用户态、而内核则运行在内核态。
参考资料:
www.alientek.com