babblesim: Rework sdk package

This moves all external components to separate sdk package. We'll link
both bsim components and nrfx there and setup include paths.
This commit is contained in:
Andrzej Kaczmarek
2022-02-17 07:02:44 +01:00
parent 2332051c61
commit a63418cc12
9 changed files with 33 additions and 97 deletions
-3
View File
@@ -1,3 +0,0 @@
hw/babblesim/components
hw/babblesim/src
nrfx/src
+2 -7
View File
@@ -18,20 +18,15 @@
#
pkg.name: babblesim/core
pkg.type: sdk
pkg.description: time machine, irq handeler, core
pkg.author: "Apache Mynewt <dev@mynewt.apache.org>"
pkg.homepage: "http://mynewt.apache.org/"
pkg.keywords:
pkg.deps:
- "@apache-mynewt-core/kernel/os"
- "@apache-mynewt-nimble/nimble/controller"
- "@apache-mynewt-nimble/nimble/transport"
- "babblesim/hw/babblesim"
- "babblesim/sdk"
pkg.req_apis:
- ble_transport
pkg.cflags: -std=gnu99
pkg.init:
bsim_start: 9999
+3 -3
View File
@@ -31,7 +31,7 @@ pkg.cflags.HARDFLOAT:
- -mfloat-abi=hard -mfpu=fpv4-sp-d16
pkg.deps:
- "@apache-mynewt-core/hw/drivers/uart/uart_hal"
- "babblesim/hw/mcu/nordic/nrf52_bsim"
- "babblesim/hw/babblesim"
- "babblesim/core"
- "babblesim/hw/mcu/nordic/nrf52_bsim"
- "@apache-mynewt-core/hw/drivers/uart/uart_hal"
- "@apache-mynewt-nimble/nimble/controller"
+1 -1
View File
@@ -26,7 +26,7 @@ pkg.lflags:
- -lpthread
pkg.deps:
- "babblesim/nrfx"
- "babblesim/core"
pkg.deps.BLE_CONTROLLER:
- "@apache-mynewt-nimble/nimble/drivers/nrf52"
-37
View File
@@ -1,37 +0,0 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
#
pkg.name: babblesim/nrfx
pkg.description: nrfx wrapper for BabbleSim
pkg.author: "Apache Mynewt <dev@mynewt.apache.org>"
pkg.homepage: "https://mynewt.apache.org/"
pkg.type: sdk
pkg.cflags: -std=gnu99
pkg.include_dirs:
- src/
- src/drivers/
- src/hal/
- src/mdk/
pkg.deps:
- "@apache-mynewt-core/hw/hal"
pkg.pre_build_cmds:
scripts/link_nrfx.sh: 1
+3
View File
@@ -0,0 +1,3 @@
components
nrfx
src
@@ -17,28 +17,31 @@
# under the License.
#
pkg.name: babblesim/hw/babblesim
pkg.description: BabbleSim stuff
pkg.author: "Apache Mynewt <dev@mynewt.apache.org>"
pkg.homepage: "http://mynewt.apache.org/"
pkg.name: babblesim/sdk
pkg.type: sdk
pkg.description: External files required to build BabbleSim
pkg.author: "Apache Mynewt <dev@mynewt.apache.org>"
pkg.homepage: "https://mynewt.apache.org/"
pkg.cflags: -std=gnu99
pkg.include_dirs:
- components/ext_NRF52_hw_models/src/nrfx/mdk_replacements
- components/ext_NRF52_hw_models/src/HW_models
- components/ext_NRF52_hw_models/src/nrfx_config
- components/ext_NRF52_hw_models/src/nrfx/nrfx_replacements
- components/libUtilv1/src/
- components/libPhyComv1/src/
- components/libRandv2/src/
- components/ext_libCryptov1/src/
pkg.src_dirs:
- src
- components/ext_NRF52_hw_models/src/nrfx/mdk_replacements
- components/ext_NRF52_hw_models/src/HW_models
- components/libUtilv1/src
- components/libPhyComv1/src
- components/libRandv2/src
- components/ext_libCryptov1/src
- nrfx
- nrfx/drivers
- nrfx/hal
- nrfx/mdk
pkg.pre_build_cmds:
scripts/pre_build1.sh: 1
scripts/link_babblesim.sh: 1
scripts/link_nrfx.sh: 2
pkg.lflags:
- -ldl
- -ldl
@@ -34,36 +34,14 @@ if [ -z ${BSIM_OUT_PATH+x} ]; then
exit 1
fi
if [[ -d "$(pwd)/components" ]]
then
echo "Babblesim components: Directory exists. Removing and linking again..."
rm -r $(pwd)/components
else
echo "Babblesim components: Linking components..."
fi
ln -sfn "${BSIM_COMPONENTS_PATH}" ./components
ln -nsf $BSIM_OUT_PATH/components
if [[ -d "$(pwd)/src" ]]
then
echo "Babblesim libraries src: Directory exists. Removing and linking again..."
rm -r $(pwd)/src
else
echo "Babblesim components: Linking components..."
fi
mkdir -p src
ln -nsf $BSIM_OUT_PATH/components
# Create links to all .32.a files
# find $BSIM_OUT_PATH/lib/$lib -name "*.32.a" -type f -exec ln -t src -nsf {} \;
# Copy all .32.a files
find $BSIM_OUT_PATH/lib/$lib -name "*.32.a" -type f -exec cp -t src -f {} \;
mkdir -p ./src/
cp "${BSIM_OUT_PATH}"/lib/*.32.a ./src/
# XXX: Workaround for bad linking by newt. Sometimes newt will link
# nrf weak functions from nrf_hal_originals.o instead of their BabbleSim
# replacements inside libNRF52_hw_models.32.a. But as long as the other
# weak functions, that do not have their replacements, are not used,
# we can just remove the file from the .a library here.
ar d src/libNRF52_hw_models.32.a nrf_hal_originals.o
ar d ./src/libNRF52_hw_models.32.a nrf_hal_originals.o
@@ -18,7 +18,4 @@
# under the License.
#
mkdir -p ./src/
for f in nrfx.h drivers hal mdk; do
ln -sfn ${NRFX_BASE}/${f} ./src/${f}
done
ln -sfn ${NRFX_BASE} ./nrfx