forked from postman/niobe
update README.md
This commit is contained in:
parent
df89528a44
commit
1699f4ec58
15
README.md
15
README.md
|
@ -104,15 +104,12 @@
|
|||
|
||||
## 六、开发板预览图([预售链接](https://shop1658081298.v.weidian.com/item.html?itemID=4424618988))
|
||||
|
||||
* 预售微店(微信扫码)
|
||||
<div align=center>
|
||||
<img src="./applications/figures/预售链接.png">
|
||||
<p> 预售微店(微信扫码)</p>
|
||||
<img src="./applications/figures/展示图.png">
|
||||
<img src="./applications/figures/全貌图.png">
|
||||
</div>
|
||||
|
||||
![](./applications/figures/预售链接.png)
|
||||
|
||||
* Niobe开发板全貌图
|
||||
|
||||
![](./applications/figures/全貌图.jpg)
|
||||
|
||||
![](./applications/figures/341d541732a8bb7b49afe4859720702.jpg)
|
||||
|
||||
![](./applications/figures/6924eeb198d01b9918c2f6b7187898e.jpg)
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ import("//build/lite/config/component/lite_component.gni")
|
|||
|
||||
lite_component("app") {
|
||||
features = [
|
||||
"TW001_OS_helloworld:helloworld",
|
||||
# "TW001_OS_helloworld:helloworld",
|
||||
# "TW002_OS_thread:os_thread_example",
|
||||
# "TW003_OS_timer:os_timer_example",
|
||||
# "TW004_OS_event:os_event_example",
|
||||
|
@ -29,6 +29,7 @@ lite_component("app") {
|
|||
# "TW105_I2C_sht30:i2c_sht30",
|
||||
# "TW106_UART:uart_example",
|
||||
# "TW201_Module_oled:module_oled_example",
|
||||
"TW204_Module_enviroment:module_enviroment_example",
|
||||
# "TW301_Network_wifista:network_wifista_example",
|
||||
# "TW302_Network_wifiap:network_wifiap_example",
|
||||
]
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2021 Talkweb Co., Ltd.
|
||||
* Copyright (c) 2021 Talkweb Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
# Copyright (c) 2021 Talkweb Co.,ltd.
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
static_library("semp_example"){
|
||||
sources =[
|
||||
"os_semp_example.c"
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
# Copyright (c) 2021 Talkweb Co.,ltd.
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
static_library("Msg_example"){
|
||||
sources =[
|
||||
"os_message_example.c"
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
# Copyright (c) 2021 Talkweb Co.,ltd.
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
static_library("module_enviroment_example") {
|
||||
sources = [
|
||||
"THsensor.c",
|
||||
"CGsensor.c",
|
||||
"buzze.c"
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"//utils/native/lite/include",
|
||||
"//kernel/liteos_m/kal/cmsis",
|
||||
"//base/iot_hardware/peripheral/interfaces/kits",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,113 @@
|
|||
/*
|
||||
* Copyright (c) 2021 Talkweb Co.,ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
#include "stdio.h"
|
||||
#include "ohos_init.h"
|
||||
#include "cmsis_os2.h"
|
||||
|
||||
#include <hi_io.h>
|
||||
#include <iot_gpio.h>
|
||||
#include <hi_adc.h>
|
||||
#include <hi_types_base.h>
|
||||
#include <hi_early_debug.h>
|
||||
#include <hi_stdlib.h>
|
||||
#include "sensor.h"
|
||||
#include "buzze.h"
|
||||
|
||||
/**
|
||||
* 处理ADC 电压变化
|
||||
* \param [in] data 电压值
|
||||
* \param [in] len 长度
|
||||
*
|
||||
*/
|
||||
static void OnAdcData(uint16_t *data, uint32_t len)
|
||||
{
|
||||
float vlt_max = 0; //最大值
|
||||
float vlt_min = 100; //最小值
|
||||
for (size_t i = 0; i < len; i++)
|
||||
{
|
||||
|
||||
float voltage = (float)data[i] * 1.8 * 4 / 4096.0; /* vlt * 1.8 * 4 / 4096.0: Convert code into voltage */
|
||||
vlt_max = (voltage > vlt_max) ? voltage : vlt_max;
|
||||
vlt_min = (voltage < vlt_min) ? voltage : vlt_min;
|
||||
}
|
||||
|
||||
float vlt_val = (vlt_min + vlt_max) / 2.0; //平均值
|
||||
printf("MQ-2 Voltage = %.3f \r\n", vlt_val);
|
||||
|
||||
if (vlt_val >= 1.0f)
|
||||
{ //电压变化超值1.0f
|
||||
|
||||
StartBuzz();
|
||||
}
|
||||
}
|
||||
|
||||
static void *CGsensorTask(const char *arg)
|
||||
{
|
||||
(void)arg;
|
||||
uint16_t th_adc_buf[ADC_TEST_LENGTH] = {0};
|
||||
|
||||
while (1)
|
||||
{
|
||||
uint32_t ret;
|
||||
memset_s(th_adc_buf, sizeof(th_adc_buf), 0x0, sizeof(th_adc_buf));
|
||||
|
||||
for (size_t i = 0; i < ADC_TEST_LENGTH; i++)
|
||||
{
|
||||
ret = hi_adc_read((hi_adc_channel_index)HI_ADC_CHANNEL_5, &th_adc_buf[i], HI_ADC_EQU_MODEL_1, HI_ADC_CUR_BAIS_DEFAULT, 0);
|
||||
if (ret != HI_ERR_SUCCESS)
|
||||
{
|
||||
printf("ADC Read Fail\n");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
OnAdcData(th_adc_buf, ADC_TEST_LENGTH);
|
||||
usleep(500000); // 延迟500ms
|
||||
} //end while
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void CGsensorExampleEntry(void)
|
||||
{
|
||||
osThreadAttr_t attr;
|
||||
uint32_t ret;
|
||||
|
||||
//ADC PORT
|
||||
IoTGpioInit(IOT_GPIO_IO_GPIO_11);
|
||||
IotIoSetFunc(IOT_GPIO_IO_GPIO_11, HI_IO_FUNC_GPIO_11_GPIO);
|
||||
IoTGpioSetDir(IOT_GPIO_IO_GPIO_11, IOT_GPIO_DIR_IN);
|
||||
|
||||
if (ret != HI_ERR_SUCCESS)
|
||||
{
|
||||
printf("[CGsensorExampleEntry]===== ERROR ======gpio -> hi_gpio_set_dir1 ret:%d\r\n", ret);
|
||||
return;
|
||||
}
|
||||
|
||||
attr.name = "CHsensorTask";
|
||||
attr.attr_bits = 0U;
|
||||
attr.cb_mem = NULL;
|
||||
attr.cb_size = 0U;
|
||||
attr.stack_mem = NULL;
|
||||
attr.stack_size = THSENSOR_TASK_STACK_SIZE;
|
||||
attr.priority = THSENSOR_TASK_PRIO;
|
||||
|
||||
if (osThreadNew((osThreadFunc_t)CGsensorTask, NULL, &attr) == NULL)
|
||||
{
|
||||
printf("[CGsensorExampleEntry] Falied to create THsensorTask!\n");
|
||||
}
|
||||
}
|
||||
|
||||
SYS_RUN(CGsensorExampleEntry);
|
|
@ -0,0 +1,46 @@
|
|||
# 灯光控制和蜂鸣器使用
|
||||
|
||||
## 概述
|
||||
I2C(Inter Integrated Circuit)总线是由Philips公司开发的一种简单、双向二线制同步串行总线。
|
||||
I2C以主从方式工作,通常有一个主设备和一个或者多个从设备,主从设备通过SDA(SerialData)串行数据线以及SCL(SerialClock)串行时钟线两根线相连,如图1 所示。
|
||||
I2C数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。数据传输以字节为单位,高位在前,逐个bit进行传输。
|
||||
I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址,当主设备需要和某一个从设备通信时,通过广播的方式,将从设备地址写到总线上,如果某个从设备符合此地址,将会发出应答信号,建立传输。
|
||||
I2C接口定义了完成I2C传输的通用方法集合,包括:
|
||||
I2C控制器管理: 打开或关闭I2C控制器
|
||||
I2C消息传输:通过消息传输结构体数组进行自定义传输
|
||||
|
||||
## 接口说明
|
||||
1. I2C初始化函数:unsigned int IoTI2cInit(unsigned int id, unsigned int baudrate)
|
||||
参数说明:
|
||||
id: 对应的I2C号
|
||||
baudrate: I2C通信速率
|
||||
return: IOT_SUCCESS表示初始化成功
|
||||
|
||||
2. I2C去初始化函数:unsigned int IoTI2cDeinit(unsigned int id)
|
||||
参数说明:
|
||||
id: 对应的I2C号
|
||||
return: IOT_SUCCESS表示去除初始化成功
|
||||
|
||||
3. I2C写数据函数:unsigned int IoTI2cWrite(unsigned int id, unsigned short deviceAddr, const unsigned char *data, unsigned int dataLen)
|
||||
参数说明:
|
||||
id: 对应的I2C号
|
||||
deviceAddr: I2C设备地址
|
||||
data: 写入的数据缓冲区地址
|
||||
dataLen: 写入的数据字节数
|
||||
return: IOT_SUCCESS表示写入成功
|
||||
|
||||
4. I2C读数据函数:unsigned int IoTI2cRead(unsigned int id, unsigned short deviceAddr, unsigned char *data, unsigned int dataLen)
|
||||
参数说明:
|
||||
id: 对应的I2C号
|
||||
deviceAddr: I2C设备地址
|
||||
data: 读取数据缓冲区地址
|
||||
dataLen: 读取的字节数
|
||||
return: IOT_SUCCESS表示读取成功
|
||||
|
||||
5. I2C速率设置函数:unsigned int IoTI2cSetBaudrate(unsigned int id, unsigned int baudrate)
|
||||
参数说明:
|
||||
id: 对应的I2C号
|
||||
baudrate: 设置的I2C速率值
|
||||
|
||||
## 例程原理简介
|
||||
本例程通过I2C接口函数,与oled点阵屏进行通信,进行oled的相关显示实验
|
|
@ -0,0 +1,233 @@
|
|||
/*
|
||||
* Copyright (c) 2021 Talkweb Co.,ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
#include "stdio.h"
|
||||
#include "ohos_init.h"
|
||||
#include "cmsis_os2.h"
|
||||
|
||||
#include <hi_types_base.h>
|
||||
#include <hi_i2c.h>
|
||||
#include <iot_i2c.h>
|
||||
#include <hi_early_debug.h>
|
||||
#include <hi_stdlib.h>
|
||||
#include "sensor.h"
|
||||
|
||||
/**
|
||||
* 写数据
|
||||
* \param buffer 数据区
|
||||
* \param length 数据长度
|
||||
* return 0:成功 其他值:失败
|
||||
*/
|
||||
static uint32_t Aht20I2cWrite(uint8_t *buffer, uint32_t length)
|
||||
{
|
||||
uint32_t status;
|
||||
status = IoTI2cWrite(AHT20_I2C_IDX, AHT20_WRITE_ADDR, buffer, length);
|
||||
if (status != HI_ERR_SUCCESS)
|
||||
{
|
||||
printf("===== Error: I2C write status = 0x%x! =====\r\n", status);
|
||||
return status;
|
||||
}
|
||||
return HI_ERR_SUCCESS;
|
||||
}
|
||||
/**
|
||||
* 读数据
|
||||
* \param buffer 读取到数据区
|
||||
* \param length 数据长度
|
||||
* return 0:成功 其他值:失败
|
||||
*/
|
||||
static uint32_t Aht20I2cRead(uint8_t *buffer, uint32_t length)
|
||||
{
|
||||
uint32_t receive_data;
|
||||
|
||||
receive_data = IoTI2cRead(AHT20_I2C_IDX, AHT20_WRITE_ADDR, buffer, length);
|
||||
if (receive_data != HI_ERR_SUCCESS)
|
||||
{
|
||||
printf("===== hi_i2c_read failed, 0x%x! =====\r\n", receive_data);
|
||||
return receive_data;
|
||||
}
|
||||
return HI_ERR_SUCCESS;
|
||||
}
|
||||
|
||||
// 发送软复位命令
|
||||
static uint32_t AHT20ResetCommand(void)
|
||||
{
|
||||
uint8_t resetCmd[] = {AHT20_CMD_RESET};
|
||||
return Aht20I2cWrite(resetCmd, sizeof(resetCmd));
|
||||
}
|
||||
|
||||
// 发送初始化校准命令
|
||||
static uint32_t AHT20CalibrateCommand(void)
|
||||
{
|
||||
uint8_t clibrateCmd[] = {AHT20_CMD_CALIBRATION, AHT20_CMD_CALIBRATION_ARG0, AHT20_CMD_CALIBRATION_ARG1};
|
||||
return Aht20I2cWrite(clibrateCmd, sizeof(clibrateCmd));
|
||||
}
|
||||
|
||||
/***
|
||||
* 上电后判断状态
|
||||
* 如果设备忙或未校准 则重启设备并校准
|
||||
** return 0:成功 其他值:失败
|
||||
*/
|
||||
static hi_u32 AHT20Calibrate(void)
|
||||
{
|
||||
uint8_t RevBuffer[AHT20_RECEIVE_MAX];
|
||||
uint8_t statusCmd[] = {AHT20_CMD_STATE}; //状态字指令
|
||||
uint32_t retval = 0;
|
||||
|
||||
retval = Aht20I2cWrite(statusCmd, sizeof(statusCmd)); //发送状态字指令
|
||||
if (retval != HI_ERR_SUCCESS)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
retval = Aht20I2cRead(RevBuffer, sizeof(RevBuffer)); //接收状态字
|
||||
if (retval != HI_ERR_SUCCESS)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
if ((RevBuffer[0] & 0x80) || !(RevBuffer[0] & 0x08)) //设备忙或未校准
|
||||
{
|
||||
retval = AHT20ResetCommand(); //调用软启动命令,重启设备
|
||||
if (retval != HI_ERR_SUCCESS)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
usleep(20 * 1000); //重启所需时间
|
||||
retval = AHT20CalibrateCommand(); //校准命令
|
||||
usleep(40 * 1000); //校准所需时间
|
||||
return retval;
|
||||
}
|
||||
return HI_ERR_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
*发送 触发测量 命令,开始测量
|
||||
* return 0:成功 其他值:失败
|
||||
*/
|
||||
static uint32_t StartMeasure(void)
|
||||
{
|
||||
uint8_t triggerCmd[] = {AHT20_CMD_TRIGGER, AHT20_CMD_TRIGGER_ARG0, AHT20_CMD_TRIGGER_ARG1};
|
||||
return Aht20I2cWrite(triggerCmd, sizeof(triggerCmd));
|
||||
}
|
||||
static int IsDeviceBusy(uint8_t *buffer)
|
||||
{
|
||||
return (buffer[0] & 0x80) >> 7;
|
||||
}
|
||||
/**
|
||||
* 接收测量结果,拼接转换为标准值
|
||||
* \param[out] temp 温度值
|
||||
* \param[out] humi
|
||||
* * return 0:成功 其他值:失败
|
||||
**/
|
||||
static uint32_t GetMeasureResult(float *temp, float *humi)
|
||||
{
|
||||
uint32_t retval = 0, i = 0;
|
||||
if (temp == NULL || humi == NULL)
|
||||
{
|
||||
return HI_ERR_S_FAILURE;
|
||||
}
|
||||
|
||||
uint8_t buffer[AHT20_RECEIVE_MAX];
|
||||
memset(&buffer, 0x0, sizeof(buffer));
|
||||
retval = Aht20I2cRead(buffer, sizeof(buffer)); // recv status command result
|
||||
if (retval != HI_ERR_SUCCESS)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
for (i = 0; (IsDeviceBusy(buffer)) && i < AHT20_MAX_RETRY; i++)
|
||||
{
|
||||
usleep(75 * 1000);
|
||||
retval = Aht20I2cRead(buffer, sizeof(buffer)); // recv status command result
|
||||
if (retval != HI_ERR_SUCCESS)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
if (i >= AHT20_MAX_RETRY)
|
||||
{
|
||||
printf("AHT20 device always busy!\r\n");
|
||||
return HI_ERR_S_FAILURE;
|
||||
}
|
||||
|
||||
//转换
|
||||
uint32_t humiRaw = buffer[1];
|
||||
humiRaw = (humiRaw << 8) | buffer[2];
|
||||
humiRaw = (humiRaw << 4) | ((buffer[3] & 0xF0) >> 4);
|
||||
*humi = humiRaw / (float)(1 << 20) * 100;
|
||||
|
||||
uint32_t tempRaw = buffer[3] & 0x0F;
|
||||
tempRaw = (tempRaw << 8) | buffer[4];
|
||||
tempRaw = (tempRaw << 8) | buffer[5];
|
||||
*temp = tempRaw / (float)(1 << 20) * 200 - 50;
|
||||
|
||||
return HI_ERR_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 任务线程执行循环
|
||||
* \param arg 参数
|
||||
*/
|
||||
static void *THsensorTaskEntry(const char *arg)
|
||||
{
|
||||
(void)arg;
|
||||
uint32_t retval = 0;
|
||||
|
||||
float temp = 0.0, humi = 0.0;
|
||||
|
||||
//校准设备
|
||||
retval = AHT20Calibrate();
|
||||
printf("AHT20_Calibrate: %d\r\n", retval);
|
||||
|
||||
while (1)
|
||||
{
|
||||
//工作循环
|
||||
retval = StartMeasure();
|
||||
if (retval == HI_ERR_SUCCESS)
|
||||
{
|
||||
retval = GetMeasureResult(&temp, &humi);
|
||||
if (retval == HI_ERR_SUCCESS)
|
||||
{
|
||||
printf("AHT20 GetMeasureResult: temp = %.2f, humi = %.2f\r\n", temp, humi);
|
||||
}
|
||||
}
|
||||
|
||||
usleep(1000000);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void THsensorExampleEntry(void)
|
||||
{
|
||||
osThreadAttr_t attr;
|
||||
|
||||
IoTI2cInit(HI_I2C_IDX_0, 100 * 1000); /* baudrate: 100K */
|
||||
|
||||
attr.name = "THsensorTask";
|
||||
attr.attr_bits = 0U;
|
||||
attr.cb_mem = NULL;
|
||||
attr.cb_size = 0U;
|
||||
attr.stack_mem = NULL;
|
||||
attr.stack_size = CGSENSOR_TASK_STACK_SIZE;
|
||||
attr.priority = CGSENSOR_TASK_PRIO;
|
||||
|
||||
if (osThreadNew((osThreadFunc_t)THsensorTaskEntry, NULL, &attr) == NULL)
|
||||
{
|
||||
printf("[THsensorExampleEntry] Falied to create THsensorTask!\n");
|
||||
}
|
||||
}
|
||||
|
||||
SYS_RUN(THsensorExampleEntry);
|
|
@ -0,0 +1,111 @@
|
|||
/*
|
||||
* Copyright (c) 2021 Talkweb Co.,ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "ohos_init.h"
|
||||
#include "cmsis_os2.h"
|
||||
|
||||
#include "iot_gpio.h"
|
||||
#include "hi_io.h"
|
||||
#include "hi_pwm.h"
|
||||
#include "hi_time.h"
|
||||
#include "buzze.h"
|
||||
volatile uint8_t buzze_flag = 0; // 是否正在播放标志 1. playing 0. free
|
||||
|
||||
#define PWM_BEEP_PORT HI_PWM_PORT_PWM0
|
||||
|
||||
static const uint16_t gTuneFreqs40M[] = {
|
||||
0, //40MHz时钟源
|
||||
38223, // 1 1046.5
|
||||
34052, // 2 1174.7
|
||||
30338, // 3 1318.5
|
||||
28635, // 4 1396.4
|
||||
25511, // 5 1568
|
||||
22728, // 6 1760
|
||||
20249, // 7 1975.5
|
||||
};
|
||||
|
||||
static const uint8_t gScoreNotesBeep[] = {
|
||||
5, 3, 3, 4, 2, 2, 1, 2, 3, 4, 5, 5, 5,
|
||||
5, 3, 3, 4, 2, 2, 1, 3, 5, 5, 1,
|
||||
2, 2, 2, 2, 2, 3, 4,
|
||||
3, 3, 3, 3, 3, 4, 5,
|
||||
5, 3, 3, 4, 2, 2, 1, 3, 5, 5, 1
|
||||
|
||||
};
|
||||
|
||||
static const uint8_t gScoreDurationsBeep[] = {
|
||||
4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 4, 4, 8,
|
||||
4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 8,
|
||||
4, 4, 4, 4, 4, 4, 8,
|
||||
4, 4, 4, 4, 4, 4, 8,
|
||||
4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 8};
|
||||
|
||||
static void PlayTuneTask(void *arg)
|
||||
{
|
||||
(void)arg;
|
||||
uint32_t tune;
|
||||
uint16_t freqDivisor;
|
||||
uint32_t tuneInterval;
|
||||
|
||||
for (size_t i = 0; i < sizeof(gScoreNotesBeep) / sizeof(gScoreNotesBeep[0]); i++)
|
||||
{
|
||||
tune = gScoreNotesBeep[i];
|
||||
freqDivisor = gTuneFreqs40M[tune];
|
||||
tuneInterval = gScoreDurationsBeep[i] * (125 * 1000); // 时间
|
||||
|
||||
hi_pwm_start(PWM_BEEP_PORT, freqDivisor / 2, freqDivisor);
|
||||
hi_udelay(tuneInterval);
|
||||
hi_pwm_stop(PWM_BEEP_PORT);
|
||||
}
|
||||
|
||||
if (buzze_flag == 1)
|
||||
{
|
||||
buzze_flag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void StartBuzz()
|
||||
{
|
||||
|
||||
if (buzze_flag == 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
buzze_flag = 1;
|
||||
|
||||
{ //蜂鸣器端口初始化
|
||||
IoTGpioInit(IOT_GPIO_IO_GPIO_9);
|
||||
IotIoSetFunc(IOT_GPIO_IO_GPIO_9, HI_IO_FUNC_GPIO_9_PWM0_OUT);
|
||||
|
||||
hi_pwm_init(PWM_BEEP_PORT);
|
||||
//时钟
|
||||
hi_pwm_set_clock(PWM_CLK_XTAL);
|
||||
}
|
||||
osThreadAttr_t attr;
|
||||
attr.name = "BuzzTask";
|
||||
attr.attr_bits = 0U;
|
||||
attr.cb_mem = NULL;
|
||||
attr.cb_size = 0U;
|
||||
attr.stack_mem = NULL;
|
||||
attr.stack_size = 1024;
|
||||
attr.priority = 25;
|
||||
|
||||
if (osThreadNew(PlayTuneTask, NULL, &attr) == NULL)
|
||||
{
|
||||
buzze_flag = 0;
|
||||
printf("[pwm] Falied to create BuzzTask!\n");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
#ifndef __BUZZE_H__
|
||||
#define __BUZZE_H__
|
||||
#include <stdint.h>
|
||||
|
||||
extern volatile uint8_t buzze_flag;
|
||||
|
||||
void StartBuzz();
|
||||
|
||||
#endif
|
|
@ -0,0 +1,46 @@
|
|||
#ifndef __SENSOR_H
|
||||
#define __SENSOR_H
|
||||
|
||||
//MQ-2
|
||||
#define ADC_TEST_LENGTH 64
|
||||
|
||||
#define THSENSOR_TASK_STACK_SIZE 2048
|
||||
#define THSENSOR_TASK_PRIO 25
|
||||
|
||||
//AHT20
|
||||
#define AHT20_I2C_IDX HI_I2C_IDX_0 //I2C ID
|
||||
|
||||
#define AHT20_RECEIVE_MAX 6 //AHT20 返回最大字节数
|
||||
#define AHT20_MAX_RETRY 10 //当AHT20未初始化,最大尝试重新初始化次数
|
||||
|
||||
#define CGSENSOR_TASK_STACK_SIZE 2048
|
||||
#define CGSENSOR_TASK_PRIO 25
|
||||
|
||||
#define AHT20_I2C_ADDR 0x38
|
||||
#define AHT20_READ_ADDR ((0x38<<1)|0x1)
|
||||
#define AHT20_WRITE_ADDR ((0x38<<1)|0x0)
|
||||
|
||||
#define AHT20_CMD_STATE 0x71 // 获取状态命令
|
||||
|
||||
#define AHT20_CMD_CALIBRATION 0xBE // 初始化(校准)命令
|
||||
#define AHT20_CMD_CALIBRATION_ARG0 0x08
|
||||
#define AHT20_CMD_CALIBRATION_ARG1 0x00
|
||||
|
||||
/**
|
||||
* 传感器在采集时需要时间,主机发出测量指令(0xAC)后,延时75毫秒以上再读取转换后的数据并判断返回的状态位是否正常。
|
||||
* 若状态比特位[Bit7]为0代表数据可正常读取,为1时传感器为忙状态,主机需要等待数据处理完成。
|
||||
**/
|
||||
#define AHT20_CMD_TRIGGER 0xAC // 触发测量命令
|
||||
#define AHT20_CMD_TRIGGER_ARG0 0x33
|
||||
#define AHT20_CMD_TRIGGER_ARG1 0x00
|
||||
|
||||
// 用于在无需关闭和再次打开电源的情况下,重新启动传感器系统,软复位所需时间不超过20 毫秒
|
||||
#define AHT20_CMD_RESET 0xBA // 软复位命令
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 67 KiB |
Binary file not shown.
Before Width: | Height: | Size: 103 KiB |
Binary file not shown.
Before Width: | Height: | Size: 809 KiB |
Binary file not shown.
After Width: | Height: | Size: 154 KiB |
Binary file not shown.
After Width: | Height: | Size: 159 KiB |
Binary file not shown.
BIN
device/talkweb/niobe/sdk_liteos/build/build_tmp/cache/Hi3861_wifiiot_app_base.bin
vendored
Normal file
BIN
device/talkweb/niobe/sdk_liteos/build/build_tmp/cache/Hi3861_wifiiot_app_base.bin
vendored
Normal file
Binary file not shown.
BIN
device/talkweb/niobe/sdk_liteos/build/build_tmp/cache/Hi3861_wifiiot_app_kernel.bin
vendored
Normal file
BIN
device/talkweb/niobe/sdk_liteos/build/build_tmp/cache/Hi3861_wifiiot_app_kernel.bin
vendored
Normal file
Binary file not shown.
BIN
device/talkweb/niobe/sdk_liteos/build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.bin
vendored
Normal file
BIN
device/talkweb/niobe/sdk_liteos/build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.bin
vendored
Normal file
Binary file not shown.
BIN
device/talkweb/niobe/sdk_liteos/build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.lzma
vendored
Normal file
BIN
device/talkweb/niobe/sdk_liteos/build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.lzma
vendored
Normal file
Binary file not shown.
BIN
device/talkweb/niobe/sdk_liteos/build/build_tmp/cache/hi_loader_boot.bin
vendored
Executable file
BIN
device/talkweb/niobe/sdk_liteos/build/build_tmp/cache/hi_loader_boot.bin
vendored
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,333 @@
|
|||
/home/openharmony/device/talkweb/niobe/sdk_liteos/build/scripts/hi_config_parser.py:85: SyntaxWarning: "is" with a literal. Did you mean "=="?
|
||||
if option is '':
|
||||
execute ota_builder with python...
|
||||
Compiling platform/drivers/uart/hi_uart.c
|
||||
Compiling platform/drivers/uart/uart.c
|
||||
Compiling platform/drivers/uart/uart_drv.c
|
||||
Archiving build/build_tmp/libs/platform/drivers/libuart.a
|
||||
riscv32-unknown-elf-ranlib build/build_tmp/libs/platform/drivers/libuart.a
|
||||
Compiling platform/drivers/adc/hi_adc.c
|
||||
Archiving build/build_tmp/libs/platform/drivers/libadc.a
|
||||
riscv32-unknown-elf-ranlib build/build_tmp/libs/platform/drivers/libadc.a
|
||||
Compiling platform/drivers/tsensor/hi_tsensor_pm.c
|
||||
Archiving build/build_tmp/libs/platform/drivers/libtsensor.a
|
||||
riscv32-unknown-elf-ranlib build/build_tmp/libs/platform/drivers/libtsensor.a
|
||||
Compiling platform/drivers/i2c/i2c.c
|
||||
Archiving build/build_tmp/libs/platform/drivers/libi2c.a
|
||||
riscv32-unknown-elf-ranlib build/build_tmp/libs/platform/drivers/libi2c.a
|
||||
Compiling platform/drivers/pwm/hi_pwm.c
|
||||
Archiving build/build_tmp/libs/platform/drivers/libpwm.a
|
||||
riscv32-unknown-elf-ranlib build/build_tmp/libs/platform/drivers/libpwm.a
|
||||
Compiling platform/system/cfg/sal_cfg.c
|
||||
Archiving build/build_tmp/libs/platform/system/libcfg.a
|
||||
riscv32-unknown-elf-ranlib build/build_tmp/libs/platform/system/libcfg.a
|
||||
Compiling platform/system/partition_table/flash_partition_table.c
|
||||
Archiving build/build_tmp/libs/platform/system/libparttab.a
|
||||
riscv32-unknown-elf-ranlib build/build_tmp/libs/platform/system/libparttab.a
|
||||
Compiling platform/system/upg/kernel_crypto.c
|
||||
Compiling platform/system/upg/upg_check_boot_bin.c
|
||||
Compiling platform/system/upg/upg_check_file.c
|
||||
Compiling platform/system/upg/upg_check_secure.c
|
||||
Compiling platform/system/upg/upg_common.c
|
||||
Compiling platform/system/upg/upg_start_up.c
|
||||
Compiling platform/system/upg/upg_user_verify.c
|
||||
Archiving build/build_tmp/libs/platform/system/libupg.a
|
||||
riscv32-unknown-elf-ranlib build/build_tmp/libs/platform/system/libupg.a
|
||||
Compiling components/at/src/at.c
|
||||
Compiling components/at/src/at_cmd.c
|
||||
Compiling components/at/src/at_demo_hks.c
|
||||
Compiling components/at/src/at_general.c
|
||||
Compiling components/at/src/at_hipriv.c
|
||||
Compiling components/at/src/at_io.c
|
||||
Compiling components/at/src/at_lowpower.c
|
||||
Compiling components/at/src/at_parse.c
|
||||
Compiling components/at/src/at_printf.c
|
||||
Compiling components/at/src/at_wifi.c
|
||||
Compiling components/at/src/hi_at.c
|
||||
Compiling components/at/src/hidumper_adapter_impl.c
|
||||
components/at/src/hidumper_adapter_impl.c: In function 'DumpMemRegion':
|
||||
components/at/src/hidumper_adapter_impl.c:194:27: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
|
||||
printf("%02X ", *((hi_u8 *)addr + i));
|
||||
^
|
||||
components/at/src/hidumper_adapter_impl.c: In function 'PlatformHiDumperIinit':
|
||||
components/at/src/hidumper_adapter_impl.c:215:1: warning: control reaches end of non-void function [-Wreturn-type]
|
||||
}
|
||||
^
|
||||
Archiving build/build_tmp/libs/components/at/libat.a
|
||||
riscv32-unknown-elf-ranlib build/build_tmp/libs/components/at/libat.a
|
||||
Compiling app/wifiiot_app/init/app_io_init.c
|
||||
Compiling app/wifiiot_app/src/app_demo_upg_verify.c
|
||||
Compiling app/wifiiot_app/src/app_main.c
|
||||
Compiling app/wifiiot_app/src/blackbox_adapter_impl.c
|
||||
Compiling app/wifiiot_app/src/ohos_main.c
|
||||
app/wifiiot_app/src/ohos_main.c: In function 'QuerySysparaCmd':
|
||||
app/wifiiot_app/src/ohos_main.c:23:5: warning: 'return' with no value, in function returning non-void
|
||||
return;
|
||||
^~~~~~
|
||||
app/wifiiot_app/src/ohos_main.c:21:27: note: declared here
|
||||
int __attribute__((weak)) QuerySysparaCmd()
|
||||
^~~~~~~~~~~~~~~
|
||||
app/wifiiot_app/src/ohos_main.c: In function 'OHOS_Main':
|
||||
app/wifiiot_app/src/ohos_main.c:45:13: warning: implicit declaration of function 'printf'; did you mean 'hi_at_printf'? [-Wimplicit-function-declaration]
|
||||
printf("Register ohos failed!\n");
|
||||
^~~~~~
|
||||
hi_at_printf
|
||||
Archiving build/build_tmp/libs/app/wifiiot_app/libwifiiot_app.a
|
||||
riscv32-unknown-elf-ranlib build/build_tmp/libs/app/wifiiot_app/libwifiiot_app.a
|
||||
Compiling boot/commonboot/efuse/efuse_drv.c
|
||||
Compiling boot/commonboot/flash/flash_hw_process_flashboot.c
|
||||
Compiling boot/flashboot/common/nvm/hi_nvm.c
|
||||
Compiling boot/flashboot/common/partition_table/boot_partition_table.c
|
||||
Compiling boot/flashboot/drivers/efuse/efuse.c
|
||||
Compiling boot/flashboot/drivers/flash/hi_flashboot_flash.c
|
||||
Compiling boot/flashboot/drivers/gpio/hi_flashboot_gpio.c
|
||||
Compiling boot/flashboot/drivers/io/hi_flashboot_io.c
|
||||
Compiling boot/flashboot/drivers/lsadc/adc_drv.c
|
||||
Compiling boot/flashboot/lzmaram/lzmaram.c
|
||||
Compiling boot/flashboot/secure/crypto.c
|
||||
Compiling boot/flashboot/startup/main.c
|
||||
riscv32-unknown-elf-gcc -mabi=ilp32 -march=rv32imc -x assembler-with-cpp -Os -Wall -Werror -nostdinc -fno-common -DARCH_RISCV -DLOS_COMPILE_LDM -DHI_BOARD_ASIC -DCONFIG_COMPRESSION_OTA_SUPPORT -DCONFIG_CHIP_PKT_32K -Iboot/flashboot/fixed/include -Iboot/flashboot/upg -Iboot/flashboot/include -Iboot/flashboot/drivers/lsadc -Iboot/flashboot/drivers/efuse -Iboot/flashboot/include/lzma -Iboot/flashboot/drivers/gpio -Iboot/flashboot/drivers/io -Ithird_party/u-boot-v2019.07/u-boot-v2019.07/lib/lzma -Iboot/flashboot/secure -Iboot/commonboot -c -o build/build_tmp/objs/flashboot/startup/riscv_init_flashboot.o boot/flashboot/startup/riscv_init_flashboot.S
|
||||
Compiling boot/flashboot/startup/stack_protect.c
|
||||
Compiling third_party/u-boot-v2019.07/u-boot-v2019.07/lib/crc32.c
|
||||
Compiling third_party/u-boot-v2019.07/u-boot-v2019.07/lib/lzma/LzmaDec.c
|
||||
Compiling third_party/u-boot-v2019.07/u-boot-v2019.07/lib/lzma/LzmaTools.c
|
||||
Compiling boot/flashboot/upg/boot_start.c
|
||||
Compiling boot/flashboot/upg/boot_upg_check.c
|
||||
Compiling boot/flashboot/upg/boot_upg_check_secure.c
|
||||
Compiling boot/flashboot/upg/boot_upg_common.c
|
||||
Compiling boot/flashboot/upg/boot_upg_kernel.c
|
||||
Compiling boot/flashboot/upg/boot_upg_start_up.c
|
||||
Compiling boot/flashboot/upg/boot_upg_tool.c
|
||||
riscv32-unknown-elf-ld -nostdlib -nostartfiles -static --gc-sections -T/home/openharmony/device/talkweb/niobe/sdk_liteos/build/link/flashboot_sha256.lds -Lbuild/libs -Lbuild/libs/boot_libs build/build_tmp/objs/flashboot/boot/commonboot/efuse/efuse_drv.o build/build_tmp/objs/flashboot/boot/commonboot/flash/flash_hw_process_flashboot.o build/build_tmp/objs/flashboot/common/nvm/hi_nvm.o build/build_tmp/objs/flashboot/common/partition_table/boot_partition_table.o build/build_tmp/objs/flashboot/drivers/efuse/efuse.o build/build_tmp/objs/flashboot/drivers/flash/hi_flashboot_flash.o build/build_tmp/objs/flashboot/drivers/gpio/hi_flashboot_gpio.o build/build_tmp/objs/flashboot/drivers/io/hi_flashboot_io.o build/build_tmp/objs/flashboot/drivers/lsadc/adc_drv.o build/build_tmp/objs/flashboot/lzmaram/lzmaram.o build/build_tmp/objs/flashboot/secure/crypto.o build/build_tmp/objs/flashboot/startup/main.o build/build_tmp/objs/flashboot/startup/riscv_init_flashboot.o build/build_tmp/objs/flashboot/startup/stack_protect.o build/build_tmp/objs/flashboot/third_party/u-boot-v2019.07/u-boot-v2019.07/lib/crc32.o build/build_tmp/objs/flashboot/third_party/u-boot-v2019.07/u-boot-v2019.07/lib/lzma/LzmaDec.o build/build_tmp/objs/flashboot/third_party/u-boot-v2019.07/u-boot-v2019.07/lib/lzma/LzmaTools.o build/build_tmp/objs/flashboot/upg/boot_start.o build/build_tmp/objs/flashboot/upg/boot_upg_check.o build/build_tmp/objs/flashboot/upg/boot_upg_check_secure.o build/build_tmp/objs/flashboot/upg/boot_upg_common.o build/build_tmp/objs/flashboot/upg/boot_upg_kernel.o build/build_tmp/objs/flashboot/upg/boot_upg_start_up.o build/build_tmp/objs/flashboot/upg/boot_upg_tool.o -o build/build_tmp/cache/flash_boot.elf --start-group --end-group
|
||||
riscv32-unknown-elf-objcopy -Obinary -R .rom.text -R .rom.code.text -R .u_boot_cmd -R .rom.data -R .rom.code.data -R .rom.bss -R .rom.code.bss -S build/build_tmp/cache/flash_boot.elf build/build_tmp/cache/hi_flash_boot.bin
|
||||
cleanup(["build/build_tmp/cache/hi_flash_boot.bin"], ["build/build_tmp/cache/flash_boot.elf"])
|
||||
tools/sign_tool/sign_tool -i build/build_tmp/cache/hi_flash_boot.bin -o output/bin/Hi3861_boot_signed.bin -n -toutput/bin/Hi3861_boot_signed_B.bin
|
||||
[input file]: build/build_tmp/cache/hi_flash_boot.bin
|
||||
[output file]: output/bin/Hi3861_boot_signed.bin
|
||||
[tail boot]: output/bin/Hi3861_boot_signed_B.bin
|
||||
Sign non securtiy kernel success!
|
||||
cleanup(["output/bin/Hi3861_boot_signed.bin"], ["build/build_tmp/cache/hi_flash_boot.bin"])
|
||||
Compiling boot/commonboot/efuse/efuse_drv.c
|
||||
Compiling boot/commonboot/flash/flash_hw_process_flashboot.c
|
||||
Compiling boot/loaderboot/common/cmd_loop.c
|
||||
Compiling boot/loaderboot/common/efuse_opt.c
|
||||
Compiling boot/loaderboot/common/nvm/hi_nvm.c
|
||||
Compiling boot/loaderboot/common/partition_table/load_partition_table.c
|
||||
Compiling boot/loaderboot/common/transfer.c
|
||||
Compiling boot/loaderboot/drivers/efuse/efuse.c
|
||||
Compiling boot/loaderboot/drivers/flash/hi_loaderboot_flash.c
|
||||
Compiling boot/loaderboot/drivers/lsadc/adc_drv.c
|
||||
Compiling boot/loaderboot/secure/burn_file.c
|
||||
Compiling boot/loaderboot/secure/load_crypto.c
|
||||
Compiling boot/loaderboot/startup/main.c
|
||||
riscv32-unknown-elf-gcc -mabi=ilp32 -march=rv32imc -x assembler-with-cpp -Os -Wall -Werror -nostdinc -fno-common -DARCH_RISCV -DLOS_COMPILE_LDM -DHI_BOARD_ASIC -DCONFIG_COMPRESSION_OTA_SUPPORT -DCONFIG_CHIP_PKT_32K -Iboot/loaderboot/include -Iboot/loaderboot/fixed/include -Iboot/loaderboot/secure -Iboot/commonboot -c -o build/build_tmp/objs/loaderboot/startup/riscv_init_loaderboot.o boot/loaderboot/startup/riscv_init_loaderboot.S
|
||||
Compiling boot/loaderboot/startup/stack_protect.c
|
||||
Compiling third_party/u-boot-v2019.07/u-boot-v2019.07/lib/crc32.c
|
||||
Compiling third_party/u-boot-v2019.07/u-boot-v2019.07/lib/lzma/LzmaDec.c
|
||||
Compiling third_party/u-boot-v2019.07/u-boot-v2019.07/lib/lzma/LzmaTools.c
|
||||
riscv32-unknown-elf-ld -nostdlib -nostartfiles -static --gc-sections -T/home/openharmony/device/talkweb/niobe/sdk_liteos/build/link/loaderboot_sha256.lds -Lbuild/libs -Lbuild/libs/boot_libs build/build_tmp/objs/loaderboot/boot/commonboot/efuse/efuse_drv.o build/build_tmp/objs/loaderboot/boot/commonboot/flash/flash_hw_process_flashboot.o build/build_tmp/objs/loaderboot/common/cmd_loop.o build/build_tmp/objs/loaderboot/common/efuse_opt.o build/build_tmp/objs/loaderboot/common/nvm/hi_nvm.o build/build_tmp/objs/loaderboot/common/partition_table/load_partition_table.o build/build_tmp/objs/loaderboot/common/transfer.o build/build_tmp/objs/loaderboot/drivers/efuse/efuse.o build/build_tmp/objs/loaderboot/drivers/flash/hi_loaderboot_flash.o build/build_tmp/objs/loaderboot/drivers/lsadc/adc_drv.o build/build_tmp/objs/loaderboot/secure/burn_file.o build/build_tmp/objs/loaderboot/secure/load_crypto.o build/build_tmp/objs/loaderboot/startup/main.o build/build_tmp/objs/loaderboot/startup/riscv_init_loaderboot.o build/build_tmp/objs/loaderboot/startup/stack_protect.o build/build_tmp/objs/loaderboot/third_party/u-boot-v2019.07/u-boot-v2019.07/lib/crc32.o build/build_tmp/objs/loaderboot/third_party/u-boot-v2019.07/u-boot-v2019.07/lib/lzma/LzmaDec.o build/build_tmp/objs/loaderboot/third_party/u-boot-v2019.07/u-boot-v2019.07/lib/lzma/LzmaTools.o -o build/build_tmp/cache/loader_boot.elf --start-group --end-group
|
||||
riscv32-unknown-elf-objcopy -Obinary -R .rom.text -R .rom.code.text -R .u_boot_cmd -R .rom.data -R .rom.code.data -R .rom.bss -R .rom.code.bss -S build/build_tmp/cache/loader_boot.elf build/build_tmp/cache/hi_loader_boot.bin
|
||||
cleanup(["build/build_tmp/cache/hi_loader_boot.bin"], ["build/build_tmp/cache/loader_boot.elf"])
|
||||
tools/sign_tool/sign_tool -i build/build_tmp/cache/hi_loader_boot.bin -o output/bin/Hi3861_loader_signed.bin -n
|
||||
[input file]: build/build_tmp/cache/hi_loader_boot.bin
|
||||
[output file]: output/bin/Hi3861_loader_signed.bin
|
||||
Sign non securtiy kernel success!
|
||||
riscv32-unknown-elf-gcc -Iplatform/os/Huawei_LiteOS/kernel/include -Iconfig -DCONFIG_TEE_HUKS_SUPPORT -DCONFIG_CHIP_PKT_32K -DHI_BOARD_ASIC -DHI_ON_FLASH -E build/link/system_config.ld.S -o build/build_tmp/scripts/system_config.ld -P
|
||||
nvimg_builder(["build/build_tmp/scripts/system_config.ld"], ["build/link/system_config.ld.S"])
|
||||
product_name_list: ['sta']
|
||||
xml h file: /home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/h_file/nv
|
||||
/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/out_nv_bin/sta
|
||||
app_subver_list: ['demo']
|
||||
current subver_name:demo
|
||||
root_dir: /home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool
|
||||
mdm_xml: /home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/xml_file/mss_nvi_db.xml
|
||||
HNV NAME:mss_nvi_db.xml
|
||||
nv_tool: /home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/tools/nv/cdbm
|
||||
app_subver_temp_dir:/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/outside_demo
|
||||
make app_subver_temp_dir
|
||||
mdmxml:/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/xml_file/mss_nvi_db.xml
|
||||
src_xml_list: ['/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/xml_file/mss_nvi_db.xml']
|
||||
combin_xml:/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/mss_nvi_db.xml
|
||||
root_list [<Element 'HISTUDIO' at 0x7f567d5d5860>]
|
||||
hi_nv_modify_by_cfg
|
||||
cfg_file: nv
|
||||
|
||||
cmd_line= ('/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/tools/nv/cdbm', '/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/outside_demo/nv.xml', '/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/h_file/nv', '/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/outside_demo/nv')
|
||||
/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/outside_demo/nv.xml
|
||||
/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/h_file/nv
|
||||
/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/outside_demo/nv
|
||||
===========Init HDB Start===========
|
||||
*********strDataTypeDefPath:/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/h_file/nv/../nv/nv_modem_struct_def.txt
|
||||
*********strDataTypeDefPath:/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/h_file/nv/../nv/nv_modem_struct_def.txt
|
||||
*********strDataTypeDefPath:/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/h_file/nv/../nv/nv_factory_struct_def.txt
|
||||
===========Init HDB finish===========
|
||||
===========Write NV Buffer To File===========
|
||||
===========Write NV Buffer Finish===========
|
||||
RETURN VALUE:0
|
||||
dst_hnv= /home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/hnv/Hi3861_wifiiot_app.hnv
|
||||
Factory NV total num:10
|
||||
NV_FILE_STRU :28
|
||||
Factory NV total size:824
|
||||
Normal NV total num:13
|
||||
NV_FILE_STRU :28
|
||||
Normal NV total size:766
|
||||
build hnv OK:/home/openharmony/device/talkweb/niobe/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/hnv/Hi3861_wifiiot_app.hnv
|
||||
ENDING
|
||||
riscv32-unknown-elf-gcc -Iplatform/os/Huawei_LiteOS/kernel/include -Iconfig -DCONFIG_TEE_HUKS_SUPPORT -DCONFIG_CHIP_PKT_32K -DHI_BOARD_ASIC -DHI_ON_FLASH -DFLASH_FIRM_START=4248512 -E build/link/link.ld.S -o build/build_tmp/scripts/link.lds -P
|
||||
riscv32-unknown-elf-ld -nostartfiles -nostdlib -static --gc-sections -L/home/openharmony/device/talkweb/niobe/sdk_liteos/build/scripts/../../../../../huawei/hms/hilink/ohos/l0/hi3861/lib/wifi -L/home/tools/gcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0 -Lbuild/build_tmp/libs/app/wifiiot_app -Lbuild/build_tmp/libs/components/at -Lbuild/build_tmp/libs/platform/drivers -Lbuild/build_tmp/libs/platform/system -Lbuild/build_tmp/scripts -Lbuild/libs -Lbuild/libs/hi3861/release/no_mesh -Lbuild/scripts -Lohos/libs -Tbuild/build_tmp/scripts/link.lds -Map=output/bin/Hi3861_wifiiot_app.map -o output/bin/Hi3861_wifiiot_app.out --start-group --no-whole-archive --whole-archive -lHwKeystoreSDK -ladc -lat -lauthmanager -lblackbox -lbootstrap -lbroadcast -lc_flash -lcfg -lcjson_static -lcmsis -lcpup -ldiag -ldiscovery -ldrv -ldump_static -lflash -lgcc -lgpio -lhal_file_static -lhal_iothardware -lhal_sysparam -lhal_token_static -lhal_update_static -lhal_wifiaware -lhelloworld -lhichainsdk -lhidumper_mini -lhievent_lite -lhilog_lite -lhiview_lite -lhota -li2c -lio -liperf -llitekernel_flash -lltoswpa -llwip -lm_flash -lmbedtls -lnative_file -lparttab -lposix -lpwm -lres_cfg -lsamgr -lsamgr_adapter -lsamgr_source -lsdio -lsec_flash -lspiffs -lsysparam -lsystem -ltoken_static -ltrans_service -ltsensor -luart -lupg -lutils_kv_store -lwifi -lwifi_flash -lwifiaware -lwifiiot_app -lwifiservice -lwpa --end-group
|
||||
riscv32-unknown-elf-objcopy -O binary output/bin/Hi3861_wifiiot_app.out build/build_tmp/cache/Hi3861_wifiiot_app.bin
|
||||
baseimg_builder(["build/build_tmp/cache/Hi3861_wifiiot_app_base.bin", "build/build_tmp/cache/Hi3861_wifiiot_app_kernel.bin"], ["build/build_tmp/cache/Hi3861_wifiiot_app.bin"])
|
||||
cleanup(["build/build_tmp/cache/Hi3861_wifiiot_app_base.bin", "build/build_tmp/cache/Hi3861_wifiiot_app_kernel.bin"], ["build/build_tmp/cache/Hi3861_wifiiot_app.bin"])
|
||||
ota_builder(["build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.bin"], ["build/build_tmp/cache/Hi3861_wifiiot_app_base.bin", "build/build_tmp/cache/Hi3861_wifiiot_app_kernel.bin"])
|
||||
********************package kernel&nv upgrade file********************
|
||||
upg kernel file in: build/build_tmp/cache/Hi3861_wifiiot_app_kernel.bin
|
||||
upg normal nv file in: build/build_tmp/nv/Hi3861_wifiiot_app_normal.hnv
|
||||
upg file out: build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.bin
|
||||
[common_head_offset=0][common_head_size=96]
|
||||
[common_key_offset=96][common_key_size=288]
|
||||
[common_head_sign_offset=384][common_head_sign_size=256]
|
||||
[section_head_offset=640][section_head_size=64]
|
||||
[upg_file_sign_offset=704][upg_file_sign_size=256]
|
||||
[padding_offset=709448][padding_size=8]
|
||||
[upg fill user info]chip:b'Hi3861'
|
||||
-------------build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.bin image info print start-------------
|
||||
[image_id=0x3c78961e][struct_version=0x0]]
|
||||
[section_offset=0x280][section_len=0xad0d0]
|
||||
[file_type=0xf0][file_version=0x0][encrypt_flag=0x42]
|
||||
[file_len=0xad350][key_len=0x120]
|
||||
[file_attr=0x44]
|
||||
[hash_alg=0x0][sign_alg=0x3f][sign_param=0x0]
|
||||
[aes_key[0-1-14-15]=[0x0][0x0][0x0][0x0]]
|
||||
[aes_iv [0-1-14-15]=[0x0][0x0][0x0][0x0]]
|
||||
[common key][00]=[0x0]
|
||||
[common key][01]=[0x0]
|
||||
[common key][30]=[0x0]
|
||||
[common key][31]=[0x0]
|
||||
[common sign][00]=[0xb4]
|
||||
[common sign][01]=[0xc]
|
||||
[common sign][30]=[0x1c]
|
||||
[common sign][31]=[0x95]
|
||||
[section sign][00]=[0xbf]
|
||||
[section sign][01]=[0xda]
|
||||
[section sign][30]=[0x0]
|
||||
[section sign][31]=[0xe6]
|
||||
[image_id=0x3c78961e][struct_version=0x0]]
|
||||
[hash_alg=0x0][sign_alg=0x3f][sign_param=0x0]
|
||||
[section_count=0x2]
|
||||
[section0_compress=0x0][section0_offset=0x3c0][section0_len=0xabf88]
|
||||
[section1_compress=0x0][section1_offset=0xac348][section1_len=0x1000]
|
||||
-------------build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.bin image info print end--------------
|
||||
riscv32-unknown-elf-objdump -d output/bin/Hi3861_wifiiot_app.out > output/bin/Hi3861_wifiiot_app.asm
|
||||
burn_bin_builder(["output/bin/Hi3861_wifiiot_app_burn.bin", "output/bin/Hi3861_wifiiot_app_allinone.bin"], ["build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.bin", "output/bin/Hi3861_loader_signed.bin"])
|
||||
********************package hiburn file********************
|
||||
hbin flash boot file in : output/bin/Hi3861_boot_signed.bin
|
||||
hbin factory nv file in : build/build_tmp/nv/Hi3861_wifiiot_app_factory.hnv
|
||||
hbin normal nv file in : build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.bin
|
||||
hbin upg file in : build/build_tmp/nv/Hi3861_wifiiot_app_factory.hnv
|
||||
hbin file out : output/bin/Hi3861_wifiiot_app_burn.bin
|
||||
-------------output/bin/Hi3861_wifiiot_app_burn.bin image info print start-------------
|
||||
[bin_size]=[0xba350]
|
||||
[image_id=0x3c78961e][struct_version=0x0]]
|
||||
[section_offset=0x280][section_len=0xad0d0]
|
||||
[file_type=0xf0][file_version=0x0][encrypt_flag=0x42]
|
||||
[file_len=0xad350][key_len=0x120]
|
||||
[hash_alg=0x0][sign_alg=0x3f][sign_param=0x0]
|
||||
[aes_key[0,1,14,15]=[0x0][0x0][0x0][0x0]]
|
||||
[aes_iv[0,1,14,15]=[0x0][0x0][0x0][0x0]]
|
||||
-------------output/bin/Hi3861_wifiiot_app_burn.bin image info print end--------------
|
||||
['output/bin/Hi3861_loader_signed.bin', 'output/bin/Hi3861_wifiiot_app_burn.bin']
|
||||
[0, 0]
|
||||
[0, 2097152]
|
||||
[15360, 762704]
|
||||
[0, 1]
|
||||
4022250975
|
||||
boot_ota_builder(["output/bin/Hi3861_wifiiot_app_flash_boot_ota.bin"], ["output/bin/Hi3861_boot_signed.bin"])
|
||||
********************package boot upgrade file********************
|
||||
boot upg file in: output/bin/Hi3861_boot_signed.bin
|
||||
boot upg file out: output/bin/Hi3861_wifiiot_app_flash_boot_ota.bin
|
||||
[common_head_offset=0][common_head_size=96]
|
||||
[common_key_offset=96][common_key_size=288]
|
||||
[common_head_sign_offset=384][common_head_sign_size=256]
|
||||
[section_head_offset=640][section_head_size=64]
|
||||
[upg_file_sign_offset=704][upg_file_sign_size=256]
|
||||
[padding_offset=0][padding_size=0]
|
||||
[upg fill user info]chip:b'Hi3861'
|
||||
-------------output/bin/Hi3861_wifiiot_app_flash_boot_ota.bin image info print start-------------
|
||||
[image_id=0x3c78961e][struct_version=0x0]]
|
||||
[section_offset=0x280][section_len=0x60a0]
|
||||
[file_type=0xe1][file_version=0x0][encrypt_flag=0x42]
|
||||
[file_len=0x6320][key_len=0x120]
|
||||
[file_attr=0x44]
|
||||
[hash_alg=0x0][sign_alg=0x3f][sign_param=0x0]
|
||||
[aes_key[0-1-14-15]=[0x0][0x0][0x0][0x0]]
|
||||
[aes_iv [0-1-14-15]=[0x0][0x0][0x0][0x0]]
|
||||
[common key][00]=[0x0]
|
||||
[common key][01]=[0x0]
|
||||
[common key][30]=[0x0]
|
||||
[common key][31]=[0x0]
|
||||
[common sign][00]=[0xc9]
|
||||
[common sign][01]=[0x21]
|
||||
[common sign][30]=[0x2f]
|
||||
[common sign][31]=[0x82]
|
||||
[section sign][00]=[0x34]
|
||||
[section sign][01]=[0x40]
|
||||
[section sign][30]=[0x90]
|
||||
[section sign][31]=[0x2]
|
||||
[image_id=0x3c78961e][struct_version=0x0]]
|
||||
[hash_alg=0x0][sign_alg=0x3f][sign_param=0x0]
|
||||
[section_count=0x1]
|
||||
[section0_compress=0x0][section0_offset=0x3c0][section0_len=0x5f60]
|
||||
[section1_compress=0x0][section1_offset=0x0][section1_len=0x0]
|
||||
-------------output/bin/Hi3861_wifiiot_app_flash_boot_ota.bin image info print end--------------
|
||||
compress_ota_builder(["output/bin/Hi3861_wifiiot_app_ota.bin"], ["build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.bin"])
|
||||
********************package compress upgrade file********************
|
||||
compress upg file in: build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.bin
|
||||
compress upg file out: output/bin/Hi3861_wifiiot_app_ota.bin
|
||||
lzma compress tool : /home/openharmony/device/talkweb/niobe/sdk_liteos/build/scripts/../../tools/lzma_tool/lzma_tool
|
||||
lzma src file : build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.bin
|
||||
lzma out file : build/build_tmp/cache/Hi3861_wifiiot_app_ota_temp.lzma
|
||||
|
||||
LZMA 19.00 (x64) : Igor Pavlov : Public domain : 2019-02-21
|
||||
|
||||
Input size: 709456 (0 MiB)
|
||||
Output size: 443074 (0 MiB)
|
||||
[upgbin-compressbin]0xad350-0x128000
|
||||
[common_head_offset=0][common_head_size=96]
|
||||
[common_key_offset=96][common_key_size=288]
|
||||
[common_head_sign_offset=384][common_head_sign_size=256]
|
||||
[section_head_offset=640][section_head_size=64]
|
||||
[upg_file_sign_offset=704][upg_file_sign_size=256]
|
||||
[padding_offset=444034][padding_size=14]
|
||||
[upg fill user info]chip:b'Hi3861'
|
||||
-------------output/bin/Hi3861_wifiiot_app_ota.bin image info print start-------------
|
||||
[image_id=0x3c78961e][struct_version=0x0]]
|
||||
[section_offset=0x280][section_len=0x6c410]
|
||||
[file_type=0xf0][file_version=0x0][encrypt_flag=0x42]
|
||||
[file_len=0x6c690][key_len=0x120]
|
||||
[file_attr=0x44]
|
||||
[hash_alg=0x0][sign_alg=0x3f][sign_param=0x0]
|
||||
[aes_key[0-1-14-15]=[0x0][0x0][0x0][0x0]]
|
||||
[aes_iv [0-1-14-15]=[0x0][0x0][0x0][0x0]]
|
||||
[common key][00]=[0x0]
|
||||
[common key][01]=[0x0]
|
||||
[common key][30]=[0x0]
|
||||
[common key][31]=[0x0]
|
||||
[common sign][00]=[0x95]
|
||||
[common sign][01]=[0xbd]
|
||||
[common sign][30]=[0x26]
|
||||
[common sign][31]=[0xd]
|
||||
[section sign][00]=[0x8d]
|
||||
[section sign][01]=[0x82]
|
||||
[section sign][30]=[0xb]
|
||||
[section sign][31]=[0x5d]
|
||||
[image_id=0x3c78961e][struct_version=0x0]]
|
||||
[hash_alg=0x0][sign_alg=0x3f][sign_param=0x0]
|
||||
[section_count=0x1]
|
||||
[section0_compress=0x1][section0_offset=0x3c0][section0_len=0x6c2c2]
|
||||
[section1_compress=0x0][section1_offset=0x0][section1_len=0x0]
|
||||
-------------output/bin/Hi3861_wifiiot_app_ota.bin image info print end--------------
|
||||
[95m
|
||||
< ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >
|
||||
BUILD SUCCESS
|
||||
< ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >
|
||||
[0m
|
|
@ -0,0 +1,14 @@
|
|||
Building at 2021/10/07 06:26:20
|
||||
----------------------------top-----------------
|
||||
lib_name: uart
|
||||
lib_name: adc
|
||||
lib_name: tsensor
|
||||
lib_name: i2c
|
||||
lib_name: pwm
|
||||
lib_name: cfg
|
||||
lib_name: parttab
|
||||
lib_name: upg
|
||||
lib_name: at
|
||||
lib_name: wifiiot_app
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~libpath: ['-L/home/openharmony/device/talkweb/niobe/sdk_liteos/build/scripts/../../../../../huawei/hms/hilink/ohos/l0/hi3861/lib/wifi', '-L/home/tools/gcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0', '-Lbuild/build_tmp/libs/app/wifiiot_app', '-Lbuild/build_tmp/libs/components/at', '-Lbuild/build_tmp/libs/platform/drivers', '-Lbuild/build_tmp/libs/platform/system', '-Lbuild/build_tmp/scripts', '-Lbuild/libs', '-Lbuild/libs/hi3861/release/no_mesh', '-Lbuild/scripts', '-Lohos/libs']
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~libs: ['--no-whole-archive', '--whole-archive', '-lHwKeystoreSDK', '-ladc', '-lat', '-lauthmanager', '-lblackbox', '-lbootstrap', '-lbroadcast', '-lc_flash', '-lcfg', '-lcjson_static', '-lcmsis', '-lcpup', '-ldiag', '-ldiscovery', '-ldrv', '-ldump_static', '-lflash', '-lgcc', '-lgpio', '-lhal_file_static', '-lhal_iothardware', '-lhal_sysparam', '-lhal_token_static', '-lhal_update_static', '-lhal_wifiaware', '-lhelloworld', '-lhichainsdk', '-lhidumper_mini', '-lhievent_lite', '-lhilog_lite', '-lhiview_lite', '-lhota', '-li2c', '-lio', '-liperf', '-llitekernel_flash', '-lltoswpa', '-llwip', '-lm_flash', '-lmbedtls', '-lnative_file', '-lparttab', '-lposix', '-lpwm', '-lres_cfg', '-lsamgr', '-lsamgr_adapter', '-lsamgr_source', '-lsdio', '-lsec_flash', '-lspiffs', '-lsysparam', '-lsystem', '-ltoken_static', '-ltrans_service', '-ltsensor', '-luart', '-lupg', '-lutils_kv_store', '-lwifi', '-lwifi_flash', '-lwifiaware', '-lwifiiot_app', '-lwifiservice', '-lwpa']
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue