# 如何搭建开发环境?
本文介绍如何将第一个 mxos 应用程序跑起来。即:如何借助 mxos-cube 工具 和 VScode 进行 mxos 应用程序:Helloworld 工程获取,编译,下载,运行与调试。
#硬件清单
原 MiCOKit 或者 最新 MXKit 开发板 1 套。(本文以 MXKit-3080为例,新的开发板详细信息可参考:MXKit 开发套件、EXT-AT3080 开发板、AZ3166。
JLink V8或V9, 或 STlink 仿真器 1 套。(JLink 支持 mxos 所有硬件平台,STlink 仅支持模块:EMW3162,3165,3166 和 3239)
Micro-USB 连接线 1 根。(用于查看调试UART串口 log 信息)
USB转UART 串口模块 1 个。(用于查看用户UART串口 log 信息)
#硬件连接
连接调试串口: 将 MXKit- 3080 开发板通过 Micro-USB 线连接至 PC,以为开发板提供电源和连接调试串口,即:
用户PC端USB口 ————> Micro USB 串口线 ————> 开发板
连接仿真器:将开发板的 JTAG 口通过 JLink 或 STLink (仅针对 ST 芯片) 仿真器,连接至 PC,即:
用户PC端USB口 —————> USB线 —————> 仿真器 —————> JTAG 排线 —————> 开发板
连接USB转串口模块: 若需要 查看用户串口 log,需将 PC 端通过USB转串口模块,连接到开发板的用户串口管脚,即:
用户PC端USB口 —————> USB转串口模块 ————> TX,RX串口线 ————> 开发板
#硬件连接示例
首先,您需要拥有一个模块可以正常运行的硬件环境,可以是以下任意一种:
MiCOKit或MXKit-xxxx 开发板,其中:
目前MiCOKit支持模块包括:EMW3165,3166,3239,3031,3081。
MXKit支持模块包括:EMW3080,3060,110,3090,3290,3070,3072。
或您自己搭建的 EMWxxx 模块最小工作电路(至少包括:电源,串口,和复位按键功能。若需通过串口烧录,还需解出boot模式状态键:BOOT,Status两个)。
连线图及端口示意如下:
#MiCOKit-xxx连接示例
设备管理器中的端口如下:
2)如果是MXKit-xxx,用户串口和调试串口二合一(注意:RXD和TXD的短接头要插上。)
设备管理器中的端口如下:
注意:
若要使用MXKit开发板的 Arduino的用户串口,需要将RXD和TXD的短接头拔掉,且需连接ttl转usb小板,具体用法和端口号显示可参考MiCOKit。
#最小工作电路连接示例
如果是裸模组请自行飞线,示例如下:
模组TX -> MCU的RX
模组RX -> MCU的TX
具体型号模块的串口管脚分配情况如表:
型号 | Bootloader MFG产测信息 | AT指令及透传 | 正常工作log CLI调试命令 |
EMW3031 | Pin9,Pin10,921600bps | Pin9, Pin10, 115200bps | Pin21Pin22,115200bps |
EMW3060 | Pin9,Pin10,921600bps | Pin9, Pin10, 115200bps | Pin21Pin22,115200bps |
EMW3080 | Pin9,Pin10,921600bps | Pin9, Pin10, 115200bps | Pin21Pin22,115200bps |
EMW3162 | Pin22,Pin23,921600bps | Pin22,Pin23,115200bps | Pin14Pin4,115200bps |
EMW3165 | Pin29,Pin30,921600bps | Pin29,Pin30,115200bps | Pin8Pin12,115200bps |
EMW3166 | Pin29,Pin30,921600bps | Pin29,Pin30,115200bps | Pin8Pin12,115200bps |
EMW3239 | Pin29,Pin30,921600bps | Pin29,Pin30,115200bps | Pin8Pin12,115200bps |
#编译环境快速搭建****
#安装 Python
- Python - mxos cube 是一个Python脚本,所以您需要在系统中安装Python。mxos bube 在Python version 2.7.13 (opens new window) 下开发和测试. 不兼容Python 3。 注意: Python的可执行文件目录(
Python
)需要添加到系统的PATH环境变量中,在Python安装时指定。 在终端上输入python
命令来验证Python是否正确安装:
$ python --version Python 2.7.13
#安装 Git
Git or Mercurial - mxos cube支持Git和Mercurial两种, 任选其一安装即可:
- Git (opens new window) - 版本 1.9.5 及以上。
- Mercurial (opens new window) - 版本 2.2.2 及以上。 注意: Git和Mercurial的可执行文件目录需要添加到系统的PATH环境变量中。 在终端上输入
git
命令来验证Git是否正确安装:
git --version git version 2.11.0 (Apple Git-81)
#安装 mxos cube
您可以从执行 pip install mxos-cube
命令来安装 mxos cube:
$ pip install mxos-cube Collecting mxos-cube Downloading https://files.pythonhosted.org/packages/53/3a/71fe1e6d4685e639d195dfcfcc050e4b5d672760668fa35ea0bc7b3d1488/mxos_cube-0.1.0-py2-none-any.whl Installing collected packages: mxos-cube Successfully installed mxos-cube-0.1.0
在 Linux 和 macOS 上, 需要加上 sudo
获得安装权限.
小窍门: 使用mxos --help可以列出所有mxos cube所支持的指令,特定某一个指令的帮助可以使用mxos --help。
更多mxos cube详细介绍。
#下载 MiCoder Toolchain 工具包
- MiCoder - mxos cube 调用 mxos OS 中的脚本来完成诸如编译,下载,调试等各项功能. 这些脚本的运行需要用到MiCoder 工具链,它包含了编译 mxos 应用程序所需要的工具链,根据各个 PC 平台提供相应版本。
#配置 MiCoder 路径
MiCoder Toolchain下载后,你需要为 mxos cube 设置 MiCoder 工具链的路径,以便mxos cube调用这些工具来编译mxos项目。 你可以通过以下命令来设置 MiCoder 的路径(注意:路径中不可以包含空格,否则路径无效):
$ mxos config --global MICODER /Users/haiqin/jenny_tools/MiCoder [mxos] /Users/haiqin/jenny_tools/MiCoder now set as default MICODER in program "demos"
-G
或 --global
开关可以让mxos Cube设置一个全局的参数,而不是针对当前项目的私有参数。
PS: windows环境下斜杠是“/”,与windows文件路径默认的分割符方向相反。
你可以通过下面的命令查看 MiCoder 的配置路径:
$ cd /Users/haiqin/jenny_git/test/demos $ mxos config --list [mxos] Global config: MICODER=/Users/haiqin/jenny_tools/MiCoder [mxos] Local config (/Users/haiqin/jenny_git/test/demos): MICODER=/Users/haiqin/jenny_tools/MiCoder
#导入项目
首先,您需要从mxos仓库中导入一个项目。 在终端中输入命令:
mxos import demos
Tips: 若需要看到详细的项目导入过程 log 信息,可以在指令中加入 -v -vv 后缀,形如:
$ mxos import demos -v -vv
也可以写成:mxos import https://code.aliyun.com/mxos/demos.git
代码获取到本地后,切换至当前工程目录:
cd demos
demos 中包含了各单个功能的示例代码,如:os内核,hardware外设,wifi无线,wifi_uart串口透传,安全算法,net网络通信,http通信等,可以满足开发者正常的二次开发。
#命令行编译下载
#编译
命令终端输入 mxos cube 编译命令:
mxos make demos.helloworld@emw3080 total
#下载
命令终端输入 mxos-cube 下载命令:
mxos make demos.helloworld@emw3080 total download JTAG=jlink_swd
下载过程需要几秒钟左右。
如果是第一次下载固件,可在编译命令中使用 total ,即包含 bootloader 工程一起编译, 下载命令中也使用 total,即全片固件下载,包含:bootloader,app 和 射频固件。
#应用程序代码
#include "mxos.h" #define os_helloworld_log(format, ...) custom_log("helloworld", format, ##__VA_ARGS__) int application_start( void ) { /* Start mxos system functions according to mxos_config.h*/ mxos_system_init( mxos_system_context_init( 0 ) ); /* Output on debug serial port */ os_helloworld_log( "Hello world!" ); /* Trigger mxos system led available on most mxosKit */ while(1) { mxosGpioOutputTrigger( mxos_SYS_LED ); mxos_thread_sleep(1); } }