开发者学堂课程【HaaS 物联网应用开发课程:AliOS Things 目录结构】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/801/detail/13823
AliOS Things 目录结构
内容介绍
一、根目录
二、Application - 应用
三、Components - 组件
四、Components
五、Core - 内核及基础组件
六、Platform-平台相关
一、根目录
AliOS Things 里面的一级目录以及重要二级目录的集合,AliOS Things 里面存放的是应用程序相关的示例代码,build里面存放的是构建系统相关的工具以及脚本,components 里面放的是操作系统的各种功能组件,其中dm 是存放设备管理相关的组件,linkkit 是阿里云 IOT 连接套件(配套源码),AliOS Things 操作系统就是通过 linkkit 这个组件连接到阿里云物联网平台的,network 包含了 IP 网络协议栈等相关组件,security 里面存放了各类安全组件,core 是 AliOS 内核以及一些基础组件的集合,include 是组件对外的头文件,platform 里面存放着 BSP 相关的代码,其中包含了芯片架构适配、板级支持、MCU、SoC 芯片级别的支持,projects 则是为不同开发环境提供的工程相关文件。
二、Application-应用
Application 这个目录总共有三级。
1、app_adapter 是 APP 的应用框架,如果要新建应用可以参考这个 APP 里面的写法。
2、Example 这是一些示例代码,AliOS Things 官方提供的示例代码,edu_demo 是 HaaS EDU 工程级案例代码相关的目录,HaaS EDU 相关的案例和代码都放在这个目录下面,amp_app 是轻应用的示例代码,flower_demo 是养花的案例,helloworld_demo 是经典的helloworld案例,http_demo 和 http2_demo 是 http 和 http2 的组件使用案例,linkkit_demo 是 linkkit 连接云平台的案例,lora_demo 是 lora 组件的案例,modbus_demo、mqtt_demo、oled_display_demo 以及 rfid_demo 分别对应的是 modbus 组件使用案例、mqtt 组件使用案例、oled 显示案例以及 RFID 读卡器 demo。
3、Miniapp 是小程序的示例。
三、Components-组件
Components 目录下面的组件非常多。
amp 是轻应用的框架。bus 里面存放的是各种总线类型的协议组件,比如 CANOPEN 总线组件、USB 组件都是在Bus 这个目录下面。dm 是设备管理相关的组件,它里面有 ota 在线升级功能、uagent 在线诊断代理功能、log 日志管理功能以及und 网络文件系统功能。fs 是各种文件系统的组件,这里面包含了非常多的文件系统。gui 是各种图形用户界面组件。Language 里面存放的是多语言支持,比如 JavaScript 语言、microPython 语言等。
Linkkit 则是连接阿里云平台 SDK。 Network 是网络管理组件,像 coap 、http , httpdns 是防 DNS 劫持功能的组件,libsrtp 是 Security Real-Time Transport 协议,lwip 是听得比较多的轻量级 tcp/ip 协议栈,netmgr 是网络管理组件,包括 rtp 、sal ,sntp 是简单网络时间协议 ,用于网络对时。Peripherals 是存放各种外设组件的驱动,i2c_muxer 是 i2c 扩展器外设驱动,lcd 是 LCD 显示相关组件,rtc 是 RTC 组件驱动,sensor 里面包含了各种各样的传感驱动,这里面有非常非常多的 sensor,如果你想外接一个传感器,可以想来这里找一下你想要外接的那个传感器的驱动。
四、Components
Security 里面存放的是阿里云安全组件集合以及 mbedtls 加解密组件。Service 里面主要存放了三个,神经网络组件、传感器框架以及位置服务中间件。 utility 下面存放了各种公共组件,像 SDL2:Simple DirectMedia Layer 组件、AT 指令组件、json 解释器以及日志级问题分析工具组件,yloop 是事件驱动模型组件,zlib 是压缩工具组件。Wireless 下面存放的主要是 Bluetooth:BT/BLE/mesh 协议栈以及 LoRa 协议栈。
五、Core-内核及基础组件
Cplusplus 是 cpp 的支持。Debug 是调试功能。Init 是内核初始化相关的功能。
Kv 是 key-value 存储组件。Libc 是 C 库 。mbins 是多 BIN 相关的支持,因为 AliOS Things 是支持多 BIN 的,有一些功能是在 mbins 这个目录下面的。
Mk 是用户态应用程序相关的组件。nftl 是 Nand Flash Translation Layer 的缩写,它是文件系统中会用到的一个组件。osal 是系统操作层的一些 API。pwrmgmt 是电源管理模块。Rbtree 是红黑树的库。Rhino 是 AliOS Things 内核的实现层。Vfs 则是虚拟文件系统的实现。
六、Platform-平台相关
Platform 是平台相关目录,里面最重要的有三个目录。
1、Arch 里面存放的是芯片架构相关的实现代码,因为 arch 支持很多体系结构,像 ARM 体系结构、C-SKY 系列IP核、MIPS 体系结构、RISC-V 体系结构都是在 arch 这个目录下面的。
2、Board 里面存放着各种各样的 board,比如,haas100、haas101、haasedk1 这些版级的驱动都是在 board 这个目录下面。
3、Mcu 则是跟芯片相关的,像 haas1000 就是在 mcu 这个目录下。




