# IoT Pi 快速入门

感谢您选购了 IoT Pi,本《快速入门》将带领您熟悉 IoT Pi 的基本使用。

# IoT Pi 介绍

IoT Pi 是一块小巧的物联网开发板,开发者们通过 IoT Pi 除了可以掌握 MS-RTOS 的开发技能外,还可以学习到最前瞻的物联网开发技术。

IoT Pi 采用了主频高达 100MHz 的 Cortex-M4 处理器,拥有高达 512KB 的 FLASH 储存空间和 256KB 的 RAM 空间,保证流畅运行 MS-RTOS 和多个应用。IoT Pi板载了 EEPROM 和 SD 卡插座,可用于储存数据和与 PC 机交互文件。而板载的 Wi-Fi 模块,则能轻松实现 Wi-Fi 无线联网功能。IoT Pi 板载了三个按键和三个 LED 及一个 USB 转串口,使用 USB 线供电的同时也能与 PC 机进行串口通信。此外,IoT Pi 引出了众多的 GPIO,可以方便地与外围模块(如 SSD1306 OLED)相连,大大提升了可玩性。

IoT Pi 详细介绍 (opens new window)

avatar

# IoT Pi 开箱

拆开 IoT Pi 的快递包装后,您将看到 IoT Pi 的包装盒:

avatar

包装盒上的标签纸注明了 IoT Pi 的工作温度和电源类型,为了硬件安全,请确保通过 Micro USB 线为 IoT Pi 供应 5V 电源(如计算机的 USB 插口或充电宝),标签纸上还有一个二维码,该二维码指向了 www.edgeros.com/product/iotpi (opens new window),可用手机扫一扫快速进入 IoT Pi 产品详情页面和本快速入门指南。

打开包装盒后,您将看到有两个袋子:

avatar

其中,透明塑料袋子装的是 IoT Pi 的配件,黑色防静电袋子装的是 IoT Pi,将其全部取出,下面是全家福:

avatar

配件包括:四个塑料铜柱、两排 20PIN 的插针、一根 Micro USB 线、一根硬件调试器 SWD 接口 的 4PIN 连接线(其中黑线为 GND)。

以下是装好四个塑料铜柱的 IoT Pi 效果:

avatar

# IoT Pi 原理图

IoT Pi 原理图存放在 翼辉产品技术支持 QQ 群的共享文件夹,群号码:517107565,请加入 翼辉产品技术支持 QQ 群获取。

# IoT Studio 软件使用

开发 MS-RTOS 需要安装专用的集成开发环境 IDE —— IoT Studio,MS-RTOS 开发工具包下载 (opens new window) ,下面简述每款 MS-RTOS 开发工具的用途:

软件 介绍
IoT Studio MS-RTOS 集成开发环境(集设计、编码、调试、测试、分析功能于一体的专业集成开发环境)
MS-RTOS AutoTester 自动化测试工具(支持通过脚本对 MCU FLASH 编程,实现自动化测试)
MS-RTOS ImagePackager 镜像打包工具(可将 BOOTLOADER 镜像、OS 镜像、APP 镜像、启动参数文件等打包成一个整体镜像成于生产阶段的 MCU FLASH 烧录)
JLink Segger J-LINK 调试器的 PC 机软件
SystemView Segger SystemView 系统行为分析软件
ActivePerl MS-RTOS 开发工具依赖的 perl 脚本解析器

*.zip 扩展名的软件为绿色软件,解压缩到合适的目录后就可以使用,*.exe 扩展名的软件需要安装。

安装完成后,双击桌面的 IoT Studio 图标即可打开 IoT Studio,首次打开需要选择一个合适的文件夹作为工作空间 work space,后续新建的各类 MS-RTOS 工程都会存放在此文件夹中:

avatar

完成以上操作后,将进入 IoT Studio 的主界面:

avatar

# MS-RTOS 工程类型

通过点击 File -> New -> Project... 菜单项来新建 MS-RTOS 的各类工程:

avatar

以下是各类 MS-RTOS 工程的简介:

工程类型 介绍
MS-RTOS Base 基础工程,包含 MS-RTOS 的 SDK 和各类中间件(只能导入)
MS-RTOS Bsp 板级支持包工程
MS-RTOS Kernel Static Library 内核静态库工程,可供 Bsp 工程使用
MS-RTOS App 应用程序工程
MS-RTOS App Static Library 应用静态库工程,可供 App 工程使用
MS-RTOS Unit Test 单元测试工程(生成 App 镜像)
MS-RTOS Extension Extension 工程,类似于 App,适用于无 MMU 和 MPU 的 MCU,如 Cortex-M0

# MS-RTOS Base 工程构建

需要登录 MS-RTOS 云开发平台 (opens new window),进入 MS-RTOS 构建界面:

