HaaS100 快速开始

简介: 介绍HaaS100主板的代码下载,编译,烧录

简介

硬件

下面是Haas100开发板的简单介绍, 详细功能和参数可以参考HaaS100的硬件规格说明。
image.png

软件

HaaS100搭载AliOS Things物联网操作系统 。

环境

AliOS Things的开发环境准备。

快速开始

下载代码

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

编译

进入代码的顶层目录如AliOS-Things进行编译。可以直接编译application/example/目录下的demo app,或者自己开发的app。下面以编译helloworld_demo为例。
aos make helloworld_demo@haas100 -c config
aos make

烧录

第一次编译后从代码顶层目录拷贝platform/mcu/haas1000/release/write_flash_gui目录下的所有文件到windows环境。 后续再编译可以只替换write_flash_gui/ota_bin/ota_rtos.bin即可。

准备

给HaaS 100插上电源,在Micro USB口插上usb线并连接到烧录主机。等待烧录主机发现新插入的usb设备并识别成串口。
如果您的烧录主机没有自动识别usb并安装驱动, 您可以点击这里 USB转UART驱动 手动下载对应的版本并安装。
识别成功后,可以在计算机管理->设备管理器中发现串口设备。

开始烧录

在windows环境下进入write_flash_gui目录,双击运行haas1000_write_flash_main,出现烧录软件的主界面。
image.png

点击Port Config 按钮,出现串口配置界面。
image.png

点击List按钮,选择HaaS100连接的串口。
image.png

选择后,点击Ok按钮确认关闭串口配置界面,此时主界面如下,烧录状态是Closed。
image.png

点击Start All 按钮,进入烧录状态,此时烧录状态是Idle,等待设备重启。
image.png

短按板子上的重启键或者插拔电源对板子上下电,开始烧录,此时烧录状态是Burning,可以看到烧录的进度。
image.png

等待烧录成功,此时烧录的状态的Success,进度是100%。
image.png

点击Exit 退出即可。

串口打印

使用串口工具如Putty/SecureCRT,设置串口波特率1500000。

Putty设置

设置串口波特率1500000,并关闭Parity 和 Flow control
image.png

SecureCRT设置

设置串口波特率1500000,并关闭Parity 和 Flow control
image.png

设置字符编码为UTF-8,否则打印会乱码。
image.png

启动log

设置好串口后, 重启设备就可以看到AliOS Things的启动log,和最后hello world的打印了。

     1569/main | app_status_indication_set 1
     1569/main | platform_init_step1 done, user_init=3, ret=0
     1569/main | platform_init_step1 enter temprature cali on signal
     1569/main | board_init platform_init_step1 done
     1573/main_task | sys_init go
     1573/main_task | sys freq calc : 320000000, wifi init 1 
     1573/main_task | sys_init soc_peripheral_init done
             Welcome to AliOS Things           
     1574/main_task | sys_init aos_components_init done
     1574/main_task |         mesh has been opened        
[Jan 01 00:00:01.482]<I>ULOG-test sys_init aos_components_init done
nano entry here!
hello world! count 0 
hello world! count 1 
hello world! count 2
hello world! count 3

如何点亮一个LED灯

上面看过了简单的打印后, 我们做一个简单的点灯实践来练练手。
如下简单修改application/example/helloworld_demo/appdemo.c,增加点灯的代码。
说明:灯的编号,右边从上到下分别是0, 1 , 2;左边从上到下分别是3, 4, 5。 编号0是电源指示灯,不可修改。

--- a/application/example/helloworld_demo/appdemo.c
+++ b/application/example/helloworld_demo/appdemo.c
@@ -8,6 +8,7 @@
 #include "aos/init.h"
 #include "board.h"
 #include <k_api.h>
+#include "led.h"
 
 int application_start(int argc, char *argv[])
 {
@@ -18,6 +19,13 @@ int application_start(int argc, char *argv[])
     //fd = board_lcd_create("name");
     //board_lcd_write(fd,buffer,len);
 
+    printf("Light all the led switch of the left.\r\n");
+    /* Sleep 1 second to avoid that led switch on/off while the boad boot up. */
+    aos_msleep(1000);
+    led_switch(3,LED_ON);
+    led_switch(4,LED_ON);
+    led_switch(5,LED_ON);
+
     while(1) {
         printf("hello world! count %d \r\n", count++);

代码改完后,参考上面的步骤编译烧录,最后启动板子就能看到左边的灯都已经被点亮。
怎么样? 用HaaS进行开发是不是很简单, 远远不止这些哦,HaaS已经做了很多简化开发的工作, 快来动手探索一下吧。

目录
相关文章
|
算法 Linux 数据处理
《操作系统》—— 处理机调度算法
《操作系统》—— 处理机调度算法
5282 1
|
传感器 消息中间件 物联网
AliOS Things 系统架构介绍(二)
AliOS Things 系统架构介绍(二)
1154 1
|
11月前
|
存储 安全 开发工具
Git安装与配置:操作步骤+Gitee绑定
本文系统介绍了Git从安装配置到远程协作的全流程,涵盖基础概念、常用命令、分支管理、冲突解决及Gitee实战操作,助你高效掌握代码版本控制与团队协作技巧。
1581 155
|
8月前
|
存储 数据采集 人工智能
大模型微调显存计算:从原理到实践的精准把控
本文深入解析大模型微调中的显存占用问题,揭示8GB显存为何能跑7B模型的真相。从显存四大组成部分入手,结合量化、LoRA、AdamW8bit等优化策略,手把手教你精准计算与压缩显存,让低配显卡也能高效微调大模型,助力AI实践入门。
|
11月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
922 0
|
调度 C语言 芯片
FreeRTOS学习笔记—基础知识
本文简要介绍了什么是RTOS,介绍了前后台系统和RTOS的工作流程。此外,简单介绍了FreeRTOS的特点,相关概念和优点。最后,介绍了下载FreeRTOS的方法。
974 0
FreeRTOS学习笔记—基础知识
|
存储 传感器 人工智能
AliOS Things 系统架构介绍(一)
AliOS Things 系统架构介绍(一)
902 0
|
存储 缓存 Ubuntu
Ubuntu Linux目录结构
理解Ubuntu Linux的目录结构对系统管理、维护和故障排除至关重要。每个目录都有其特定的用途和存放内容,通过了解这些目录,可以更高效地管理系统文件,确保系统的稳定运行。希望本文对你深入理解Ubuntu的目录结构有所帮助。
1239 1
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
1965 1
Python中strip()、lstrip()和rstrip()方法的区别与用法详解
在Python中,字符串是一种常见的数据类型,而处理字符串时,经常会用到 strip()、lstrip() 和 rstrip() 这几个方法。它们都用于删除字符串开头和/或结尾的指定字符或字符集合,但在具体使用时有一些区别。