本文将介绍怎么样在VScode环境下,将AliOS Tings提供的blink例程在Developerkit开发板上运行起来。

DeveloperKit开发板
 
在例程中分别用到两个led和一个按钮,上图中用红色的框标识出来。例程正确运行后,会有一个LED按1s的周期闪烁,另外一个LED当按键被按下时,切换输出电平。本文中,各个硬件的分配如下表:
外设名称
对应gpio
实验中的功能
LED1
PB6
每秒闪烁1次
LED2
PE3
当检测到按键时切换输出电平
按钮M
PE11
通过中断方式检测按接下来我们进入代码,并按照具体的硬件对应引脚修改源码。
同VS CODE打开AliOS-Things 2.0源码,如果您还没有AliOS-Things的源码,可以在VS code的控制台中通过git工具进行拉取,拉取命令如下:
git clone https://github.com/alibaba/AliOS-Things.git

打开源码后,我们在源码的app/example/blink目录下,打开blink.c,在源码的顶部找到几个宏定义如下:
#define GPIO_LED_IO     18
#define GPIO_TRIGGER_IO 4
#define GPIO_INPUT_IO 5
上述的几个宏定义需要和我们和实际的硬件对应,对应关系如下表:
宏定义
对应硬件
实际IO口
OS中的引脚编号
实验中的功能
GPIO_LED_IO
LED1
PB6
22
每秒闪烁1次
GPIO_TRIGGER_IO
LED2
PE3
67
当检测到按键时切换输出电平
GPIO_INPUT_IO
按钮M
PE11
75
通过中断方式检测按键
由于AliOS-Things对硬件进行了抽象,所以对GPIO的操作需要先按照一定的规则将MCU的GPIO转换为编号。转换规则为MCU的GPIO bank号 X 16 + 具体gpio在bank中的位置,bank的编号从0开始。如PB6,其bank号为1在bank中的位置为6,则PB6应被转换为 1 X 16 + 6 = 22;同理,PE3=4 x 16 + 3 = 67。因为例程不是为Developerkit开发板而写,所以需要修改例程中的宏第一如下:
#define GPIO_LED_IO     67      // PE3
#define GPIO_TRIGGER_IO 22 // PB6
#define GPIO_INPUT_IO 75 // PE11
完成修改后,保存blink.c文件。
在VS CODE环境中,在左下角的alios-studio中,点击编译目标选择按钮
此时编辑器顶部的命令输入框会弹出选择要编译的目标,此时选择blink
紧接着会继续要求选择开发板,此时选择Developerkit开发板。
接下来通过alios-studio工具条的编译按钮启动编译。
等待编译完成。
Making blink@developerkit.bin
Making blink@developerkit.hex AOS MEMORY MAP
|=================================================================|
| MODULE | ROM | RAM |
|=================================================================|
| newlib_stub | 296 | 0 |
| sal | 6977 | 250 |
| kv | 3055 | 104 |
| common | 256 | 12 |
| libc_nano | 19649 | 602 |
| kernel_init | 653 | 36 |
| rhino | 16225 | 7821 |
| developerkit | 5045 | 1403 |
| vfs | 950 | 1141 |
| digest_algorithm | 92 | 0 |
| libgcc | 3320 | 0 |
| stm32l4xx_cube | 26592 | 8506 |
| cli | 6234 | 357 |
| yloop | 2369 | 28 |
| device_sal_bk7231 | 8542 | 265 |
| sensor | 9451 | 303 |
| osal | 1074 | 4 |
| log | 412 | 20 |
| hal | 164 | 12 |
| blink | 325 | 24 |
| atparser | 5882 | 297 |
| armv7m | 1975 | 0 |
| *fill* | 150 | 1599 |
|=================================================================|
| TOTAL (bytes) | 119688 | 22784 |
|=================================================================|
Build complete
将Developerkit连接至PC,确保开发板的STlink驱动已被正确安装。
通过alios-studio工具条中的下载按钮,将编译好的固件下载到开发板中。
烧写完成后开发板会自动运行,此时可以看到LED开始按1s为间隔闪烁。按动板上的“M”按钮,LED2会切换输出。这里要指出,blink Demo主要为了演示GPIO的HAL层操作函数,并没有做按键去抖动工作,所以点按按钮时,可能会出现按一次LED2直接切换两次。也请大家在实际的代码设计中注意按键去抖能力的加入。到此,例程已成功完成运行。
 
 
阅读原文​​​​​​​

