Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/add corstone315 object detection app #60

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions .github/.cSpellWords.txt
Original file line number Diff line number Diff line change
@@ -1,26 +1,39 @@

AESCMAC
ACAMERA
Acamera
acamera
aesni
AESNI
AEXP
aframe
armar
Armv
ASYM
BBOOL
blinky
Blinky
BWCAP
CALIB
cbor
cborencoder
cborerrorstrings
cborparser
cborpretty
cccn
CDMA
cdma
cffi
cmac
CMAC
CMOS
cmos
CMSDK
cmsis
CMSIS
CMSIS's
COEF
coef
compatibil
coremqtt
COSE
Expand All @@ -30,13 +43,20 @@ DACTIVATION
DARM
DCMAKE
DCONFIG
DECOMPANDER
decompander
DEMOSAIC
Demosaic
demosaic
demultiplexing
DETHOS
DETHOSU
DFLASH
dgain
dgst
DMCUBOOT
docuemnt
DONGWOON
DPLATFORM
DPROJECT
drbg
Expand All @@ -51,20 +71,34 @@ ecdh
ECDH
ECKEY
endpointid
evlog
EVTOLUX
evtolux
FIFOS
fftr
fftwrap
fsanitize
FVPs
fwmem
GBRG
gemmlowp
GLCD
GPIO
havege
HDLCD
Hdlcd
hdlcd
hkdf
HKDF
ICSR
IDAQAB
indet
inkey
ioremap
iotdeviceadvisor
iounmap
IRIDIX
iridix
IRQN
ISRAM
istty
Expand All @@ -81,6 +115,10 @@ libspeexdsp
Libseepx
LLMNR
lltoa
luma
LUTS
luts
MACROFIED
MAXR
MAXW
MAXRW
Expand All @@ -103,6 +141,8 @@ MQTT's
mqttexample
MVEI
Mzrdfkvi
nents
NIOS
NSPE
NVIC
Onoa
Expand All @@ -121,13 +161,22 @@ ppuc
prepoccessor
pyelftools
pyproject
QADD
QDADD
QDSUB
QSPI
Retarget
Rfbo
RIHN
RLATENCY
RGBG
rgbg
RGGB
rggb
ROHM
RSAES
RSASSA
rtrack
SBCON
SECP
sntp
Expand All @@ -141,20 +190,37 @@ srecord
srtp
SRTP
SSRAM
SSSZ
suppr
SYSWDOG
TALGORITHMS
TGENERAL
THEIGHT
tinycbor
tinycbor's
TINYCBOR
TISP
tpip
TPIP
TRNG
TSCENE
TSENSOR
TSYSTEM
TWIDTH
UARTTX
UDBL
umean
uncrustify
unusued
USART
UYVY
VCLK
VECTACTIVE
venv
vmean
vsocket
WGHT
wght
WLATENCY
xtea
zeroize
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,14 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
application: [keyword-detection, speech-recognition]
application: [keyword-detection, speech-recognition, object-detection]
audio: [ROM, VSI]
inference: [ETHOS, SOFTWARE]
exclude:
- application: speech-recognition
inference: SOFTWARE
- application: object-detection
audio: VSI
steps:
- name: Checkout project
uses: actions/checkout@v3
Expand All @@ -44,7 +46,7 @@ jobs:
- name: Install build dependencies
shell: bash
run: |
pip install cmake ninja imgtool cffi intelhex cbor2 cbor jinja2 PyYaml pyelftools
pip install cmake ninja imgtool cffi intelhex cbor2 cbor jinja2 PyYaml pyelftools pyhsslms
sudo apt-get -y update
sudo apt-get -y install srecord libsndfile1-dev
- name: Install GNU Arm toolchain
Expand Down
30 changes: 28 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,20 @@ variables:
# Those fragments contain base variables required by pipelines for applications.
# They can be used to set matrix parameters and extended using << : .anchor syntax
.pipeline_config_non_ml_applications: &pipeline_config_non_ml_applications
TARGET: [corstone310, corstone300]
TARGET: [corstone315, corstone310, corstone300]
TOOLCHAIN: [ARMCLANG, GNU]
INFERENCE: [ETHOS]
AUDIO: [ROM]
.pipeline_config_ml_applications: &pipeline_config_ml_applications
TARGET: [corstone310, corstone300]
TARGET: [corstone315, corstone310, corstone300]
TOOLCHAIN: [ARMCLANG, GNU]
AUDIO: [ROM, VSI]
.pipeline_config_object_detection_applications: &pipeline_config_object_detection_applications
TARGET: [corstone315]
TOOLCHAIN: [ARMCLANG, GNU]
INFERENCE: [ETHOS, SOFTWARE]
AUDIO: [ROM]
APP: [object-detection]

