之前的章节都是针对某个或某些知识点进行的专项讲解,重点在功能和代码解释。
回到最初开始学μC/OS-III系统时,当时就定下了一个目标,不仅要读懂,还要读透,改造成更适合中国宝宝体质的使用方式。在学完野火的教程后,经过几经思考,最后决定自己锦上添花,再续上几章。
这几章想达成目的如下:
- 能够快速的上手
- 能够控制系统的功能
- 明白移植的过程
- 能够根据需要的功能来裁剪源码
从第六十一章开始的章节都是熟读源码后,根据笔者的整理方法,按照某种逻辑从系统源码中抽出来的专项解释。
笔者整理方法如下
- 各文件夹功能介绍(每个文件夹放什么文件,哪些是移植的,哪些不需要改,哪些需要修改)
- 各文件功能概览(每个文件都明白有哪些东西,是系统的哪一部分)
- 各文件函数概览(每个文件的有什么函数,函数的作用是什么,形参是什么)
- 移植的本质与移植的顺序(哪些文件需要了解,哪些文件是移植的时候需要更换的)
- 添加与裁剪源码(添功能与删功能怎么上手)
- 常用的结构体列表
- 常用宏介绍(如何用宏来控制整个系统,启用或关闭某个功能)
- main函数常用的结构顺序
- 创建任务的流程
- 任务在几种队列的变化
每个整理方法会用一章或多章的篇幅来解释。
点击此处进入μC/OS-iii章节总目录
2024.04.19:UCOSIII第四十七节:各文件夹功能介绍
- 六十一、UCOSIII:各文件夹功能介绍
- 1、文件夹介绍
- 2、文件夹示意
- Doc
- Libraries
- CMSIS
- startup
- FWlib
- inc
- src
- Project
- User
- APP
- BSP
- uC-CPU
- uC-LIB
- uCOS-III
- Ports
- Source
六十一、UCOSIII:各文件夹功能介绍
1、文件夹介绍
文件夹名称 | 子文件夹名称 | 孙文件夹名称 | 文件夹解释 | 文件夹类型 |
---|---|---|---|---|
Doc | - | - | 用于存放对整个工程的说明文件,如readme.txt。 通常情况下,我们都要对整个工程实现的功能、如何编译、如何使用等做一个简要的说明 | 需自己编写 |
Libraries | CMSIS | - | CMSIS(Cortex Microcontroller Software Interface Standard)是ARM公司提供的一套软件接口标准,旨在提高基于ARM Cortex-M处理器的微控制器软件的可移植性和可重用性。 CMSIS定义了一系列通用的API,涵盖了Cortex-M处理器的核心功能,包括处理器控制、中断处理、时钟管理、内存访问和外设驱动等。 CMSIS的目标是使开发者能够更容易地编写跨平台、可移植的嵌入式软件。 | 移植 |
Libraries | CMSIS | startup | CMSIS中的startup文件夹通常包含针对特定处理器的启动代码(startup code)。 启动代码是在嵌入式系统上电或复位时首先执行的代码,它负责初始化处理器、配置系统时钟、设置堆栈和调用主函数等操作,为应用程序的正常运行做准备。 具体来说,startup文件夹中的启动代码通常包括以下内容: 向量表(Vector Table)的定义:处理器启动时,需要知道如何处理各种异常和中断。向量表就是一个包含处理器中断向量地址的数组,启动代码会将这些中断处理函数的地址放在向量表中。 处理器初始化:启动代码会对处理器进行基本的初始化,包括设置堆栈指针、初始化处理器的寄存器、配置时钟和系统时钟源等。 C运行时环境的设置:启动代码会对C语言的运行时环境进行设置,包括初始化全局变量、清零未初始化的变量(BSS段)、调用C库的初始化函数等。 调用主函数:最后,启动代码会调用主函数(例如main()函数),使得程序开始执行应用程序的逻辑。 总的来说,startup文件夹中的启动代码是嵌入式系统启动的关键部分,它确保系统能够正确地初始化并执行应用程序。 | 移植 |
Libraries | FWlib | - | FWlib指的是Firmware Library,即固件库,是一种用于嵌入式系统开发的软件库。 FWlib通常由芯片厂商或者第三方提供,旨在简化嵌入式软件开发过程,提供了一系列针对特定硬件平台的函数和驱动程序,包括处理器的初始化、外设的配置和控制、各种通信接口的操作等。 FWlib能够帮助开发者快速编写嵌入式软件,降低开发难度和提高开发效率。 | 移植 |
Project | - | - | 用于存放新建的工程文件 | KEIL自动生成 |
User | - | - | ||
User | APP | - | 用于存放用户程序,如app.c,main()函数就放在app.c文件中 用户可以通过操控这个文件夹的文件来控制整个系统 | 需自己编写 |
User | BSP | - | BSP是板级支持包,(board support package)是介于主板硬件和操作系统之间的一层,是属于操作系统的一部分。 主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。 | 编写 修改 移植 |
User | uC-CPU | - | 这些文件的作用在于提供对底层硬件的支持和抽象,使得 UC/OS-III 内核能够在不同的处理器平台上运行,并且能够与特定的硬件架构进行交互。 | 移植 |
User | uC-LIB | - | 这些文件通常是 Micrium OS (UC/OS-III) 提供的库文件,用于提供一些常用的功能,如ASCII字符处理、数学计算、内存操作和字符串处理等。 这些文件的功能是为了提供一些常用的工具函数,使得开发者可以更方便地进行字符处理、数学计算、内存操作和字符串处理等操作,而无需自己实现这些功能。这样可以减少重复的工作量,并提高代码的可读性和可维护性。 | 移植 |
User | uCOS-III | - | ||
User | uCOS-III | Ports | 这些文件共同用于 UC/OS-III 内核在特定的 CPU 架构上运行,并提供了对底层硬件的支持和抽象。它们直接影响着操作系统的性能和可移植性,为 UC/OS-III 内核的正确运行提供了必要的底层支持。 | 移植 |
User | uCOS-III | Source | 这些文件通常是 Micrium OS (UC/OS-III) 内核的核心文件,提供了操作系统的各种基本功能和特性。 | 移植 根据需要修改 |
2、文件夹示意
Doc
其他的记录文件,过程文件,报告文件都可以放在这个文件夹