AliOS Things开发:让你的开发板支持AliOS Studio烧录
简介
aos-cube是AliOS-Things项目开发管理工具(简写命令为aos),具有以下功能:
- 编译代码、Image下载、板子调试。
- 创建模板工程,基于模板做再次开发。
- 支持组件化,获取组件信息,组件的自由组合,满足业务场景的不同需求。
如何安装aos-cube请参考aos-cube安装。
在AliOS-Things 2.x.x
版本之后,aos-cube提供了一套简单易懂的接口可以让开发者很容易适配aos,达到aos upload
指令下载image,aos debug
指令启动调试功能。
本文简单介绍一下如何让aos upload
指令支持你的开发板下载,从而在AliOS-Studio中点击upload按钮即可立即下载AliOS-Things编译好的binary,效果如下图所示:
本文所涉及到的代码在这里可以找到。
准备工作
pca10040开发板是由Nordic出品的一款搭载nRF52832的开发板,板载调试接口为jlink接口,可以通过jlink接口实现image下载,调试程序。
本示例使用pca10040开发板作为示例,实现通过aos upload
指令调用jlink的程序下载image到pca10040上,支持windows、linux以及macOS。
准备工作:
本功能只适配AliOS-Things 2.x.x版本及以后版本,1.x.x版本目前不支持。
- 参考AliOS Things 环境配置安装好AliOS Things的开发环境。
- 下载JLink执行程序并配置好环境变量,具体请参考下载jlink并配置环境变量。
- 更新aos-cube为最新版本:
pip2 install -U aos-cube
。
编写upload命令配置文件
aos upload
会调用upload的配置文件来实现具体的image烧录过程,我们需要编写这个配置文件来达到烧录目的,aos upload
目前已经支持的开发板可以参考这里,同时,开发者也可以贡献自己适配好的json配置文件到AliOS-Things中。
AliOS-Things
的源码里面提供了build/site_scons/gen_upload_configs.py
脚本用来根据填写的内容自动生成json配置文件,具体说明请参考这里,本示例是参考该规则进行pca10040开发板适配的。
添加pca10040 upload指令:
按照aos指令适配的规则给gen_upload_configs.py
添加如下内容:
registry_board = { ...... 'pca10040': ['pca10040.json'], ...... } pca10040 = { 'cmd': [ 'python', '@AOSROOT@/build/site_scons/jlink.py', '-d', 'nRF52840_xxAA', '-i', 'swd', '-f', '@AOSROOT@/out/@TARGET@/binary/@TARGET@.bin', '-p', '0x00010000' ], } flash_configs['pca10040'] = pca10040
注:registry_board中的
pca10040
和flash_configs['pca10040']
里面的pca10040
一定要是AliOS-Things/board/下面对应的board名称。
其中jlink.py
脚本是一个专门为aos upload
编写的python脚本,位于build/site_scons
中,主要功能是在out目录下生成对应设备的jlink commands文件,并启动jlink下载,jlink.py下载地址。
生成对应的json配置文件:
运行gen_upload_configs.py
可以自动生成json配置文件:
$ cd build/site_scons $ python ./gen_upload_configs.py
可以看到在build/site_scons/upload
目录下有生成pca10040.json
文件,内容如下:
{ "cmd": [ "python", "@AOSROOT@/build/site_scons/jlink.py", "-d", "nRF52840_xxAA", "-i", "swd", "-f", "@AOSROOT@/out/@TARGET@/binary/@TARGET@.bin", "-p", "0x00010000" ] }
最终效果
aos upload helloworld@pca10040
或者点击AliOS Studio的upload按钮启动下载。
其他
下载JLink并配置环境变量
JLink软件包下载地址。请分别下载对应开发环境的软件包。
windows环境配置:
windows环境下,需要把JLink的bin目录添加到Path环境变量,JLink 默认的bin目录为:C:\Program Files (x86)\SEGGER\JLink_V640
,具体如何配置Path环境变量请参考:How to add a folder to Path
environment variable。
请注意JLink默认的bin目录中的
JLink_V640
,会根据不同的jlink版本会有所不同。设置完Path环境变量需要重启cmd、bash、vscode等,最好重启电脑。
windows环境下的JLink Commander名称为:JLink.exe
。
linux/macOS环境配置:
linux/macOS环境下的JLink Commander名称为:JLinkExe
。
参考文档
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
优化Unity游戏项目的脚本(上)
本文将由捷克独立游戏工作室Lonely Vertex的开发工程师Ondřej Kofroň,分享C#脚本的一系列优化方法,并提供改进Unity游戏性能的最佳实践。 在开发游戏时,我们遇到了游戏过程中偶尔出现延迟的问题。在使用Unity性能分析器进行分析后,我们问题主要来源于:未优化的着色器和未优化的C#脚本。 本文将主要介绍如何优化Unity游戏项目的C#脚本的方法。 寻找问题 Unity性能分析器是寻找造成卡顿脚本的最佳方法。我强烈建议直接在设备上对游戏进行性能分析,而不是在编辑器中进行性能分析。 本文中分享的游戏项目面向iOS,所以我们需要连接设备。如下图所示,设置Build Settings,然后性能分析器就会自动连接。 如果我们在网上搜索“Unity中的偶发卡顿”或类似关键词,你可能会发现大多数人建议重点处理垃圾回收。 每当停止使用某些对象即类的实例后,便会产生垃圾,然后会不定时运行Unity垃圾回收器来清理垃圾,取消分配相关的内存,这样的工作会占据大量时间,造成帧率降低现象。 如何在性能分析器中找到导致垃圾分配的脚本? 我们选中CPU Usage部分,如下选择Hierarch...
- 下一篇
优化Unity游戏项目的脚本(下)
金秋9月,我们祝所有的老师们:教师节快乐 ! 今天,我们继续分享来自捷克的开发工程师Ondřej Kofroň,分享C#脚本的一系列优化方法。 在优化Unity游戏项目的脚本(上)中,我们介绍了如何查找C#脚本中的问题,以及垃圾回收的处理。本文我们将介绍如何减少C#脚本的执行时间。 第二部分:减少脚本的执行时间 如果代码不经常调用,这部分提到的一些规则可能不会产生明显的作用。在我们的项目中,我们有一个每帧执行的大型循环,因此在该代码中,即使做很小的改动,也会产生很明显的作用。 如果使用方法不当或在不合适的情形下使用,部分改动可能会产生更差的执行时间。每次对代码进行优化方面的改动后,要记得查看性能分析器,确保改动有理想的效果。 这部分的一些规则可能会导致代码变得难以理解,甚至可能会破坏最佳编程实践。这部分的许多规则和第一部分的规则有所重复。和不分配垃圾的代码相比,垃圾分配代码通常有更差的执行效果,建议在阅读这部分内容之前,先仔细阅读本文的第一部分。 规则1:使用合适的执行顺序 将代码从FixedUpdate,Update和LateUpdate方法转移到Start和Awake方法中。虽然这...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境