《密码技术与物联网安全:mbedtls开发实战》 —2.8 Zephyr 应用示例开发
2.8 Zephyr 应用示例开发
完成Zephyr开发环境的构建工作之后,本节通过一个随机数示例说明开发Zephyr应用的基本步骤。随机数是物联网应用的重要组成部分,公钥密码、数字签名和TLS/DTLS部分均与随机数相关。Zephyr应用示例结构如下:
# 进入示例路径
$ cd 02_start/zephyr/random
# 查看示例文件结构
$ tree -L 2
├── CMakeLists.txt
├── prj.conf
└── src
└── main.c
随机数示例相关文件及其描述如表2-6所示。
表2-6 Zephyr随机数示例相关文件描述
2.8.1 编写 CMakeLists.txt
此处CMakeLists.txt文件是一个非常好用的Zephyr模板文件,只需简单的修改便可适配其他的Zephyr应用。该文件的具体内容如下:
cmake_minimum_required(VERSION 3.8.2)
include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
project(NONE)
FILE(GLOB app_sources src/*.c)
target_sources(app PRIVATE ${app_sources})
在CMakeLists.txt文件中,通过include指令引入一个构建脚本boilerplate.cmake。为了能够正确地找到boilerplate.cmake脚本,CMake构建脚本通过环境变量中的ZEPHYR_BASE变量获取Zephyr源代码的安装路径,只有ZEPHYR_BASE环境变量设置正确才可以顺利载入boilerplate.cmake脚本。再通过FILE命令把src文件夹中的所有C文件复制到CMake内部变量app_sources中。最后,通过target_sources指令引入依赖的C文件,构建名为app的可执行固件。boilerplate.cmake较为复杂,它包含了很多CMake技巧,但其具体内容已经超出了本书的讨论范围。
- 点赞
- 收藏
- 关注作者
评论(0)