avatar

  • 版本选择 选择需要构建的 MS-RTOS 版本
  • 基础属性 选择 ToolchainCPU TypeFPU TypeFloat ABI Type
  • 组件选择 选择需要加入的组件,MS-RTOSlwip_net 为必选项,目前可以选择的组件如下:
组件名称 协议 介绍
MS-RTOS Commercial Micro Safe RTOS kernel
lwip_net BSD-2-Clause lwIP network library
libmsdriver BSD-3-Clause Device driver of MS-RTOS for IoT Pi
esp_at_net MIT ESP8266/32 wifi network library
fatfs BSD-2-Clause FAT file system
littlefs BSD-2-Clause ARM little file system
littlevgl MIT LittlevGL GUI
st_touchgfx SLA0044 ST TouchGFX GUI
nxp_emwin NXP NXP emWin GUI
cjson MIT Ultralightweight JSON parser
mbedtls Apache-2.0 Mbed TLS
libsddc Apache-2.0 EdgerOS Smart Device Discovery & Control protocol

IoT Pi 的 CPU 为 STM32F412,是一个 Cortex-M4 的 MCU,所以 CPU Type 需要选择为 cortex-m4FPU Type 可以选择 fpv4-sp-d16disableFloat ABI Type 可以选择 softfphard

IoT Pi 的 BSP 和 Demo 依赖于 libmsdriveresp_at_netfatfslibsddcmbedtlscjson 这几个组件,所以需要手动勾选这几个组件。

点击 开始构建 按钮将开始 MS-RTOS 的构建,构建完成后,点击 下载 SDK 按钮,浏览器将下载 msrtos_sdk.zip,下载完毕后请将该压缩包解压到工作空间文件夹内:

avatar

回到 IoT Stduio 里,点击 File -> Import... 菜单项,打开工程导入对话框,选择 MS-RTOS Projects 工程类型, 勾选 msrtos_base_sdk 工程,点击 Finish 按钮完成导入:

avatar

IoT Studio 会先从 MS-RTOS 的 gitee 站点 (opens new window)github 站点 (opens new window) 下载组件。

avatar

待下载完毕后,选中 msrtos_base_sdk 工程,点击鼠标右键,点击弹出的快捷菜单中的 Poperties 菜单项,将弹出 msrtos_base_sdk 工程属性配置对话框,选择 MS-RTOS Setting 类,将 Debug Level 修改为 debug,最后点击 OK 按钮:

avatar

点击 Build Project 按钮开始 MS-RTOS 的构建:

avatar

# MS-RTOS helloworld 工程构建

点击 File -> New -> MS-RTOS App 菜单项,打开新建 APP 向导对话框,输入工程名 helloworld

avatar

点击 Next 按钮,选择 msrtos_base_sdk 工程作为 helloworld 工程的 MS-RTOS Base Project,Debug Level 选择 debug,最后点击 Finish 按钮:

avatar

新建完毕后,就可以选中 helloworld 工程,点击 Build Project 按钮开始 helloworld 工程的构建:

avatar

# IoT Pi BSP 工程构建

进入工作空间所在的文件夹,使用 git 工具下载 https://github.com/ms-rtos/bspstm32f4xx.git

git clone https://github.com/ms-rtos/bspstm32f4xx.git

下载完毕后,回到 IoT Studio 里,点击 File -> Import... 菜单项,打开工程导入对话框,选择 MS-RTOS Projects 工程类型, 勾选 bspstm32f4xx 工程,点击 Finish 按钮完成导入:

avatar

选中 bspstm32f4xx 工程,点击鼠标右键,点击弹出的快捷菜单中的 Poperties 菜单项,将弹出 bspstm32f4xx 工程属性配置对话框,选择 MS-RTOS Setting 类,选择 workspacemsrtos_base_sdk 工程作为 bspstm32f4xx 工程的 MS-RTOS Base Project,Debug Level 选择 debug,最后点击 OK 按钮:

avatar

选中 bspstm32f4xx 工程,点击 Build Project 按钮开始 bspstm32f4xx 工程的构建:

avatar

# IoT Pi BSP 镜像和 helloworld 镜像烧写

使用 Micro USB 线连接 IoT Pi 到计算机的 USB 插口,使用 SWD 连接线(其中黑线为 GND)连接 IoT Pi 到 J-LINK 调试器,同时将 J-LINK 调试器连接到计算机,如下所示:

avatar

打开 MS-RTOS Auto Tester 工具,Device 选择 STM32F413RG,然后点击 Connect 按钮,调试器将连接 IoT Pi:

avatar

点击 Erase 按钮擦除芯片 FLASH。

点击 Image 右边的 Select 按钮选择 bspstm32f4xx 工程编译生成的 bspiotpi.bin 镜像,Flash Address 设置为 0x08000000,然后点击 Download 按钮烧写 BSP 镜像到 FLASH 0x08000000 地址处。