stages:
- quality-check
Expand Down Expand Up @@ -58,10 +64,15 @@ workflow:
if [ $TARGET == "corstone310" ];then
FVP_BIN=FVP_Corstone_SSE-310
fi
- |
if [ $TARGET == "corstone315" ];then
FVP_BIN=FVP_Corstone_SSE-315
fi
parallel:
matrix:
- *pipeline_config_non_ml_applications
- *pipeline_config_ml_applications
- *pipeline_config_object_detection_applications
variables:
PYTHONUNBUFFERED: 1

Expand Down Expand Up @@ -115,6 +126,8 @@ build-applications:
<< : *pipeline_config_ml_applications
APP: [speech-recognition]
INFERENCE: [ETHOS]
-
<< : *pipeline_config_object_detection_applications

artifacts:
paths:
Expand Down Expand Up @@ -164,6 +177,17 @@ test-applications:
--pass-output-file "applications/${APP_UNDERSCORED}/tests/pass_output.log" \
--fail-output-file "applications/${APP_UNDERSCORED}/tests/fail_output.log" \
--pythonhome-path "/opt/python/3.9.18"
elif [[ $APP == "object-detection" ]]; then
pytest -s tools/tests/test_applications.py \
--frm-file-path "applications/${APP_UNDERSCORED}/resources/test.frm" \
--build-artefacts-path "build" \
--fvp $FVP_BIN \
--credentials-path "applications/${APP_UNDERSCORED}/configs/aws_configs" \
--merged-elf-name "${APP}_merged.elf" \
--signed-update-bin-name "${APP}-update_signed.bin" \
--timeout-seconds 1800 \
--pass-output-file "applications/${APP_UNDERSCORED}/tests/pass_output.log" \
--fail-output-file "applications/${APP_UNDERSCORED}/tests/fail_output.log"
else
pytest -s tools/tests/test_applications.py \
--build-artefacts-path "build" \
Expand All @@ -185,6 +209,8 @@ test-applications:
<< : *pipeline_config_ml_applications
APP: [speech-recognition]
INFERENCE: [ETHOS]
-
<< : *pipeline_config_object_detection_applications

integration-tests:
stage: test
Expand Down
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,9 @@
[submodule "components/aws_iot/coresntp/library"]
path = components/aws_iot/coresntp/library
url = https://github.com/FreeRTOS/coreSNTP.git
[submodule "isp_mali-c55"]
path = bsp/isp_mali-c55/library
url = https://git.gitlab.arm.com/iot/m-class/drivers/isp_mali-c55.git
[submodule "components/graphics/arm-2d/library"]
path = components/graphics/arm-2d/library
url = https://github.com/ARM-software/Arm-2D.git
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ CPU and Ethos NPU, alongside a range of other components in a scalable and
flexible reference package. This enables designers to build secure,
AI-capable SoCs faster.

