嵌入式C教程您今天被数百家电子设备所包围,即使几十年前,从电视和DVD播放器到微波和数码相机,也会看起来不合适。我们大多数人认为这些是执行简单功能的普通设备。但是你有没有想过他们如何工作?尽可能简单,随着这些设备似乎在表面上,它们各自都有复杂的微处理器(或微控制器)在其身体内部运行。这些微处理器在请求时执行操作。类似于当您按下数码相机上的按钮拍照时,微处理器将执行捕获图像并存储它所需的功能。通过嵌入式系统软件控制,引导和监督微处理器的功能。就像您的计算机由操作系统(如Windows)控制一样,您的相机由嵌入式软件控制。嵌入式软件和嵌入式硬件形成了嵌入式系统。

嵌入式C语言是当今世界上最流行的嵌入式软件语言。大多数嵌入式软件是用嵌入式C编写的。嵌入式C与C非常相似——如果你了解C,学习嵌入式C不会有问题。这门课程可以帮助你了解微处理器环境。您将学习如何在低级汇编语言中编写嵌入式软件程序。嵌入式C进一步逐步逐步,允许您编写类似程序,适合微处理器环境。您可以参加此介绍性课程,以了解有关高级编程的更多信息。

在这个基本的嵌入式C教程中,我们将为您提供一些关于重要嵌入式编程概念的信息。我们还将展示嵌入式C与普通C不同。

嵌入式C和嵌入式编程的基本概念

嵌入式C,即使它与C相似,但嵌入式语言通常需要一种不同的思维过程来使用。嵌入式系统,如照相机或电视机顶盒,是简单的计算机,被设计用来执行单一的特定任务。它们在执行任务时也被设计成高效和廉价的。例如,他们不应该使用很多电力来运行,他们应该尽可能便宜。作为一名嵌入式系统程序员,您将有简单的硬件工作。您将只有很少的RAM、ROM和很少的处理能力和堆栈空间。您的目标是编写能够利用这种有限的处理能力以达到最大效果的程序。作为一个普通的C程序员,您没有那么多的约束。

大多数嵌入式系统使用嵌入式C作为编程语言的原因是嵌入式C处于高级语言和低级语言之间的某个位置。嵌入式C与低级汇编语言不同,它是可移植的。它可以在各种各样的处理器上运行,不管它们的架构如何。与高级语言不同,嵌入式C需要更少的资源来运行,也不那么复杂。一些专家估计,C语言的效率比像c++这样的现代语言高20%。嵌入式C的另一个优点是相对容易调试。

嵌入式C编译器

市场上有各种不同的编译器,由不同的公司制造,使用嵌入式C.一个更受欢迎的C嵌入式是Keil编译器。因此,嵌入式C也有时称为Keil C.

嵌入式C有几个关键字在C中不存在(了解有关本课程中关键字概念的更多信息)。这些关键字与微处理器所需的操作相关联。您需要熟悉所有这些都能写入嵌入式C程序。在本教程中,我们将向您展示一些常见的,如数据或IDATA,BDATA和使用:

idata /数据:数据关键字将在微处理器的内部(i)内存中存储声明的变量。看看下面的例子:

unsigned char数据a;

在这里,未签名的Char声明就像一个正常的C声明。我们刚刚添加了数据关键字,它告诉微控制器将无符号Char A存储在内部数据存储器中。

BDATA.:BDATA关键字允许您在位寻址存储器中存储声明的变量。看看这个例子:

Unsigned char bdata a;

这类似于我们在上面向您展示的数据声明。但是,您必须以不同的方式访问bdata变量。

使用:此关键字允许您通过让它访问寄存器库来执行功能。有三种可能的值:1,2和3。

使用1 {//语句} void yourfunction()

在这里,您的功能称为Quality将使用寄存器库。寄存器银行是微处理器使用的银行交换技术的一部分。这是一个先进的概念,我们在课程中更详细地介绍。

嵌入式C与常规C

虽然我们已经讨论了嵌入式C和常规C之间的主要区别,但还有另一个主要区别极大地影响了嵌入式C程序的结构,并将其与普通C程序区别开来。当你写一个常规的C程序,你从你的操作系统软件中访问它,运行它,然后,当你完成,你退出到你的操作系统(通过本课程了解更多关于编写自己的C程序的知识)。有了嵌入式C程序,你就没有操作系统可以依靠了!无论出于何种目的,您的程序都将充当嵌入式设备的操作系统。

显然,你的程序永远不会停止运行,因为这会导致它应该运行的设备崩溃。因此,每个嵌入式C程序都必须有一个结构化的循环来保持它不断地运行。您可以使用简单的for循环或while循环来实现这一点。一个普通的嵌入式C程序将遵循这种格式,例如:

Void main(){//初始化while(){//继续执行此操作}}

如您所知,每个C程序都以主要声明开头。它与嵌入式C相同。唯一的区别是必须包括无限循环,并且它将包含代码的最重要的部分。

现在,您已经熟悉了嵌入式系统编程和嵌入式C的基础知识,请继续并亲自尝试它!

c#顶级课程

面向初学者的c#。net
里克•菲利普斯
4.4 (1264)
如何在Unity中为MINECRAFT编程Voxel Worlds
Penny de byl,Penny @ holistic3d.com
4.6 (1,418)
完成C#Unity Game Developer 3D
Ben Tristem,Rick Davidson,Gamev.TV团队
4.7 (26,866)
畅销书
c#中级:类,接口和面向对象
Mosh Hamedani.
4.5 (23,157)
畅销书
RPG核心战斗创造者:学习中级Unity c#编码
Ben Tristem,Rick Davidson,Sam Pattuzzi,Gamev.TV团队
4.7 (8501)
C#高级主题:准备技术访谈
Mosh Hamedani.
4.5 (15129)
完整的c#大师级
Denis Panjuta,Tutorials.eu by Denis Panjuta
4.5 (12,065)
C#和.NET中的设计模式
Dmitri Nesteruk.
4.4 (7,122)
畅销书
使用C#和.NET学习并行编程
Dmitri Nesteruk.
4.5 (2,039)
畅销书

更多C#课程

c#的学生也会学习

赋予你的团队。引领行业。

使用Udemy for Business订阅在线课程库和数字学习工具。

请求演示