This commit is contained in:
许大仙 2024-08-11 07:48:27 +08:00
parent 8ed231636d
commit f31c11e5b8
3 changed files with 60 additions and 2 deletions

View File

@ -550,3 +550,57 @@ int main() { // 定义主函数
### 4.2.3 注意事项
* 对于 `Java` 项目中的 `Maven``Gradle` 而言,其不仅是`项目构建工具`也是`包管理工具`。
# 第五章:附录
## 5.1 嵌入式领域中的 C 语言
### 5.1.1 概述
* C 语言在 C51、STM32 和 ARM 平台上的应用场景非常广泛,涵盖了各种嵌入式系统的开发需求。
### 5.1.2 C518051 系列微控制器)
* `背景`8051 是由 Intel 于 1980 年设计的一种 8 位微控制器架构。它具有指令集简单、结构紧凑的特点,广泛应用于低端嵌入式系统中。
* `开发工具`C51 是指针对 8051 系列微控制器的 C 语言编译器Keil C51。这种编译器将 C 语言代码编译为适合 8051 架构的汇编代码。
* `C 语言的作用`C 语言在 8051 微控制器上的应用使得开发更加高效和可维护。尽管 8051 的硬件资源有限,但 C 语言仍然能够在不损失性能的前提下提供高级编程的便利。
* `应用场景`
* **简单的控制系统**:家用电器(微波炉、洗衣机、空调)的控制板等。这些设备通常不需要复杂的运算能力,但要求可靠和稳定的控制。
* **低功耗传感器接口**C51 微控制器常用于低功耗传感器的数据采集和传输,如:温度、湿度、压力传感器。
* **工业自动化设备**:用于简单的工业自动化控制,如:小型电机驱动、工业传感器数据处理和传输。
* **电子玩具**:许多简单的电子玩具使用 8051 系列微控制器来控制声音、LED 灯光、显示屏等。
### 5.1.3 STM32STM32 系列微控制器)
* `背景`STM32 是意法半导体STMicroelectronics推出的一系列基于 ARM Cortex-M 内核的 32 位微控制器。它们广泛用于需要高性能和低功耗的嵌入式应用中,如:工业控制、消费电子和物联网设备。
* `开发工具`:开发 STM32 微控制器通常使用 Keil、IAR Embedded Workbench 或 STM32CubeIDE 等开发环境。这些环境中使用的编程语言主要是 C有时也包括 C++)。
* `C 语言的作用`C 语言在 STM32 上的应用非常广泛,开发者可以利用它直接控制硬件寄存器,同时也能方便地使用 STM32 提供的 HAL硬件抽象层库或 LL低层库进行开发。C 语言在这个平台上不仅能实现底层控制,还能编写复杂的应用逻辑。
* `应用场景`
* **物联网IoT设备**STM32 微控制器常用于各种物联网设备智能家居控制系统、环境监测设备、可穿戴设备等。这些设备通常需要低功耗和强大的处理能力并且需要支持多种通信协议Wi-Fi、Bluetooth、LoRa。
* **消费电子**:智能手表、健身追踪器、电子书阅读器、无人机等,这些设备需要具备实时处理能力、低功耗和良好的外设支持。
* **医疗设备**STM32 微控制器被广泛应用于便携式医疗设备中,如:血糖监测仪、心率监测器、便携式超声设备等,这些设备需要精确的传感器数据采集和处理。
* **工业自动化控制**PLC可编程逻辑控制器、工业机器人、伺服电机控制等STM32 能够处理复杂的控制算法和实时任务。
* **汽车电子**:用于汽车中的传感器管理、车载信息娱乐系统、车身控制系统(车窗、电动座椅调节等)。
### 5.1.3 ARM 架构(特别是 ARM Cortex 系列)
* `背景`ARM 是一种广泛使用的处理器架构特别是在嵌入式系统中ARM Cortex 系列处理器(如 Cortex-M、Cortex-R 和 Cortex-A非常流行。Cortex-M 系列主要用于微控制器Cortex-R 用于实时系统Cortex-A 则用于高性能嵌入式系统。
* `开发工具`:针对 ARM 架构的开发,常用工具包括 ARM Keil MDK、IAR、GCC for ARM 和 ARM Development Studio。这些工具均支持使用 C 语言进行开发。
* `C 语言的作用`C 语言在 ARM 架构上的应用广泛。它被用于操作系统内核(如 FreeRTOS、Zephyr、设备驱动、应用层逻辑等。在 ARM Cortex-M 和 Cortex-R 系列中C 语言的高效性和低级别硬件访问能力是开发实时、低延迟系统的关键。
* `应用场景`
* **高级嵌入式操作系统**ARM Cortex-A 系列处理器广泛用于运行 Linux、Android 等操作系统的嵌入式设备,如:智能手机、平板电脑、智能电视和车载娱乐系统。
* **实时系统**ARM Cortex-R 系列处理器用于实时系统,如:汽车的 ABS防抱死制动系统、ESC电子稳定控制系统以及航空电子设备这些系统要求极低的延迟和高可靠性。
* **高性能物联网网关**Cortex-A 系列处理器可以用来开发支持多协议、多设备管理的物联网网关,这些网关通常需要强大的计算能力和多线程处理能力。
* **边缘计算设备**在边缘计算场景中ARM Cortex-A 处理器用于执行本地数据处理和决策,如:视频分析、图像处理、语音识别等。
* **智能家居设备**ARM Cortex-M 系列微控制器广泛应用于智能家居产品,如:智能灯泡、智能音箱、家庭安全系统,这些设备需要高效的处理能力和低功耗。
* **机器人控制系统**ARM Cortex-M 和 Cortex-A 系列处理器用于机器人系统的控制和通信,如:无人机、工业机器人、服务机器人等,处理复杂的运动控制、路径规划和传感器数据融合。
### 5.1.4 总结
* C 语言在嵌入式系统开发中的应用场景非常多样化,如下所示:
* C51 微控制器适用于资源受限、需要低成本的简单控制系统。
* STM32 微控制器在物联网、消费电子、医疗设备和工业控制等领域表现出色。
* ARM Cortex 系列则适用于从实时系统到高级嵌入式操作系统的各类应用,支持从低功耗控制到高性能计算的多种需求。
* 这些应用场景展示了 C 语言在嵌入式系统中的关键角色,以及各类嵌入式平台在不同应用中的优势。

View File

@ -1467,7 +1467,7 @@ int main() {
* 之所以,加了内存地址,就能加快数据的存取速度,可以类比生活中的`字典`
* 如果没有使用`拼音查找法`或`部首查找法`,我们需要一页一页,一行一行的,在整个字典中去搜索我们想要了解的汉字。
* 如果没有使用`拼音查找法`或`部首查找法`,我们需要一页一页,一行一行的,在整个字典中去搜索我们想要了解的汉字,效率非常低(如果要搜索的汉字在最后一页,可能需要将整个字典从头到尾翻一遍)
![](./assets/32.gif)
@ -1560,6 +1560,10 @@ int main() {
}
```
> [!NOTE]
>
> 变量是对程序中数据在内存中存储空间的抽象。
## 5.3 内存中的数组
* 如果我们在代码中这么定义数组,如下所示:

View File

@ -283,7 +283,7 @@ int main() {
> * ① `变量`:命名的内存空间,用于存放各种类型的数据。
> * ② `变量名`:变量名是给内存空间取一个容易记忆的名字,方便我们编写程序。
> * ③ `变量值`:变量所对应的内存中的存储单元中存放的数据值。
> * ④ `变量的地址`:变量所对应的内存中的存储单元的内存地址,也可以称为`指针`。
> * ④ `变量的地址`:变量所对应的内存中的存储单元的内存地址(首地址),也可以称为`指针`。
>
> 总结:内存地址 = 指针。