* [Corstone-315](https://developer.arm.com/Processors/Corstone-315)
* Arm Cortex-M85 CPU, Ethos-U65 NPU and Mali-C55 ISP
* Supported versions: 11.24.13 and above
* [Corstone-310](https://developer.arm.com/Processors/Corstone-310)
* Arm Cortex-M85 CPU and Ethos-U55 NPU
* Supported versions: 11.24.13 and above
Expand Down Expand Up @@ -65,6 +68,8 @@ This reference integration contains following two examples:
* Demonstrates detecting keywords from an audio source using Machine Learning.
* [Speech Recognition](docs/speech_recognition.md)
* Demonstrates detecting sentences from an audio source using Machine Learning.
* [Object Detection](docs/object_detection.md)
* Demonstrates detection of faces from image source using Machine Learning.

The Keyword-Detection and Speech-Recognition applications demonstrate [secure connectivity](#secure-tls-connection)
to AWS IoT core using [Mbed TLS](#mbed-tls), [PKCS#11 PSA Shim](#pkcs11-psa-shim) and
Expand Down Expand Up @@ -152,6 +157,11 @@ This implementation maps the AWS OTA PAL APIs to the PSA Firmware Update and
PSA Cryptography APIs. The writing, verification and activation of the update
image are protected by the PSA secure services.

### Mali-C55 Versatile Image Signal Processor for Computer Vision and Smart Display Systems

Implementation of [Arm® Mali™-C55 bare-metal driver](https://gitlab.arm.com/iot/m-class/drivers/isp_mali-c55),
that demonstrates the usage of the Mali-C55 ISP with the Corstone M85 processor.

## Contributing

See [CONTRIBUTING](CONTRIBUTING.md) for more information.
Expand Down
7 changes: 1 addition & 6 deletions applications/blinky/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,4 @@ iot_reference_arm_corstone3xx_tf_m_sign_image(blinky blinky_signed 0.0.1 TRUE)
# addresses in order to merge images for TF-M. The addresses cannot
# be easily programmatically extracted as they are defined in the linker
# scripts.
iot_reference_arm_corstone3xx_tf_m_merge_images(blinky
${BL2_IMAGE_LOAD_ADDRESS}
${S_IMAGE_LOAD_ADDRESS}
${NS_IMAGE_LOAD_ADDRESS}
${S_PROVISIONING_BUNDLE_LOAD_ADDRESS}
)
iot_reference_arm_corstone3xx_tf_m_merge_images(blinky)
1 change: 0 additions & 1 deletion applications/blinky/tests/pass_output.log
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
Starting bootloader
Waiting for provisioning bundle
Running provisioning bundle
Booting TF-M v2.0.0
Expand Down
4 changes: 0 additions & 4 deletions applications/freertos_iot_libraries_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -140,10 +140,6 @@ iot_reference_arm_corstone3xx_tf_m_sign_image(
# scripts.
iot_reference_arm_corstone3xx_tf_m_merge_images(
${CMAKE_PROJECT_NAME}
${BL2_IMAGE_LOAD_ADDRESS}
${S_IMAGE_LOAD_ADDRESS}
${NS_IMAGE_LOAD_ADDRESS}
${S_PROVISIONING_BUNDLE_LOAD_ADDRESS}
${NS_PROVISIONING_BUNDLE_LOAD_ADDRESS}
${CMAKE_BINARY_DIR}/helpers/provisioning/provisioning_data.bin
)
Expand Down
1 change: 1 addition & 0 deletions applications/helpers/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

add_subdirectory(device_advisor)
add_subdirectory(events)
add_subdirectory(hdlcd)
add_subdirectory(logging)
add_subdirectory(provisioning)
add_subdirectory(sntp)
20 changes: 20 additions & 0 deletions applications/helpers/hdlcd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2023-2024 Arm Limited and/or its affiliates
# <[email protected]>
# SPDX-License-Identifier: MIT

add_library(helpers-hdlcd STATIC)

target_include_directories(helpers-hdlcd
PUBLIC
.
)

target_sources(helpers-hdlcd
PUBLIC
hdlcd_helper.c
)

target_link_libraries(helpers-hdlcd
PUBLIC
fri-bsp
)
Loading
Loading