搭建开发环境¶
windows环境配置¶
aos-cube安装¶
aos-cube 是 AliOS Things 在 Python 下面开发的项目管理工具包,依赖 Python 2.7 版本(在Python 2.7.14 版本上验证测试通过)。在 Python 官网下载对应的 2.7 版本的 Python MSI 安装文件,安装时,选择 pip 和 add python.exe to Path 两个选项:
安装配置完成 Python 后,使用 pip 安装 aos-cube:
> pip install aos-cube
交叉工具链¶
Windows 工具链可以在链接 GCC 下载 Windows的exe安装,勾选 Add path to environment variable 选项:
在 AliOS Things 源码的目录下面,运行:
$ aos make helloworld@mk3060
编译 mk3060 板子的 helloworld 示例程序。
驱动安装¶
串口驱动¶
FTDI系列
FTDI驱动,在 FTDI 下载 Windows 驱动程序并安装。
对应驱动安装完成后,连接设备,可在计算机 - 设备管理 - 端口,查看对应转换端口状态:
驱动安装完成后,连接串口线,配置串口参数。在 MobaXterm Personal Edition 下,以MK3060为例,Session - Serial,选择端口,波特率为921600, 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)。
linux环境配置¶
依赖及aos-cube安装¶
以 Ubuntu 16.04 LTS (Xenial Xerus) 64-bit PC 版本为例,安装下列 pkg:
$ sudo apt-get install -y python \
gcc-multilib \
libssl-dev libssl-dev:i386 \
libncurses5-dev libncurses5-dev:i386 \
libreadline-dev libreadline-dev:i386 \
python-pip minicom
$ sudo pip install aos-cube
交叉工具链¶
Linux 工具链可以在链接 GCC 下载 Linux 压缩包,解压缩,在 .bashrc 里面配置 TOOLCHAIN_PATH 路径(注意:路径最后一个下划线 / 添加到路径):
在 AliOS Things 源码的目录下面,运行:
$ aos make helloworld@mk3060
编译 mk3060 板子的 helloworld 示例程序。
minicom串口配置¶
配置串口参数(以MK3060为例),配置文件(/etc/minicom/minirc.dfl)内容 :
pu port /dev/ttyUSB0
pu baudrate 921600
pu bits 8
pu parity N
pu stopbits 1
pu rtscts No
启动 minicom,查看串口日志。
j-link烧写与调试¶
j-link烧写¶
以 MK3060 为例,在编译的时候,带上jlink烧写参数:
$aos make helloworld@mk3060 JTAG=jlink download
会通过J-Link烧写固件到板子上。
j-link调试¶
以MK3060为例,首先按住boot按键,不要松开,再按一下reset键,松开reset键,进入bootloader模式:
Window调试
在AliOS Things源码目录下面,分别运行 OpenOCD 命令和 gdb命令。
在一个 CMD 窗口下面启动OpenOCD:
$.\build\OpenOCD\Win32\openocd -f .\\build\OpenOCD\interface\jlink.cfg -f .\\build\OpenOCD\beken\beken.cfg -f .\\build\OpenOCD\beken\beken_gdb_jtag.cfg -l out\openocd_log.txt
在另外一个 CMD 窗口,启动 gdb:
$ arm-none-eabi-gdb -x=.gdbinit -ex 'target remote localhost:3333' ./out/eclipse_debug/last_built.elf --tui
Linux 调试
在AliOS Things源码目录下面,分别运行 OpenOCD 命令和 gdb命令。
在一个 Shell 窗口启动OpenOCD:
$ ./build/OpenOCD/Linux64/openocd -f build/OpenOCD/interface/jlink.cfg -f build/OpenOCD/beken.cfg -f build/OpenOCD/beken_gdb_jtag.cfg -l out/openocd_log.txt
在另外一个 Shell 窗口启动 gdb:
$ arm-none-eabi-gdb -x=.gdbinit -ex 'target remote localhost:3333' ./out/eclipse_debug/last_built.elf --tui
gdb 里面设置断点,打印堆栈信息(MK3060最大支持两个断点)。