在Developerkit开发板上运行blink例程的更多相关文章

  1. 如何编译(helloworld)可以在开发板上运行的应用

    本节介绍如何编译可以在开发板上运行的应用,编译方法很简单.基于:iTOP4412开发板首先要确定一下环境变量,如下图所示,使用“cd”命令回到根目录,然后使用命令“vim .bashrc”打开环境变量 ...

  2. FS210开发板上Qt4.7.0移植过程

    作者:冯老师,华清远见嵌入式学院讲师. 1. 搭建Qt开发环境平台 1.开发环境:ubuntu 12.04 2.交叉编译链:arm-cortex_a8-linux-gnueabi 3.开发板:FS21 ...

  3. [转载]在iTOP-4412开发板上调试helloworld应用

    本文转自迅为论坛:http://www.topeetboard.com 1.安装ADB驱动 在开发板上调试 Android 应用,首先要安装 ADB 驱动. 通过“SDK Manager.exe”来安 ...

  4. DevEco Device Tool 2.1 Beta1在Hi3861开发板上可视化分析的体验

    DevEco Device Tool迎来了2.1 Beta1,新版本有很多亮点.在上次"DevEco Device Tool 2.1 Beta1 的Hi3861在Windows平台的编译体验 ...

  5. DE1-SOC开发板上搭建NIOS II处理器运行UCOS II

    DE1-SOC开发板上搭建NIOS II处理器运行UCOS II   今天在DE1-SOC的开发板上搭建NIOS II软核运行了UCOS II,整个开发过程比较繁琐,稍微有一步做的不对,就会导致整个过 ...

  6. 运行在TQ2440开发板上以及X86平台上的linux内核编译

    一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/E ...

  7. easycwmp在开发板上的配置

    原创作品,转载请注明出处 copyright:weishusheng   2015.3.18 email:642613208@qq.com 平台: Linux version 2.6.32-279.e ...

  8. 开发板上使用core文件调试

    转载:http://www.nginx.cn/1521.html 如果开发板的操作系统也是linux,core调试方法依然适用.如果开发板上不支持gdb,可将开发板的环境(依赖库).可执行文件和cor ...

  9. 物联网操作系统HelloX已成功移植到MinnowBoard MAX开发板上

    在HelloX开发团队的努力下,以及Winzent Tech公司(总部在瑞典斯德哥尔摩)的支持下,HelloX最新版本V1.78已成功移植到MinnowBoard MAX开发板上.相关源代码已经发布到 ...

随机推荐

  1. python安装centos7

    1.安装git (需root权限) yum -y install git 2.安装依赖包 yum -y install gcc make patch gdbm-devel openssl-devel ...

  2. Jenkins 官网文档翻译汇总

    Jenkins 官网地址 Jenkins 官网文档地址 用户手册 安装 Jenkins 使用 Jenkins 使用凭证 Pipeline 流水线 开始使用 Pipeline 使用 Jenkinsfil ...

  3. Git012--Bug&Feature分支

    一.Git--Bug分支 软件开发中,bug就像家常便饭一样.有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支 ...

  4. win10下装win7双系统安装教程

    win10下装win7双系统安装教程 来源:www.laomaotao.org 时间:2017-02-13 10:15 新买的电脑预装了win10系统,但win10对于有些游戏兼容性不是很好,总是会出 ...

  5. MySQL格式化时间戳 统计当日,第二天,第三天,3个工作日以后的数据

    mysql 查询出来的处理时间和开始时间都是13位的时间戳 SELECT `END_TIME`,`CREATE_TIME` FROM t_table 需求是统计当日,第二天,第三天,3个工作日以后的时 ...

  6. Aria2+WebUI+caddy搭建私有网盘

    Aria2安装 wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ar ...

  7. [Codeforces 1178D]Prime Graph (思维+数学)

    Codeforces 1178D (思维+数学) 题面 给出正整数n(不一定是质数),构造一个边数为质数的无向连通图(无自环重边),且图的每个节点的度数为质数 分析 我们先构造一个环,每个点的度数都是 ...

  8. 4、、多变量线性回归(Linear Regression with Multiple Variables)

    4.1 多维特征 目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,...xn) 增添更多特征后, ...

  9. Zookeeper——启动闪退

      Zookeeper好久不启动了,昨天项目要用Zookeeper了,我昨天突然启动它,调皮的zk居然害羞不让我看见它,启动不了,一启动就闪退,为啥呢?其实是因为报错了,有错zk启动时就会报错,所以昨 ...

  10. 如何优化MySQL千万级大表

    很好的一篇博客,转载 如何优化MySQL千万级大表 原文链接::https://blog.csdn.net/yangjianrong1985/article/details/102675334 千万级 ...