mirror of
https://github.com/espressif/openthread.git
synced 2026-08-22 18:39:50 +00:00
[continuous-integration] add POSIX SPI build (#4913)
This adds a CI build for POSIX platform with SPI enabled. Also fixed a build error in `spi_interface.cpp`.
This commit is contained in:
@@ -154,7 +154,7 @@ jobs:
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt --no-install-recommends install -y clang-${{ matrix.clang_ver }} clang++-${{ matrix.clang_ver }} g++-multilib
|
||||
sudo apt --no-install-recommends install -y clang-${{ matrix.clang_ver }} clang++-${{ matrix.clang_ver }} g++-multilib ninja-build
|
||||
- name: Build
|
||||
run: |
|
||||
script/check-posix-build
|
||||
|
||||
@@ -32,6 +32,7 @@ set -euxo pipefail
|
||||
main()
|
||||
{
|
||||
"$(dirname "$0")"/check-posix-build-autotools
|
||||
"$(dirname "$0")"/check-posix-build-cmake
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
||||
@@ -41,8 +41,10 @@ build()
|
||||
reset_source
|
||||
make -f src/posix/Makefile-posix
|
||||
|
||||
reset_source
|
||||
make -f src/posix/Makefile-posix RCP_SP=1
|
||||
if [[ $OSTYPE != "darwin"* ]] ; then
|
||||
reset_source
|
||||
make -f src/posix/Makefile-posix RCP_BUS=spi
|
||||
fi
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
Executable
+69
@@ -0,0 +1,69 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2020, The OpenThread Authors.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. Neither the name of the copyright holder nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
readonly OT_BUILDDIR="$(pwd)/build"
|
||||
readonly OT_SRCDIR="$(pwd)"
|
||||
|
||||
reset_source()
|
||||
{
|
||||
git checkout -- .
|
||||
git clean -xfd
|
||||
}
|
||||
|
||||
build()
|
||||
{
|
||||
local options=("$@")
|
||||
|
||||
options+=(
|
||||
"-DOT_COMPILE_WARNING_AS_ERROR=on"
|
||||
"-DOT_PLATFORM=posix"
|
||||
)
|
||||
|
||||
mkdir -p $OT_BUILDDIR
|
||||
cd $OT_BUILDDIR
|
||||
cmake -GNinja "${options[@]}" $OT_SRCDIR
|
||||
ninja
|
||||
|
||||
cd $OT_SRCDIR
|
||||
}
|
||||
|
||||
main()
|
||||
{
|
||||
reset_source
|
||||
build
|
||||
|
||||
if [[ $OSTYPE != "darwin"* ]] ; then
|
||||
reset_source
|
||||
build -DOT_POSIX_CONFIG_RCP_BUS=SPI
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -38,15 +38,17 @@ if(OT_POSIX_VIRTUAL_TIME)
|
||||
list(APPEND OT_PRIVATE_DEFINES "OPENTHREAD_POSIX_VIRTUAL_TIME=1")
|
||||
endif()
|
||||
|
||||
set(OT_POSIX_CONFIG_RCP_BUS "" CACHE STRING "RCP bus type")
|
||||
if(OT_POSIX_CONFIG_RCP_BUS)
|
||||
list(APPEND OT_PLATFORM_DEFINES "OPENTHREAD_POSIX_CONFIG_RCP_BUS=OT_POSIX_RCP_BUS_${OT_POSIX_CONFIG_RCP_BUS}")
|
||||
endif()
|
||||
|
||||
if(NOT OT_CONFIG)
|
||||
set(OT_CONFIG "openthread-core-posix-config.h")
|
||||
set(OT_CONFIG ${OT_CONFIG} PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
list(APPEND OT_PLATFORM_DEFINES
|
||||
"OPENTHREAD_POSIX=1"
|
||||
"OPENTHREAD_POSIX_CONFIG_RCP_BUS=OT_POSIX_RCP_BUS_UART"
|
||||
)
|
||||
list(APPEND OT_PLATFORM_DEFINES "OPENTHREAD_POSIX=1")
|
||||
|
||||
set(OT_PLATFORM_DEFINES ${OT_PLATFORM_DEFINES} PARENT_SCOPE)
|
||||
|
||||
|
||||
@@ -421,10 +421,10 @@ int HdlcInterface::OpenFile(const char *aFile, const char *aConfig)
|
||||
{
|
||||
struct termios tios;
|
||||
|
||||
int speed = 115200;
|
||||
int cstopb = 1;
|
||||
char parity = 'N';
|
||||
char flow = 'N';
|
||||
unsigned int speed = 115200;
|
||||
int cstopb = 1;
|
||||
char parity = 'N';
|
||||
char flow = 'N';
|
||||
|
||||
VerifyOrExit((rval = tcgetattr(fd, &tios)) == 0, OT_NOOP);
|
||||
|
||||
|
||||
@@ -401,7 +401,7 @@ otError SpiInterface::PushPullSpi(void)
|
||||
SuccessOrExit(error = mRxFrameBuffer.SetSkipLength(kSpiFrameHeaderSize));
|
||||
|
||||
// Check whether the remaining frame buffer has enough space to store the data to be received.
|
||||
VerifyOrExit(mRxFrameBuffer.GetFrameMaxLength() >= spiTransferBytes + mSpiAlignAllowance);
|
||||
VerifyOrExit(mRxFrameBuffer.GetFrameMaxLength() >= spiTransferBytes + mSpiAlignAllowance, OT_NOOP);
|
||||
|
||||
// Point to the start of the reserved buffer.
|
||||
spiRxFrameBuffer = mRxFrameBuffer.GetFrame() - kSpiFrameHeaderSize;
|
||||
|
||||
Reference in New Issue
Block a user