
BES代码主要架构笔记.docx
5星
- 浏览量: 0
- 大小:None
- 文件类型:DOCX
简介:
该文档记录了BES系统的代码主要架构设计思路和关键组件说明,适用于开发人员学习系统内部结构和进行相关技术研究。
BES代码主架构笔记
本段落将探讨BES2300代码的总体设计结构,包括RTX内核与CMSIS_RTOS API的应用、线程创建及模块化开发的设计。
1. RTX 内核与 CMSIS_RTOS API 使用
在BES中采用的是RTX实时操作系统,并且使用了ARM官方推荐的CMSIS_RTOS接口。这样做的优点是便于更换不同的内核,从而简化代码移植过程。初始化操作通过位于RTX_CM_LIB.H文件中的_main_init()函数完成,该函数负责设置堆栈并创建主线程main,最后启动RTOS。
2. 程序入口及线程生成
程序的执行始于RTX_CM_LIB.H里的_main_init()函数,并在此之后开始运行主任务。在Main.cpp中可以找到整个应用的核心代码。CMSIS_RTOS API中的osThreadDef宏被用来定义新创建线程的各项参数。
3. 线程创建与 osThreadDef 宏
osThreadDef是一个用于初始化线程配置信息的结构体变量,通过它能够设定诸如名称、优先级和堆栈大小等重要属性。接着使用osThread宏获取这些设置,并作为参数传递给osThreadCreate()来生成新的工作线程。
4. app_thread 线程与模块设计
app_thread是系统的核心组件之一,负责管理和扩展各个应用模块的功能。它在app_thread.c文件中的app_os_init()函数中被创建,并由main或app_init()调用执行。此线程将是后续开发过程中添加新功能的主要平台。
5. 模块实现与驱动层交互
在app_thread线程内部,可以看到详细的模块设计及其实现方法。通过不断查询邮件队列(使用app_mailbox_get()),并将结果传递给mod_handler[]数组来处理不同类型的请求或事件。mod_handler[]是一个函数指针集合,用于指定每个子系统的回调机制。
6. app_set_threadhandle 函数与模块架构
该函数负责注册各模块的事件处理器接口。通过查看其声明及调用点可以帮助理解整个应用框架以及驱动层的具体使用方式。
7. 电池管理模块及其驱动程序交互
详细解释了如何实现battery功能,包括读取当前电量并通过BLE发送到手机的操作流程。同时展示了与底层硬件通信的相关代码片段。
8. 定时器配置及驱动层调用示例
文中还介绍了定时器的设置方法以及相关的驱动函数使用案例。这些操作均遵循CMSIS_RTOS API规范进行,旨在展示RTOS在实际项目中的应用效果。
综上所述,本段落全面概述了BES2300代码的主要架构特点、关键组件及其相互之间的协作方式,并特别强调了RTX内核与CMSIS_RTOS接口的重要性以及模块化开发策略的有效性。
全部评论 (0)


