-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ASR] add examples; add asr getting stated guide
- Loading branch information
Showing
152 changed files
with
11,919 additions
and
59 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
# ASR Getting Started Guide | ||
|
||
The ASR platform is a [Matter](https://github.com/project-chip/connectedhomeip) | ||
platform that uses ASR FreeRTOS SDK. | ||
|
||
--- | ||
|
||
- [ASR Getting Started Guide](#asr-getting-started-guide) | ||
- [Supported Chips](#supported-chips) | ||
- [Matter Example Applications](#matter-example-applications) | ||
- [Building the Example Application](#building-the-example-application) | ||
- [Commissioning](#commissioning) | ||
- [BLE mode](#ble-mode) | ||
- [IP mode](#ip-mode) | ||
- [Shell](#shell) | ||
- [OTA](#ota) | ||
|
||
--- | ||
|
||
## Supported Chips | ||
|
||
The ASR platform is supported on: | ||
|
||
- [ASR582X](http://www.asrmicro.com/en/goods/proinfo/36.html) | ||
- [ASR595X](http://www.asrmicro.com/en/goods/proinfo/42.html) | ||
|
||
## Matter Example Applications | ||
|
||
Sample Matter applications are provided for the ASR platform. They can be used | ||
to speed up development: | ||
|
||
- [all-clusters-app](../../examples/all-clusters-app/asr/README.md) | ||
- [all-clusters-minimal-app](../../examples/all-clusters-minimal-app/asr/README.md) | ||
- [lighting-app](../../examples/lighting-app/asr/README.md) | ||
- [light-switch-app](../../examples/light-switch-app/asr/README.md) | ||
- [lock-app](../../examples/lock-app/asr/README.md) | ||
- [ota-requestor-app](../../examples/ota-requestor-app/asr/README.md) | ||
- [temperature-measurement-app](../../examples/temperature-measurement-app/asr/README.md) | ||
- [bridge-app](../../examples/bridge-app/asr/README.md) | ||
- [thermostat](../../examples/thermostat/asr/README.md) | ||
|
||
## Building the Example Application | ||
|
||
- [Setup CHIP Environment](../../../docs/guides/BUILDING.md) | ||
|
||
- Setup toolchain | ||
- for ASR582X | ||
``` | ||
cd toolchain | ||
wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/RC2.1/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 | ||
tar -jxvf gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 | ||
export ASR_TOOLCHAIN_PATH={abs-path-to-toolchain}/gcc-arm-none-eabi-9-2019-q4-major/bin/ | ||
``` | ||
- for ASR595X | ||
``` | ||
git clone --depth=1 https://github.com/asriot/Tools.git | ||
cd Tools/toolchain | ||
cat asr_riscv_gnu_toolchain_10.2_ubuntu-16.04.tar.bz2.part* > asr_riscv_gnu_toolchain_10.2_ubuntu-16.04.tar.bz2 | ||
mkdir -p asr_riscv_gnu_toolchain_10.2_ubuntu-16.04 | ||
tar -jxvf asr_riscv_gnu_toolchain_10.2_ubuntu-16.04.tar.bz2 -C asr_riscv_gnu_toolchain_10.2_ubuntu-16.04/ | ||
export ASR_TOOLCHAIN_PATH={abs-path-to-toolchain}/asr_riscv_gnu_toolchain_10.2_ubuntu-16.04/bin/ | ||
``` | ||
- Setup Chip environment | ||
- for ASR582X: | ||
``` | ||
export ASR_BOARD=asr582x | ||
``` | ||
- for ASR595X: | ||
``` | ||
export ASR_BOARD=asr595x | ||
``` | ||
- Building the Application | ||
If the lighting example is to be built: | ||
``` | ||
./scripts/build/build_examples.py --target asr-$ASR_BOARD-lighting build | ||
``` | ||
- The output image files are stored in the subdirectories under `out`, the | ||
subdirectory name is the same as the argument specified after the option | ||
`--target` when build the examples. | ||
- After building the application, `DOGO` tool is used to flash it to the | ||
board. | ||
## Commissioning | ||
There are two commissioning modes supported by ASR platform: | ||
### BLE mode | ||
1. Build and Flash | ||
2. The example will run automatically after booting the ASR board. | ||
3. Restore factory settings using command `recovery` | ||
4. Commissioning with | ||
[Chip-Tool](https://github.com/project-chip/connectedhomeip/tree/master/examples/chip-tool),for | ||
example: | ||
``` | ||
./chip-tool pairing ble-wifi <node_id> <ssid> <password> <pin_code> <discriminator> | ||
``` | ||
### IP mode | ||
1. Build and Flash | ||
2. The example will run automatically after booting the ASR board. | ||
3. Restore factory settings using command `recovery` | ||
4. Connect to AP using command `wifi_open sta [ssid] [password]` | ||
5. Commissioning with | ||
[Chip-Tool](https://github.com/project-chip/connectedhomeip/tree/master/examples/chip-tool),for | ||
example: | ||
``` | ||
./chip-tool pairing onnetwork-long <node_id> <pin_code> <discriminator> | ||
``` | ||
## Shell | ||
1. Build and Flash To build the example with Matter shell,exactly the same steps | ||
as above but add argument `-shell` when using the `build_examples.py` script. | ||
For example: | ||
`./scripts/build/build_examples.py --target asr-$ASR_BOARD-lighting-shell build` | ||
2. The example will run automatically after booting the ASR board. | ||
3. Use `help` command to list all supported commands: | ||
``` | ||
help | ||
base64 Base64 encode / decode utilities | ||
exit Exit the shell application | ||
help List out all top level commands | ||
version Output the software version | ||
ble BLE transport commands | ||
wifi Usage: wifi <subcommand> | ||
config Manage device configuration. Usage to dump value: config [param_name] and to set some values (discriminator): config [param_name] [param_value]. | ||
device Device management commands | ||
onboardingcodes Dump device onboarding codes. Usage: onboardingcodes none|softap|ble|onnetwork [qrcode|qrcodeurl|manualpairingcode] | ||
dns Dns client commands | ||
OnOff OnOff commands. Usage: OnOff [on|off] | ||
Done | ||
``` | ||
## OTA | ||
1. Build and Flash To build the example with Matter shell,exactly the same steps | ||
as above but add argument `-ota` when using the `build_examples.py` script. | ||
For example: | ||
`./scripts/build/build_examples.py --target asr-$ASR_BOARD-lighting-ota build` | ||
2. For more usage details,please refer to the | ||
[OTA example](../../examples/ota-requestor-app/asr/README.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Copyright (c) 2023 Project CHIP Authors | ||
# | ||
# 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. | ||
|
||
import("//build_overrides/build.gni") | ||
|
||
# The location of the build configuration file. | ||
buildconfig = "${build_root}/config/BUILDCONFIG.gn" | ||
|
||
# CHIP uses angle bracket includes. | ||
check_system_includes = true | ||
|
||
default_args = { | ||
target_cpu = "arm" | ||
|
||
target_os = "freertos" | ||
|
||
import("//args.gni") | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
# Copyright (c) 2023 Project CHIP Authors | ||
# | ||
# 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. | ||
|
||
import("//build_overrides/asr.gni") | ||
import("//build_overrides/build.gni") | ||
import("//build_overrides/chip.gni") | ||
import("${asr_sdk_build_root}/asr_sdk.gni") | ||
import("${build_root}/config/defaults.gni") | ||
import("${chip_root}/src/lib/lib.gni") | ||
import("${chip_root}/src/platform/device.gni") | ||
import("${chip_root}/third_party/asr/asr_executable.gni") | ||
|
||
import("cfg.gni") | ||
|
||
assert(current_os == "freertos") | ||
|
||
asr_project_dir = "${chip_root}/examples/all-clusters-app/asr" | ||
examples_plat_dir = "${chip_root}/examples/platform/asr" | ||
|
||
declare_args() { | ||
# Dump memory usage at link time. | ||
chip_print_memory_usage = false | ||
} | ||
|
||
asr_sdk_sources("all_clusters_app_sdk_sources") { | ||
include_dirs = [ | ||
"${chip_root}/src/platform/ASR", | ||
"${asr_project_dir}/include", | ||
"${examples_plat_dir}", | ||
] | ||
|
||
defines = [ | ||
"ASR_LOG_ENABLED=1", | ||
"CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}", | ||
"CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setupDiscriminator}", | ||
] | ||
|
||
if (chip_enable_factory_data) { | ||
defines += [ | ||
"CONFIG_ENABLE_ASR_FACTORY_DATA_PROVIDER=1", | ||
"CONFIG_ENABLE_ASR_FACTORY_DEVICE_INFO_PROVIDER=1", | ||
] | ||
} | ||
|
||
if (chip_lwip_ip6_hook) { | ||
defines += [ | ||
"CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT", | ||
"CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT", | ||
] | ||
} | ||
|
||
sources = [ "${asr_project_dir}/include/CHIPProjectConfig.h" ] | ||
|
||
public_configs = [ "${asr_sdk_build_root}:asr_sdk_config" ] | ||
} | ||
|
||
asr_executable("clusters_app") { | ||
include_dirs = [] | ||
defines = [] | ||
output_name = "chip-asr-clusters-example.out" | ||
|
||
sources = [ | ||
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", | ||
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", | ||
"${examples_plat_dir}/CHIPDeviceManager.cpp", | ||
"${examples_plat_dir}/LEDWidget.cpp", | ||
"${examples_plat_dir}/init_Matter.cpp", | ||
"${examples_plat_dir}/init_asrPlatform.cpp", | ||
"${examples_plat_dir}/shell/matter_shell.cpp", | ||
"src/AppTask.cpp", | ||
"src/ButtonHandler.cpp", | ||
"src/DeviceCallbacks.cpp", | ||
"src/main.cpp", | ||
] | ||
|
||
if (chip_enable_ota_requestor) { | ||
sources += [ "${examples_plat_dir}/init_OTARequestor.cpp" ] | ||
} | ||
|
||
deps = [ | ||
":all_clusters_app_sdk_sources", | ||
"${chip_root}/examples/all-clusters-app/all-clusters-common", | ||
"${chip_root}/examples/common/QRCode", | ||
"${chip_root}/examples/providers:device_info_provider", | ||
"${chip_root}/src/lib", | ||
"${chip_root}/src/setup_payload", | ||
] | ||
|
||
include_dirs += [ | ||
"include", | ||
"${examples_plat_dir}", | ||
"${asr_project_dir}/include", | ||
"${chip_root}/examples/all-clusters-app/all-clusters-common/include", | ||
"${chip_root}/src", | ||
"${chip_root}/src/lib", | ||
"${chip_root}/src/lib/support", | ||
"${chip_root}/src/app/util", | ||
] | ||
|
||
defines = [ "ASR_NETWORK_LAYER_BLE=${chip_config_network_layer_ble}" ] | ||
|
||
if (chip_build_libshell) { | ||
defines += [ "CONFIG_ENABLE_CHIP_SHELL=1" ] | ||
sources += [ "${examples_plat_dir}/shell/launch_shell.cpp" ] | ||
include_dirs += [ "${examples_plat_dir}/shell" ] | ||
} | ||
|
||
if (chip_print_memory_usage) { | ||
ldflags += [ | ||
"-Wl,--print-memory-usage", | ||
"-fstack-usage", | ||
] | ||
} | ||
|
||
output_dir = root_out_dir | ||
} | ||
|
||
group("asr") { | ||
deps = [ ":clusters_app" ] | ||
} | ||
|
||
group("default") { | ||
deps = [ ":asr" ] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# CHIP ASR All Clusters Example | ||
|
||
A prototype application that demonstrates device commissioning and cluster | ||
control on ASR platform. | ||
|
||
--- | ||
|
||
- [CHIP ASR All Clusters Example](#chip-asr-all-clusters-example) | ||
- [Supported Chips](#supported-chips) | ||
- [Building and Commissioning](#building-and-commissioning) | ||
- [Cluster Control](#cluster-control) | ||
- [Light switch press button and light status LED](#light-switch-press-button-and-light-status-led) | ||
|
||
--- | ||
|
||
## Supported Chips | ||
|
||
The CHIP demo application is supported on: | ||
|
||
- ASR582X | ||
- ASR595X | ||
|
||
## Building and Commissioning | ||
|
||
Please refer | ||
[Building and Commissioning](../../../docs/guides/asr_getting_started_guide.md#building-the-example-application) | ||
guides to get started | ||
|
||
``` | ||
./scripts/build/build_examples.py --target asr-$ASR_BOARD-all-clusters build | ||
``` | ||
|
||
## Cluster Control | ||
|
||
After successful commissioning, use `chip-tool` to control the board | ||
|
||
For example, read sensor measured value: | ||
|
||
``` | ||
./chip-tool temperaturemeasurement read measured-value <NODE ID> 1 | ||
./chip-tool relativehumiditymeasurement read measured-value <NODE ID> 1 | ||
./chip-tool pressuremeasurement read measured-value <NODE ID> 1 | ||
``` | ||
|
||
Or,control the OnOff Cluster attribute: | ||
|
||
``` | ||
./chip-tool onoff read on-off <NODE ID> 1 | ||
./chip-tool onoff on <NODE ID> 1 | ||
./chip-tool onoff off <NODE ID> 1 | ||
./chip-tool onoff toggle <NODE ID> 1 | ||
``` | ||
|
||
## Light switch press button and light status LED | ||
|
||
This demo uses button to test changing the light states and LED to show the | ||
state of these changes. | ||
|
||
| Name | Pin | | ||
| :----: | :---: | | ||
| LED | PAD6 | | ||
| BUTTON | PAD12 | |
Oops, something went wrong.