1、编译环境安装
1.1、Linux环境安装
Linux下AliOS-Things开发环境的搭建主要分为两部分:python和pip安装、基于pip安装aos-cube及相关的依赖包。
# 安装python、pip和git
$ sudo apt-get install -y python python-pip git
# 完成python和pip安装后,再安装依赖库和aos-cube,步骤如下:
$ python -m pip install setuptools wheel aos-cube
如果在安装过程中遇到网络问题,可使用国内镜像。
### 安装/升级 pip
$ python -m pip install --trusted-host=mirrors.aliyun.com -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pip
### 基于pip依次安装第三方包和aos-cube
$ pip install --trusted-host=mirrors.aliyun.com -i https://mirrors.aliyun.com/pypi/simple/ setuptools
$ pip install --trusted-host=mirrors.aliyun.com -i https://mirrors.aliyun.com/pypi/simple/ wheel
$ pip install --trusted-host=mirrors.aliyun.com -i https://mirrors.aliyun.com/pypi/simple/ aos-cube
### 如需要使用doubanio作备用源
$ pip install --trusted-host pypi.doubanio.com -i http://pypi.doubanio.com/simple/ aos-cube
### 如需指定版本,可改成如aos-cube==0.2.50
安装完成以后,使用aos --version,查看是否安装成功。
如果显示版本号,如“0.5.11”,则表明安装成功;
如果显示“command not found: aos”,则查看aos-cube的安装路径,并将对应的路径添加到环境变量PATH里。
# 查找aos-cube安装路径
$ find ~ -name aos-cube
/home/hongye.jhy/.local/bin
# 将python包的安装路径添加到环境变量PATH里。如果使用的是zsh,则更新~/.zshrc;如果使用的是bash,则更新~/.bashrc
$ echo "export PATH=/home/hongye.jhy/.local/bin/:$PATH" >> ~/.bashrc
# 更新配置
$ source ~/.bashrc
因涉及多种开发环境和具体版本的依赖,针对开发者的实际情况,还给出一种简单方便且不影响当前系统环境的方法----基于虚拟环境virtualenv的方法,作为备用。
python和python-pip安装完成后,再执行以下步骤:
# pip 安装 virtualenv, 如安装成功,可以在pip list查看版本
$ python -m pip install virtualenv
# 如遇网络问题,可使用阿里云镜像
$ pip install --trusted-host=mirrors.aliyun.com -i https://mirrors.aliyun.com/pypi/simple/ virtualenv
# 建立虚拟环境,如安装到~/venv(可更改)
$ virtualenv ~/venv --no-download
# 启动虚拟环境,下面执行使用 '.'
$ . ~/venv/bin/activate
# 安装 aos-cube和必要的依赖包
$ `请参考上文aos-cube及相关依赖安装`
# 退出虚拟环境
$ deactivate
1.1.1、配置环境变量
首先下载AliOS Things源代码,可参考《获取源码》。
其次添加 AOS_SDK_PATH系统环境变量,指向 AliOS Things 3.1源码路径,aos-cube会根据 AOS_SDK_PATH环境变量来定位AliOS Things源码。
根据不同的系统,可以在其相应的用户配置文件中修改,如~/.bash_profile,~/.profile,~/.bashrc等。例如,修改~/.bashrc文件:
$ vi ~/.bashrc
# 文件末尾添加环境变量,指向AliOS Things源码目录,并保存退出
export AOS_SDK_PATH=/home/user/AliOS-Things
# 使配置立即生效
$ source ~/.bashrc
1.1.2、编译
在自己的工作目录(注意:非AliOS Things的目录或子目录)下面,运行:
$ aos create project -b haaseduk1 -t helloworld_demo -d tmp myapp
$ cd tmp/myapp
$ aos make
编译 haaseduk1 板子的 helloworld_demo 示例程序。 详细的编译操作请参考《使用命令行工具开发》。
编译过程中,编译系统会根据所选的平台自动下载相应的工具链。
也可以事先将交叉工具链下载到本地任意位置,然后将其加入到环境变量PATH里面。
注意:如果是直接采用linux的gcc编译,需要安装32bit版本的gcc。
$ sudo apt-get install gcc-multilib
编译完成以后,可使用串口工具minicom的ymodem方式下载程序和查看设备日志。
1.1.3、minicom串口配置
配置串口参数(以haaseduk1为例),配置文件(/etc/minicom/minirc.dfl)内容 :
pu port /dev/ttyUSB0
pu baudrate 1500000
pu bits 8
pu parity N
pu stopbits 1
pu rtscts No
启动 minicom,查看串口日志。
1.1.4、一些小技巧
Linux 操作串口及 j-link 会有root权限要求,尤其在使用 AliOS-Things Studio时候,对串口及 j-link 的权限需要先做配置:
- $ sudo usermod -a -G dialout $(whoami),添加当前用户到 dialout 组,提供直接使用串口能力。
- $lsubs 找到 j-link 厂商ID。如:Bus 002 Device 008: ID 1366:0105 SEGGER,厂商ID为1366,新建/etc/udev/rules.d/99-stlink-v2.rules文件,在文件里面添加规则:SUBSYSTEM=="usb", ATTR{idVendor}=="1366", MODE="666", GROUP="plugdev"。
配置操作串口及 j-link权限后,重启系统生效。
1.2、Windows环境安装
Windows下AliOS-Things开发环境的搭建主要分为两部分:python和pip安装、基于pip安装aos-cube及相关的依赖包。在 Python 官网下载对应的 2.7 版本的 Python MSI 安装文件,安装时,选择 pip 和 add python.exe to Path 两个选项。安装3.x版本时,选择 Add Python to PATH 选项。
注意:Python 请安装到不含空格的路径
安装配置完成 Python 后,使用 pip 安装 aos-cube:
> pip install aos-cube
注意:如遇到网络问题,请参考安装python和aos
1.2.1、安装git bash
从官网上下载git bash,按默认配置安装即可。
1.2.2、配置环境变量
首先下载AliOS Things源代码,可参考《获取源码》。
其次添加 AOS_SDK_PATH系统环境变量,指向 AliOS Things 3.1源码路径,aos-cube会根据 AOS_SDK_PATH环境变量来定位AliOS Things源码。
右键点击“计算机”->选择“属性”->选择“高级系统设置”->选择“环境变量”。
选择“新建”,在弹出的框里面,变量名输入“AOS_SDK_PATH”,变量值输入AliOS Things源码所在的目录,选择“确定”退出,并重启电脑。
1.2.3、交叉工具链
对于常用的交叉编译工具链,如gcc-arm-none-eabi,在编译的时候,aos-cube也会自动下载到AliOS Things源码目录下的 build/compiler。
用户也可以在链接 GCC 下载 Windows的exe安装,勾选 Add path to environment variable 选项:
编译
在 Git Bash 中,在自己的工作目录(注意:非AliOS Things的目录或子目录)下面运行:
$ aos create project -b haaseduk1 -t helloworld_demo -d tmp myapp
$ cd tmp/helloworld
$ aos make
编译 haaseduk1 板子的 helloworld_demo 示例程序。详细的编译操作请参考《使用命令行工具开发 》。
如果采用developerkit,仅需要在创建工程的时候,修改-b后面的参数即可。
$ aos create project -b developerkit -t helloworld_demo -d tmp helloworld
$ cd tmp/helloworld
$ aos make
1.2.4、驱动安装
串口驱动
开发板常用的串口驱动有FTDI系列、CP210x系列、PL230x系列等。
FTDI系列
以FTDI驱动安装为例,在 FTDI官网 下载 Windows 驱动程序并安装。
对应驱动安装完成后,连接设备,可在计算机 - 设备管理 - 端口,查看对应转换端口状态:
驱动安装完成后,连接串口线,配置串口参数。
在 MobaXterm Personal Edition 下,在Session - Serial,选择端口,修改图中Speed的波特率设置为1500000(将图中921600修改为1500000), 在Advanced Serial setting 里面,Software 选择 Minicom (allow manual COM port setting):
对应参数配置好一会,点击 OK 按钮,查看串口日志。
jtag驱动
J-Link
J-Link 驱动可在 SEGGER J-Link驱动下载地址 下,选择 J-Link Software and Documentation Pack,选择 J-Link Software and Documentation pack for Windows 下载安装:
安装完成 J-Link 驱动后,需要安装 J-Link 的 libusb 驱动 zadig,下载后解压缩,运行 zadig.exe 或 zadig_xp.exe(Window XP系统):
选择 J-Link,driver 选择libusb-win32(v1.2.6.0),点击 Replace Driver,返回 successful 说明 libusb 安装成功:
关闭 zadig.exe,可在计算机 - 设备管理,查看 J-Link 识别状态:
连接 J-Link 烧写或者调试。
如果此时无法连接上 J-Link,或者烧写调试失败,在选择 J-Link 的 libusb 驱动选择时,尝试选择 libusbK (v3.0.7.0) (由于不同厂家的使用的 J-Link 固件版本不同,libusb-win32(v1.2.6.0)可能无法正常驱动J-Link)。
1.3、Mac环境安装
Mac下AliOS-Things开发环境的搭建主要分为两部分:pip和git安装、基于pip安装aos-cube及相关的依赖包。
# 安装pip
$ sudo easy_install pip
# 安装依赖库和aos-cube,步骤如下:
$ python -m pip install setuptools wheel aos-cube
安装完成以后,使用aos --version,查看是否安装成功。
如果显示版本号,如“0.5.11”,则表明安装成功;
如果显示“command not found: aos”,则查看aos-cube的安装路径,并将对应的路径添加到环境变量PATH里。
# 查找aos-cube安装路径
$ find ~ -name aos-cube
/Users/johnny/Library/Python/2.7/bin/aos-cube
# 将python包的安装路径添加到环境变量PATH里。如果使用的是zsh,则更新~/.zshrc;如果使用的是bash,则更新~/.bashrc
$ echo "export PATH=/Users/johnny/Library/Python/2.7/bin/:$PATH" >> ~/.zshrc
# 更新配置
$ source ~/.zshrc
安装git。
# 未安装homebrew,需安装homebrew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 安装git
$ brew install git
1.3.1、配置环境变量
首先下载AliOS Things源代码,可参考《获取源码 》。
添加 AOS_SDK_PATH系统环境变量,指向 AliOS Things 3.1源码路径,aos-cube会根据 AOS_SDK_PATH环境变量来定位AliOS Things源码。
根据不同的系统,可以在其相应的用户配置文件中修改,如~/.bash_profile,~/.profile,~/.zshrc等。例如,修改~/.zshrc文件:
# 文件末尾添加环境变量,指向AliOS Things源码目录,并保存退出
echo "export AOS_SDK_PATH=/Users/johnny/Downloads/project/os/AliOS-Things" >> ~/.zshrc
# 使配置立即生效
$ source ~/.zshrc
1.3.2、编译
在自己的工作目录(注意:非AliOS Things的目录或子目录)下面,运行:
$ aos create project -b haaseduk1 -t helloworld_demo -d tmp myapp
$ cd tmp/myapp
$ aos make
编译 HaaS EDK 板子的 helloworld_demo 示例程序。 详细的编译操作请参考《使用命令行工具开发 》。
编译过程中,编译系统会根据所选的平台自动下载相应的工具链。
也可以事先将交叉工具链下载到本地任意位置,然后将其加入到环境变量PATH里面。
2、安装VS Code IDE开发工具
2.1、下载/安装 vscode
访问 https://code.visualstudio.com/ 下载并安装vscode。
2.2、安装AliOS Studio 插件
打开vscode,按照下图所示安装AliOS Studio插件:
2.3、安装 aos-cube
AliOS Studio 依赖 aos-cube,如果想要手动安装 aos-cube 的话,请参考上文的《编译环境安装》章节。
2.3.1、下载代码
git clone https://github.com/alibaba/AliOS-Things.git -b dev_3.1.0_haas
对于国内用户,为避免从github下载速度较慢,可以从gitee上下载。
git clone https://gitee.com/alios-things/AliOS-Things.git -b dev_3.1.0_haas
2.3.2、使用AliOS-Studio 工具栏
AliOS-Studio的主要功能都集中在vscode下方工具栏中,小图标从左至右功能分别是
编译烧录串口工具创建工程清除
AliOS-Studio更详细的使用说明请参考:AliOS Studio。
在IDE里“创建工程”,和命令行开发方式创建的工程内容一致。
编译 - Build
左侧的helloworld@starterkit是编译目标,格式遵循应用名字@目标板名字的规则,点击它可以依次选择应用和目标板,参考如下所示进行编译:
烧录 - Upload
- 通过 USB Micro 线缆连接好开发板和电脑
- 点击下方工具栏闪电图标完成固件烧录
Tips: 如果您手上没有可用的开发板,也可以使用线上的开发板做开发调试
查看运行状态
- 点击下方工具栏插头图标打开串口。第一次连接会提示填写串口设备名和波特率,再次点击可以看到串口输出,同时也可以在这里输入命令进行交互。
串口设置,选择串口和波特率,HaaS EDK K1的波特率是1500000
串口数据收发界面。
3、调试
HaaS EDU K1开发板的接口包含SWD仿真调试接口,通过该接口连接J-Link仿真器,配合VS Code调试软件,可以实现在线调试:单步运行、断点等功能。
3.1、硬件调试SWD
硬件接线:将HaaS EDU K1上的SWDIO/SWCLK/GND分别与J-Link仿真器上相应的管脚连接好。
HaaS EDU K1 SWD接口
J-Link仿真器的SWD接口
3.2、软件调试-vscode
3.2.1、安装驱动
为了实现在线调试功能,需要安装J-Link的驱动。J-Link 驱动可在 SEGGER J-Link驱动下载地址 下,选择 J-Link Software and Documentation Pack,选择相应的 J-Link Software and Documentation pack 下载安装:
3.2.2、安装插件
在VS Code里面安装Cortex-Debug插件。在 VS code Extension 栏位搜索 Cortex-Debug 并安装, 如图所示。
3.2.3、修改配置项
在VS Code 打开当前仓库下的.vscode/launch.json文件,增加一个配置项,参考下图设置调试参数。
{
"cwd": "${workspaceRoot}",
"executable": "<target elf file>",
"name": "Debug Microcontroller",
"request": "launch",
"type": "cortex-debug",
"serverpath": "<gdb server path>",
"servertype": "jlink",
"device": "Cortex-M4",
"interface": "swd",
"armToolchainPath": "<toolchain path>"
},
- 其中executable为当前需要调试的elf可执行文件的详细路径;
- serverpath为JLinkGDBServerCL的的详细路径
- armToolchainPath为toolchain所在的目录。
3.2.4、执行
点击左侧run 按钮,在视窗中选择设置好的名为"Debug Microcontroller"的下拉菜单。然后旁边的绿色三角形图标执行,即可完成Jlink GDB与开发板的连接。
3.2.5、调试
连接成功的界面,可参考下图。其中橙框所示的为调试按钮,依次为:Continue/Step over/Step into/Step out/Restart/Stop。
4、烧录
4.1、准备
给HaaS EDU K1上电,USB Type-C口插上usb线并连接到烧录主机,打开开机开关(电源正常的情况下板子右上角LED灯会亮),等待烧录主机发现新插入的usb设备并识别成串口。
当前提供命令行和GUI工具两种烧录方式,开发者可以根据自己的开发电脑平台来选择其一。
4.2、使用命令行方式烧录(MacOS / Linux / Windows 环境)
打开命令行工具,进入到代码顶层目录,然后输入命令aos upload,选择相应的串口即可开始烧录。
烧录成功后,显示“Firmware upload succeed“字样。
烧录成功后,也自动将串口信息保存在当前目录下的.aos_config_burn文件中。如果后续烧录时,串口号有变化,可以删除该文件,再使用aos upload命令烧录。
如果在烧录期间,提示“Please reboot the board manually“,请按复位键复位开发板。
若复位无效,还是一直打印“Please reboot the board manually“,则需要将板子完全断电,再上电,然后重新使用aos upload命令烧录。
4.3、使用GUI工具烧录(仅限于windows)
在windows环境下编译成功后,进入platform/mcu/haas1000/release/write_flash_gui目录,双击运行haas1000_write_flash_main,出现烧录软件的主界面
点击Port Config,出现串口配置界面,点击list,选择设备连接的串口,选择后点击Ok按钮确认关闭串口配置界面;
点击Start All按钮,进入烧录状态,此时烧录状态是Idle,等待设备重启;
短按板子上的重启键或者插拔电源对板子上下电,开始烧录,此时烧录状态是Burning,可以看到烧录的进度;
烧录成功后(进度是100%),点击Exit,退出即可;
如下所示:
开发者技术支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/