点击 Image 右边的 Select 按钮选择 helloworld 工程编译生成的 helloworld.bin 镜像,Flash Address 设置为 0x08040000,然后点击 Download 按钮 helloworld 镜像到 FLASH 0x08040000 地址处。

点击 Go 按钮,IoT Pi 的 CPU 将开始运行,MS-RTOS Auto Tester 的 shell 终端将通过调试器连接到 MS-RTOS 的 shell 服务:

avatar

MS-RTOS 启动后,会自动运行 FLASH 0x08040000 地址处的 helloworld 应用程序。

您可以在两个 Input 输入框输入 shell 命令,输入回车将发送命令并清除 Input 输入框,点击右边的 Send 按钮也会发送命令,但 Input 输入框内容会予以保留。

# IoT Pi BSP 调试

使用 Micro USB 线连接 IoT Pi 到计算机的 USB 插口,使用 SWD 连接线(其中黑线为 GND)连接 IoT Pi 到 J-LINK 调试器,同时将 J-LINK 调试器连接到计算机,如下所示:

avatar

# 新建 BSP 调试实例

选中需要调试的 BSP 工程,点击鼠标右键,在弹出的快捷菜单中,选择 Debug As -> Debug Configurations... 菜单项,打开调试配置对话框,双击 GDB SEGGER J-Link Debugging.. ,新建一个 BSP 调试实例:

avatar

# 配置 BSP 调试实例

Main 选项卡页面,配置如下内容:

  • 点击 Project 右侧的 Browse... 按钮选择需要调试的工程。
  • 点击 C/C++ Application 右侧的 Browse... 按钮选择需要调试的 ELF 文件,如 Debug/bspiotpi.elf

Debugger 选项卡页面,配置如下内容:

  • 点击 Executable path 右侧的 Browse... 按钮选择 JLinkGDBServerCL.exe 的文件路径,如D:\Work\MS-RTOS\JLink\JLinkGDBServerCL.exe
  • Device name 输入被调试的芯片名称,如 STM32F413RG

avatar

其它配置项保持默认设置即可,点击 Apply 按钮保存配置,然后点击 Debug 按钮开始调试。

当 BSP 镜像下载完毕后,会在 bsp_init 函数停下。IoT Studio 内建的 Terminal 终端将会自动连接到 MS-RTOS 的 shell,接下来就可以正式开始调试。

avatar

# helloworld 调试

# 新建 APP 调试实例

选中需要调试的 APP 工程,点击鼠标右键,在弹出的快捷菜单中,选择 Debug As -> Debug Configurations... 菜单项,打开调试配置对话框,双击 GDB MS-RTOS Application Debugging..,新建一个 APP 调试实例:

avatar

# 配置 APP 调试实例

Main 选项卡页面,配置如下内容:

  • 点击 Project 右侧的 Browse... 按钮选择需要调试的工程,如 helloworld 工程。
  • 点击 C/C++ Application 右侧的 Browse... 按钮选择需要调试的 ELF 文件,如 Debug/helloworld

Debugger 选项卡页面,配置如下内容:

  • 点击 Executable path 右侧的 Browse... 按钮选择 JLinkGDBServerCL.exe 的文件路径,如D:\Work\MS-RTOS\JLink\JLinkGDBServerCL.exe
  • Device name 输入被调试的芯片名称,如 STM32F413RG

avatar

Startup 选项卡页面,配置如下内容:

  • Application address(hex) 输出框输入烧写应用程序镜像的 FLASH 地址,如 8040000

avatar

其它配置项保持默认设置或根据实际需求进行调整,如将 Memory size(KB) 修改成 128,将 Stack size 修改成 8192 等等,最后点击 Apply 按钮进行保存,然后点击 Debug 按钮开始调试。

当 APP 镜像下载完毕后,会在 main 函数停下来。IoT Studio 内建的 Terminal 终端将会自动连接到 MS-RTOS 的 shell 服务,接下来就可以正式开始调试。

avatar

# IoT Pi 例程下载和构建

进入工作空间所在的文件夹,使用 git 工具下载 https://github.com/ms-rtos/iotpi_demos.git

git clone https://github.com/ms-rtos/iotpi_demos.git

下载完毕后,回到 IoT Studio 里,点击 File -> Import... 菜单项,打开工程导入对话框,选择 MS-RTOS Projects 工程类型, 勾选所有 demo 工程,点击 Finish 按钮完成导入:

avatar

选中任意一个 demo 工程,点击 Build Project 按钮开始该 demo 工程的构建:

avatar

编译完成后,可以使用 MS-RTOS Auto Tester 工具烧录生成的 demo 镜像到 FLASH 0x08040000 地址处,点击 Go 按钮或对 IoT Pi 进行复位,IoT Pi 的 CPU 将开始运行,MS-RTOS 启动后,会自动运行 FLASH 0x08040000 地址处的 demo 应用程序。