nigelb / platform-apollo3blue Goto Github PK
View Code? Open in Web Editor NEWAmbiqMicro Apollo 3 Blue: development platform for PlatformIO
License: Apache License 2.0
AmbiqMicro Apollo 3 Blue: development platform for PlatformIO
License: Apache License 2.0
I have a board, with the SVL bootloader (I am able to upload from the Arduino IDE). However in Platformio I get:
RAM: [==========] 99.7% (used 391928 bytes from 393216 bytes)
Flash: [= ] 10.5% (used 103592 bytes from 983040 bytes)
Configuring upload protocol...
AVAILABLE: svl
CURRENT: upload_protocol = svl
/home/jrlab/.platformio/packages/framework-arduinoapollo3/tools/uploaders/svl/dist/linux/svl /dev/ttyUSB0 -b 921600 -f .pio/build/SparkFun_RedBoard_Artemis/firmware.bin -v
Artemis SVL Bootloader
Script version 1.7
Phase: Setup
Cleared startup blip
Failed to enter bootload phase
Phase: Setup
Cleared startup blip
Failed to enter bootload phase
Phase: Setup
Cleared startup blip
Failed to enter bootload phase
Target failed to enter bootload mode. Verify the right COM port is selected and that your board has the SVL bootloader.
=================================================================================== [SUCCESS] Took 2.79 seconds ===================================================================================
platformio.ini
, I think it looks good (/dev/ttyUSB0
is well the port I am using successfully in Arduino IDE):[env:SparkFun_RedBoard_Artemis]
platform = apollo3blue
board = SparkFun_RedBoard_Artemis
framework = arduino
upload_port = /dev/ttyUSB0
I always get (some variations of) the following error message when creating a new project with an Artemis board:
PIO Core Call Error: "The current working directory /home/jrlab/Documents/PlatformIO/Projects/test_err_msg will be used for the
project.\n\nThe next files/directories have been created in /home/jrlab/Documents/PlatformIO/Projects/test_err_msg\ninclude - Put project header files here\nlib - Put here project specific (private) libraries\nsrc - Put project source files here\nplatformio.ini - Project Configuration File\n\n\nError: Processing SparkFun_RedBoard_Artemis (platform: apollo3blue; board: SparkFun_RedBoard_Artemis; framework: arduino)\n--------------------------------------------------------------------------------\nTool Manager: Could not parse manifest -> Expecting property name enclosed in double quotes: line 7 column 1 (char 204)\nTool Manager: Could not parse manifest -> Expecting property name enclosed in double quotes: line 7 column 1 (char 204)\nVerbose mode can be enabled via `-v, --verbose` option\nTool Manager: Could not parse manifest -> Expecting property name enclosed in double quotes: line 7 column 1 (char 204)\nError: Please specify `upload_port` for environment or use global `--upload-port` option.\nFor some development platforms it can be a USB flash drive (i.e. /media/<user>/<device name>)\n========================== [FAILED] Took 0.23 seconds =========================="
Basically, complaining that I need to specify the upload_port
in the platformio.ini config file. Easy enough to fix by adding a dummy upload port to the config file, but annoying, and may scare people who are "even n00ber than me" :) .
See project: https://community.platformio.org/t/dependency-hell-help/30587/4?u=maxgerhardt
For framework = ambiqsdk-sfe
projects, the libraries in the lib/
folder of the project are ignored, the LDF fails to find them although every file is at the correct place.
When removing the overwrite (?) of the PIO internal __PIO_LIB_BUILDERS
variable, the library appears again in the build process / .vscode/c_cpp_properties.json
.
It should be investigated what's going on there, and possibly rewrite the build logic to use regular env.BuildLibrary()
calls with source filters, like I do e.g. here.
Hello,
My application is configured using the default ambiq swo clock of 1Mbauds and the autodetect seems to not work (it tries to set it to 12M
-swofreq 1000000 works for me
Thanks!
With any builds for the artemis nano board I get the following error:
arm-none-eabi-g++: error: blink.pio\build\SparkFun_RedBoard_Artemis_Nano\program.map: No such file or directory
*** [.pio\build\SparkFun_RedBoard_Artemis_Nano\program.exe] Error 1
Any thoughts on what is causing it?
Forwarding from platformio/platformio-core#4513 following @ivankravets recommendation.
Copy of the issue:
I am hitting a strange include failure for some /lib code in a PlatformIO project (I put nearly all the code in /lib these days because of some habits I grabbed from some projects where I run quite a few unit-tests, which can include code from /lib but not from /src ; if putting most of my code in /lib is an antipattern, sorry, let me know).
To reproduce the exact same setup:
install the sparkfun artemis core in v 1.2.3: https://github.com/nigelb/platform-apollo3blue , detailed instructions https://github.com/jerabaul29/OpenMetBuoy-v2021a/blob/main/development_environment/setup_platformio_environment/Instructions.md .
set up the repo:
git clone [email protected]:jvoermans/Wind_Input_V1.git
git checkout logger_version_jr-import_issue_sdfat
git submodule init
git submodule update
Executing task: platformio run
Processing SparkFun_RedBoard_Artemis (platform: apollo3blue; board: SparkFun_RedBoard_Artemis; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/apollo3blue/SparkFun_RedBoard_Artemis.html
PLATFORM: Apollo 3 Blue (0.0.2) > SparkFun RedBoard Artemis
HARDWARE: AMA3B1KK 48MHz, 384KB RAM, 960KB Flash
DEBUG: Current (jlink) External (jlink)
PACKAGES:
- framework-arduinoapollo3 @ 1.2.3
- toolchain-gccarmnoneeabi @ 1.90201.191206 (9.2.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 26 compatible libraries
Scanning dependencies...
Dependency Graph
|-- data_manager
|-- config
| |-- SdFat @ 2.2.0
| | |-- SPI @ 1.0
| |-- utils
|-- gnss_manager
| |-- Embedded Template Library - Arduino @ 20.35.5
| |-- config
| | |-- SdFat @ 2.2.0
| | | |-- SPI @ 1.0
| | |-- utils
| |-- kiss_clang_posix_time_utils
| |-- statistical_processing
| | |-- Embedded Template Library - Arduino @ 20.35.5
| | |-- config
| | | |-- SdFat @ 2.2.0
| | | | |-- SPI @ 1.0
| | | |-- utils
| |-- time_manager
| | |-- config
| | | |-- SdFat @ 2.2.0
| | | | |-- SPI @ 1.0
| | | |-- utils
| | |-- kiss_clang_posix_time_utils
| | |-- utils
| |-- watchdog_manager
| | |-- WDT @ 0.1
| |-- Adafruit GPS Library @ 1.7.1
| | |-- SPI @ 1.0
| | |-- Wire @ 1.0
|-- sd_manager
| |-- SdFat @ 2.2.0
| | |-- SPI @ 1.0
| |-- config
| | |-- SdFat @ 2.2.0
| | | |-- SPI @ 1.0
| | |-- utils
| |-- gnss_manager
| | |-- Embedded Template Library - Arduino @ 20.35.5
| | |-- config
| | | |-- SdFat @ 2.2.0
| | | | |-- SPI @ 1.0
| | | |-- utils
| | |-- kiss_clang_posix_time_utils
| | |-- statistical_processing
| | | |-- Embedded Template Library - Arduino @ 20.35.5
| | | |-- config
| | | | |-- SdFat @ 2.2.0
| | | | | |-- SPI @ 1.0
| | | | |-- utils
| | |-- time_manager
| | | |-- config
| | | | |-- SdFat @ 2.2.0
| | | | | |-- SPI @ 1.0
| | | | |-- utils
| | | |-- kiss_clang_posix_time_utils
| | | |-- utils
| | |-- watchdog_manager
| | | |-- WDT @ 0.1
| | |-- Adafruit GPS Library @ 1.7.1
| | | |-- SPI @ 1.0
| | | |-- Wire @ 1.0
| |-- watchdog_manager
| | |-- WDT @ 0.1
| |-- SPI @ 1.0
|-- sleep_manager
| |-- config
| | |-- SdFat @ 2.2.0
| | | |-- SPI @ 1.0
| | |-- utils
| |-- kiss_clang_posix_time_utils
| |-- time_manager
| | |-- config
| | | |-- SdFat @ 2.2.0
| | | | |-- SPI @ 1.0
| | | |-- utils
| | |-- kiss_clang_posix_time_utils
| | |-- utils
| |-- watchdog_manager
| | |-- WDT @ 0.1
|-- time_manager
| |-- config
| | |-- SdFat @ 2.2.0
| | | |-- SPI @ 1.0
| | |-- utils
| |-- kiss_clang_posix_time_utils
| |-- utils
|-- watchdog_manager
| |-- WDT @ 0.1
Building in release mode
Compiling .pio/build/SparkFun_RedBoard_Artemis/src/main.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/lib8b0/SPI/SPI.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/ExFatLib/ExFatDbg.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/ExFatLib/ExFatFile.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/ExFatLib/ExFatFilePrint.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/ExFatLib/ExFatFileWrite.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/ExFatLib/ExFatFormatter.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/ExFatLib/ExFatName.cpp.o
Archiving .pio/build/SparkFun_RedBoard_Artemis/lib8b0/libSPI.a
Indexing .pio/build/SparkFun_RedBoard_Artemis/lib8b0/libSPI.a
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/ExFatLib/ExFatPartition.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/ExFatLib/ExFatVolume.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FatLib/FatDbg.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FatLib/FatFile.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FatLib/FatFileLFN.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FatLib/FatFilePrint.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FatLib/FatFileSFN.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FatLib/FatFormatter.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FatLib/FatName.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FatLib/FatPartition.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FatLib/FatVolume.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FreeStack.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FsLib/FsFile.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FsLib/FsNew.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/FsLib/FsVolume.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/MinimumSerial.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/SdCard/SdCardInfo.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/SdCard/SdSpiCard.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/SdCard/SdioTeensy.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/SpiDriver/SdSpiArtemis.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/SpiDriver/SdSpiChipSelect.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/SpiDriver/SdSpiDue.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/SpiDriver/SdSpiESP.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/SpiDriver/SdSpiParticle.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/SpiDriver/SdSpiSTM32.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/SpiDriver/SdSpiSTM32Core.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/SpiDriver/SdSpiTeensy3.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/common/FmtNumber.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/common/FsCache.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/common/FsDateTime.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/common/FsName.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/common/FsStructs.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/common/FsUtf.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/common/PrintBasic.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/common/upcase.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/iostream/StdioStream.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/iostream/StreamBaseClass.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/iostream/istream.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/liba08/SdFat/iostream/ostream.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/lib2db/utils/print_utils.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/lib092/config/firmware_configuration.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/lib092/config/user_configuration.cpp.o
In file included from lib/utils/print_utils.h:8,
from lib/utils/print_utils.cpp:1:
lib/config/firmware_configuration.h:4:10: fatal error: SdFat.h: No such file or directory
***************************************************************
* Looking for SdFat.h dependency? Check our library registry!
*
* CLI > platformio lib search "header:SdFat.h"
* Web > https://registry.platformio.org/search?q=header:SdFat.h
*
***************************************************************
4 | #include "SdFat.h"
| ^~~~~~~~~
compilation terminated.
*** [.pio/build/SparkFun_RedBoard_Artemis/lib2db/utils/print_utils.cpp.o] Error 1
==================================================================================================== [FAILED] Took 14.62 seconds ====================================================================================================
* The terminal process "platformio 'run'" terminated with exit code: 1.
* Terminal will be reused by tasks, press any key to close it.
Now what I really cannot understand is that the error is that seems to break compilation is:
lib/config/firmware_configuration.h:4:10: fatal error: SdFat.h: No such file or directory
But the SdFat.h
file does is present, in its own lib folder as a submodule, is recognized by the dependency checker built in PlatformIO, etc. Actually, just uncommenting the line:
ie importing SdFat.h directly in the print_utils.h header (note that SdFat.h should already be available in print_utils.h due to importing firmware_configuration.h that itself imports SdFat.h) fixes things, which is weird, as it shows that the compiler actually then knows of where to find SdFat.h
Any idea why the compiler cannot find SdFat.h when trying to build print_utils.cpp in a case and not in the other?
Trying to use the Core_V2 for working with the MbedOS core, I get some compilation errors:
> Executing task: pio run <
Processing SparkFun_RedBoard_Artemis (platform: apollo3blue; board: SparkFun_RedBoard_Artemis; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/apollo3blue/SparkFun_RedBoard_Artemis.html
PLATFORM: Apollo 3 Blue (0.0.1) > SparkFun RedBoard Artemis
HARDWARE: AMA3B1KK 48MHz, 348KB RAM, 937.50KB Flash
PACKAGES:
- framework-arduinoapollo3 2.0.2
- toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
-------------------> /home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/arduino/mbed-bridge
-------------------> <SCons.Script.SConscript.SConsEnvironment object at 0x7f19aa0dc490>
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 0 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio/build/SparkFun_RedBoard_Artemis/src/main.cpp.o
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-flags: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.includes: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-symbols: No such file or directory
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/bridge/pins.cpp.o
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-flags: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.includes: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-symbols: No such file or directory
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/Common.cpp.o
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-flags: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.includes: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-symbols: No such file or directory
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/IPAddress.cpp.o
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-flags: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.includes: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-symbols: No such file or directory
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/PluggableUSB.cpp.o
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-flags: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.includes: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-symbols: No such file or directory
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/Print.cpp.o
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-flags: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.includes: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-symbols: No such file or directory
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/Stream.cpp.o
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-flags: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.includes: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-symbols: No such file or directory
*** [.pio/build/SparkFun_RedBoard_Artemis/src/main.cpp.o] Error 1
*** [.pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/bridge/pins.cpp.o] Error 1
*** [.pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/Common.cpp.o] Error 1
*** [.pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/IPAddress.cpp.o] Error 1
*** [.pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/PluggableUSB.cpp.o] Error 1
*** [.pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/Print.cpp.o] Error 1
*** [.pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/Stream.cpp.o] Error 1
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/String.cpp.o
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-flags: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.includes: No such file or directory
arm-none-eabi-g++: error: /home/jrmet/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis/mbed/.cxx-symbols: No such file or directory
*** [.pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/String.cpp.o] Error 1
============================================================================= [FAILED] Took 0.71 seconds =============================================================================
The terminal process "pio 'run'" terminated with exit code: 1.
Terminal will be reused by tasks, press any key to close it.
I think the problem comes from the fact that the paths actually look like:
~/.platformio/packages/framework-arduinoapollo3/variants [master|…1]> ls
SFE_ARTEMIS SFE_ARTEMIS_DK SFE_ARTEMIS_NANO SFE_EDGE
SFE_ARTEMIS_ATP SFE_ARTEMIS_MM_PB SFE_ARTEMIS_THING_PLUS SFE_EDGE2
I.e. SFE_ARTEMIS_DF
instead of redboard_artemis
as a variant in the path.
I encounter some issues when trying to compile, any idea how to fix that?
~/Desktop/Current/test_artemis$ platformio run -v
Processing SparkFun_RedBoard_Artemis (platform: apollo3blue; board: SparkFun_RedBoard_Artemis; framework: arduino)
------------------------------------------------------------------------------------------------------------------------
Error: Please specify `upload_port` for environment or use global `--upload-port` option.
For some development platforms it can be a USB flash drive (i.e. /media/<user>/<device name>)
============================================== [FAILED] Took 0.24 seconds ==============================================
If you do not already have toolchain-gccarmnoneeabi
installed and you try and build:
$> platformio run
it gives the error:
Error: Detected unknown package 'toolchain-gccarmnoneeabi'
Workaround:
$> platformio platform install atmelsam
I am playing around with some small Artemis + MbedOS recipes. I have a small recipe I wanted to try (available at https://github.com/jerabaul29/Artemis_MbedOS_recipes/tree/main/recipes/recipe_RTC if you want to reproduce).
I am able to compile it with the Arduino IDE (well, not with the latest Sparkfun release, see issue sparkfun/Arduino_Apollo3#330 , but with the previous release from a few weeks ago it works fine), in which case the sketch uses a few percents of the RAM available.
But when I compile this exact sketch with the platformio extension, I get:
Processing SparkFun_RedBoard_Artemis (platform: apollo3blue; board: SparkFun_RedBoard_Artemis; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/apollo3blue/SparkFun_RedBoard_Artemis.html
PLATFORM: Apollo 3 Blue (0.0.2) > SparkFun RedBoard Artemis
HARDWARE: AMA3B1KK 48MHz, 384KB RAM, 960KB Flash
PACKAGES:
- framework-arduinoapollo3 2.0.2
- toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
-------------------> /home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/arduino/mbed-bridge
-------------------> <SCons.Script.SConscript.SConsEnvironment object at 0x7fc005b98520>
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 0 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio/build/SparkFun_RedBoard_Artemis/src/main.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/varient/config/pins.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/varient/variant.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/bridge/pins.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/Common.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/IPAddress.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/PluggableUSB.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/Print.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/Stream.cpp.o
src/main.cpp: In function 'int main()':
src/main.cpp:13:37: warning: 'void rtos::ThisThread::sleep_for(uint32_t)' is deprecated: Pass a chrono duration, not an integer millisecond count. For example use `5s` rather than `5000`. [since mbed-os-6.0.0] [-Wdeprecated-declarations]
rtos::ThisThread::sleep_for(1000);
^
In file included from /home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/mbed-os/rtos/rtos.h:30:0,
from /home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/mbed-os/mbed.h:22,
from /home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/arduino/mbed-bridge/Arduino.h:11,
from /home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/arduino/sdk/ArduinoSDK.h:9,
from <command-line>:0:
/home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/mbed-os/rtos/ThisThread.h:216:6: note: declared here
void sleep_for(uint32_t millisec);
^~~~~~~~~
src/main.cpp:115:41: warning: 'void rtos::ThisThread::sleep_for(uint32_t)' is deprecated: Pass a chrono duration, not an integer millisecond count. For example use `5s` rather than `5000`. [since mbed-os-6.0.0] [-Wdeprecated-declarations]
rtos::ThisThread::sleep_for(1000);
^
In file included from /home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/mbed-os/rtos/rtos.h:30:0,
from /home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/mbed-os/mbed.h:22,
from /home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/arduino/mbed-bridge/Arduino.h:11,
from /home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/arduino/sdk/ArduinoSDK.h:9,
from <command-line>:0:
/home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/mbed-os/rtos/ThisThread.h:216:6: note: declared here
void sleep_for(uint32_t millisec);
^~~~~~~~~
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-api/api/String.cpp.o
Archiving .pio/build/SparkFun_RedBoard_Artemis/libvarient.a
Indexing .pio/build/SparkFun_RedBoard_Artemis/libvarient.a
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-implement/CommonAnalog.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-implement/CommonDigital.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-implement/CommonInit.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-implement/CommonInterrupt.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-implement/CommonMath.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-implement/CommonPulse.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-implement/CommonTiming.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-implement/HardwareSerial.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/core-implement/Yield.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/mbed_bridge/main.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/PDM/PDM.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/RTC/RTC.cpp.o
Compiling .pio/build/SparkFun_RedBoard_Artemis/Servo/Servo.cpp.o
Archiving .pio/build/SparkFun_RedBoard_Artemis/libSoftwareSerial.a
Indexing .pio/build/SparkFun_RedBoard_Artemis/libSoftwareSerial.a
Compiling .pio/build/SparkFun_RedBoard_Artemis/SPI/SPI.cpp.o
In file included from /home/jrmet/.platformio/packages/framework-arduinoapollo3/libraries/PDM/src/PDM.cpp:22:0:
/home/jrmet/.platformio/packages/framework-arduinoapollo3/libraries/PDM/src/PDM.h:32:2: warning: #warning "Mic DATA pin not defined in variant. Using default." [-Wcpp]
#warning "Mic DATA pin not defined in variant. Using default."
^~~~~~~
/home/jrmet/.platformio/packages/framework-arduinoapollo3/libraries/PDM/src/PDM.h:37:2: warning: #warning "Mic CLOCK pin not defined in variant. Using default." [-Wcpp]
#warning "Mic CLOCK pin not defined in variant. Using default."
^~~~~~~
Compiling .pio/build/SparkFun_RedBoard_Artemis/Wire/Wire.cpp.o
/home/jrmet/.platformio/packages/framework-arduinoapollo3/libraries/PDM/src/PDM.cpp: In member function 'uint32_t AP3_PDM::getData(uint16_t*, uint32_t)':
/home/jrmet/.platformio/packages/framework-arduinoapollo3/libraries/PDM/src/PDM.cpp:301:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int x = 0; x < externalBufferSize; x++)
~~^~~~~~~~~~~~~~~~~~~~
/home/jrmet/.platformio/packages/framework-arduinoapollo3/libraries/PDM/src/PDM.cpp:309:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int x = 0; x < externalBufferSize; x++)
~~^~~~~~~~~~~~~~~~~~~~
/home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/arduino/mbed-bridge/core-implement/HardwareSerial.cpp: In member function 'int UART::printf(const char*, ...)':
/home/jrmet/.platformio/packages/framework-arduinoapollo3/cores/arduino/mbed-bridge/core-implement/HardwareSerial.cpp:153:19: warning: variable length array 'buf' is used [-Wvla]
char buf[space];
^
/home/jrmet/.platformio/packages/framework-arduinoapollo3/libraries/PDM/src/PDM.cpp: In member function 'void AP3_PDM::pdm_isr()':
/home/jrmet/.platformio/packages/framework-arduinoapollo3/libraries/PDM/src/PDM.cpp:335:18: warning: unused variable 'tempReadAmt' [-Wunused-variable]
uint32_t tempReadAmt = _pdmBufferSize;
^~~~~~~~~~~
/home/jrmet/.platformio/packages/framework-arduinoapollo3/libraries/RTC/src/RTC.cpp: In member function 'void Apollo3RTC::setEpoch(uint32_t)':
/home/jrmet/.platformio/packages/framework-arduinoapollo3/libraries/RTC/src/RTC.cpp:94:15: warning: unused variable 'tm' [-Wunused-variable]
struct tm tm;
^~
Archiving .pio/build/SparkFun_RedBoard_Artemis/libServo.a
Indexing .pio/build/SparkFun_RedBoard_Artemis/libServo.a
Archiving .pio/build/SparkFun_RedBoard_Artemis/libPDM.a
Indexing .pio/build/SparkFun_RedBoard_Artemis/libPDM.a
Archiving .pio/build/SparkFun_RedBoard_Artemis/libmbed_bridge.a
Indexing .pio/build/SparkFun_RedBoard_Artemis/libmbed_bridge.a
Archiving .pio/build/SparkFun_RedBoard_Artemis/libRTC.a
Indexing .pio/build/SparkFun_RedBoard_Artemis/libRTC.a
Archiving .pio/build/SparkFun_RedBoard_Artemis/libSPI.a
Indexing .pio/build/SparkFun_RedBoard_Artemis/libSPI.a
Archiving .pio/build/SparkFun_RedBoard_Artemis/libWire.a
Indexing .pio/build/SparkFun_RedBoard_Artemis/libWire.a
Linking .pio/build/SparkFun_RedBoard_Artemis/program
Checking size .pio/build/SparkFun_RedBoard_Artemis/program
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [==========] 99.7% (used 391928 bytes from 393216 bytes)
arm-none-eabi-objcopy -O binary .pio/build/SparkFun_RedBoard_Artemis/program .pio/build/SparkFun_RedBoard_Artemis/firmware.bin
Flash: [= ] 12.8% (used 125592 bytes from 983040 bytes)
=========================================================================================== [SUCCESS] Took 10.83 seconds ===========================================================================================
And here the RAM use shocks me: 99.7 percents.
Any idea if there is a problem / why / how to solve?
Originally posted by Sailor-Chenyang April 18, 2022
In the OpenMetBuoy project, It needs to use the nigelb/platform-apollo3blue. After installing Sparkfun/Arduino_Apollo3 on MacOS 10.12.6, there was a problem when creating a new project through Platformio.
I tried to install Apollo3 based on Platformio on both VS Code and CLion, but I encountered the same error when creating a new project:
TypeError: expected str, bytes or os.PathLike object, not NoneType:
File "/Users/yaochenyang/.platformio/penv/lib/python3.6/site-packages/platformio/builder/main.py", line 181:
env.SConscript("$BUILD_SCRIPT")
File "/Users/yaochenyang/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 597:
return _SConscript(self.fs, *files, **subst_kw)
File "/Users/yaochenyang/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 285:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "/Users/yaochenyang/.platformio/platforms/apollo3blue/builder/main.py", line 125:
env.SConscript(join("helpers", "targets.py"), exports="env")
File "/Users/yaochenyang/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 597:
return _SConscript(self.fs, *files, **subst_kw)
File "/Users/yaochenyang/.platformio/packages/tool-scons/scons-local-4.3.0/SCons/Script/SConscript.py", line 285:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "/Users/yaochenyang/.platformio/platforms/apollo3blue/builder/helpers/targets.py", line 89:
add_jlink_swo(env)
File "/Users/yaochenyang/.platformio/platforms/apollo3blue/builder/helpers/targets.py", line 50:
program = join(platform_apollo3blue.get_package_dir("tool-jlink"), program)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/posixpath.py", line 80:
a = os.fspath(a)
========================== [FAILED] Took 0.59 seconds ==========================
The tool-Jlink was missing in the ~/.platformio/packages.
I have to install the nigelb/platform-apollo3blue at first. Otherwise, there is no ‘Sparkfun RedBoard Artemis’ in the board options when I create a new project. The Manual installation of Apollo3 wouldn’t install the tool-Jlink automatically.
1. create an optional board that uses tool-jlink Because that PlatformIO can automatically install the tool-jlink. This information can be obtained from 'Used by'
For instance, It’s feasible to create a project based on SiFive https://registry.platformio.org/platforms/platformio/sifive,then, tool-jlink can be automatically installed in the packages.
2. Manual install of Jlink
2.1 We can Manually install the Jlink from the segger’s website.
The file path installed on the macOS is ~/applications/segger, where you can find the folder of JLINK. Then, JLINK_v686a is copied or linked to ~/platformio/packages/tool-jlink.
2.2 write a package.json to describe this package
~/.platformio/packages/tool-jlink$ vim package.json
The details are as follows:
{
"description": "Software and Documentation Pack for SEGGER J-Link debug probes",
"homepage": "https://www.segger.com/downloads/jlink/",
"keywords": [
"tools",
"debugger",
"debug server",
"uploader"
],
"name": "tool-jlink",
"system": [
"darwin_x86_64",
"darwin_arm64"
],
"version": "1.75001.0"
}
TADA! The problem has been solved.
When defining custom board json files in your own project (short of adding a new core to the framework proper) the BOARD_VARIANTS_DIR points to the framework dir looking for the flag files in the wrong place. With other processor architectures i can do the following:
[env:rak11720]
extends = apollo3_base
board = wiscore_rak11720
board_level = extra
build_flags = ${apollo3_base.build_flags} -Ivariants/rak11720
and put the respective JSON in the boards subdir of my project. If i do that with this core, it tries to find the support files in .platformio\packages\framework-arduinoapollo3\variants\WisCore_RAK11720_Board\mbed
instead of variants\rak11720\mbed in the project dir. Ideally i wanna specify the project specific include path in the custom JSON
Hello,
How can I override the default -O0, when using ambiqsuite-sdk?
i suppose this requires a modification of the builder?
Thanks!
Hi @nigelb,
This is Ivan from PlatformIO! Thanks for providing this integration for Apollo!
We can significantly simplify the installation guide by publishing packages into the PlatformIO Registry.
Could you create an account following https://docs.platformio.org/en/latest/plus/pio-account.html?
Also, is this dev-platform compatible with the 2.0 version of the Arduino framework?
I am ("as usual" :) ) using the core v1, following https://github.com/jerabaul29/OpenMetBuoy-v2021a/blob/main/doc/setup_platformio_environment/Instructions.md (which should be similar to your instructions).
I was curious about the builds caching: what is cached, where, when? It looks like each time I re-open the PlatformIO project, the whole thing gets recompiled, even if nothing changed since last time my computer was switched on off. May it be possible to cache to a disk folder in a "." folder in the tree of the project to avoid slow compilation at project re opening?
I was wondering: what kind of caching algorithm is use otherwise, for example if only a couple of files are modified? :)
When I compile SPI example: https://github.com/sparkfun/Arduino_Apollo3/blob/main/libraries/Apollo3/examples/Example6_SPI/Example6_SPI.ino
#include <Arduino.h>
#include "SPI.h"
// define SPI settings at which to test
#define SPI_FREQ 10000000
#define SPI_MODE SPI_MODE3
#define SPI_ORDER MSBFIRST
#define CS_PIN 0
#define SERIAL_PORT Serial
// define pins to create a custom SPI port
// using mbed PinNames or Arduino pin numbers
// (must be all pins from one IOM module)
//#define mySDI D25
//#define mySDO D28
//#define myCLK D27
#if (defined mySDI) && (defined mySDO) && (defined myCLK)
MbedSPI mySPI(mySDI, mySDO, myCLK); // declare the custom MbedSPI object mySPI
extern "C" SPIName spi_get_peripheral_name(PinName mosi, PinName miso, PinName sclk); // this mbed internal function determines the IOM module number for a set of pins
#endif
// define a macro to aid testing
#define TEST_SPI_PORT(P) SERIAL_PORT.printf("testing %s\n\ttime (ms): %d\n\tbyte transer: %s\n\tbuffer transfer: %s\n\n", #P, millis(), ((test_byte_transfer(P) == 0) ? "pass" : "fail"), ((test_buffer_transfer(P) == 0) ? "pass" : "fail"))
int test_byte_transfer( SPIClass &spi ){
uint8_t tx = random(1, 256);
uint8_t rx = 0x00;
spi.beginTransaction(SPISettings(SPI_FREQ, SPI_ORDER, SPI_MODE));
rx = spi.transfer(tx);
spi.endTransaction();
if(rx != tx){
return -1;
}
return 0;
}
int test_buffer_transfer( SPIClass &spi ){
const size_t len = 10;
uint8_t tx_buff[len];
uint8_t mirror[len];
for(size_t idx = 0; idx < len; idx++){
tx_buff[idx] = random(1, 256);
mirror[idx] = tx_buff[idx];
}
spi.beginTransaction(SPISettings(SPI_FREQ, SPI_ORDER, SPI_MODE));
spi.transfer(tx_buff, len);
spi.endTransaction();
bool mismatched = false;
for(size_t idx = 0; idx < len; idx++){
if(tx_buff[idx] != mirror[idx]){
mismatched = true;
}
}
if(mismatched){
return -1;
}
return 0;
}
void setup() {
SERIAL_PORT.begin(115200);
SERIAL_PORT.println("Apollo3 - Simple SPI");
pinMode(LED_BUILTIN, OUTPUT);
pinMode(CS_PIN, OUTPUT);
digitalWrite(CS_PIN, HIGH);
SPI.begin();
#if (defined mySDI) && (defined mySDO) && (defined myCLK)
SERIAL_PORT.printf("starting mySPI on IOM %d\n", spi_get_peripheral_name(mySDO, mySDI, myCLK));
mySPI.begin();
#endif
}
void loop() {
Serial.println("test");
TEST_SPI_PORT(SPI);
#if (defined mySDI) && (defined mySDO) && (defined myCLK)
TEST_SPI_PORT(mySPI);
#endif
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
I get the following error:
PS C:\Users\rober\Documents\PlatformIO\Projects\ArtemisSPITest> C:\Users\rober\.platformio\penv\Scripts\platformio.exe run --environment SparkFun_Thing_Plus -v
Processing SparkFun_Thing_Plus (platform: apollo3blue; board: SparkFun_Thing_Plus; framework: arduino; platform_packages: C:/Users/rober/.platformio/packages/[email protected]; monitor_speed: 115200; lib_extra_dirs: C:/Users/rober/.platformio/packages/[email protected]/libraries, lib)
-----------------------------------------------------------------------------------------------------------------------------------------------------CONFIGURATION: https://docs.platformio.org/page/boards/apollo3blue/SparkFun_Thing_Plus.html
PLATFORM: Apollo 3 Blue (0.0.2) > SparkFun Artemis Thing Plus
HARDWARE: AMA3B1KK 48MHz, 384KB RAM, 960KB Flash
DEBUG: Current (jlink) External (jlink)
PACKAGES:
- framework-arduinoapollo3 2.1.0
- toolchain-gccarmnoneeabi 1.90301.200702 (9.3.1)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 11 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <SPI> 2.0.0 (C:\Users\rober\.platformio\packages\[email protected]\libraries\SPI)
Building in release mode
arm-none-eabi-g++ -o .pio\build\SparkFun_Thing_Plus\program.exe -TC:\Users\rober\.platformio\packages\[email protected]\tools\uploaders\svl\0x10000.ld @C:\Users\rober\.platformio\packages\[email protected]\variants\SFE_ARTEMIS_THING_PLUS\mbed\.ld-flags @C:\Users\rober\.platformio\packages\[email protected]\variants\SFE_ARTEMIS_THING_PLUS\mbed\.ld-symbols -Wl,--whole-archive C:\Users\rober\.platformio\packages\[email protected]\variants\SFE_ARTEMIS_THING_PLUS\mbed\libmbed-os.a -Wl,--no-whole-archive -Wl,-Map=C:\Users\rober\Documents\PlatformIO\Projects\ArtemisSPITest\.pio\build\SparkFun_Thing_Plus\program.map --specs=nano.specs .pio\build\SparkFun_Thing_Plus\src\main.cpp.o -L.pio\build\SparkFun_Thing_Plus -LC:\Users\rober\.platformio\packages\[email protected]\variants\SFE_ARTEMIS_THING_PLUS\mbed -LC:\Users\rober\.platformio\packages\[email protected]\cores\mbed-os\targets\TARGET_Ambiq_Micro\TARGET_Apollo3\sdk\CMSIS\ARM\Lib\ARM -Wl,--start-group .pio\build\SparkFun_Thing_Plus\libb82\libSPI.a .pio\build\SparkFun_Thing_Plus\libvariant.a .pio\build\SparkFun_Thing_Plus\libmbed_bridge.a .pio\build\SparkFun_Thing_Plus\libcore-implement.a .pio\build\SparkFun_Thing_Plus\libEEPROM.a .pio\build\SparkFun_Thing_Plus\libPDM.a .pio\build\SparkFun_Thing_Plus\libRTC.a .pio\build\SparkFun_Thing_Plus\libServo.a .pio\build\SparkFun_Thing_Plus\libSoftwareSerial.a .pio\build\SparkFun_Thing_Plus\libSPI.a .pio\build\SparkFun_Thing_Plus\libWire.a .pio\build\SparkFun_Thing_Plus\libWDT.a .pio\build\SparkFun_Thing_Plus\libBurstMode.a -lstdc++ -lsupc++ -lmbed-os -larm_cortexM4lf_math -lm -Wl,--end-group
c:/users/rober/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: c:/users/rober/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-signalr.o): in function `_kill_r':
signalr.c:(.text._kill_r+0xe): undefined reference to `_kill'
c:/users/rober/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: c:/users/rober/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-signalr.o): in function `_getpid_r':
signalr.c:(.text._getpid_r+0x0): undefined reference to `_getpid'
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\SparkFun_Thing_Plus\program.exe] Error 1
============================================================ [FAILED] Took 2.10 seconds ============================================================
It appears that functions _getpid and _kill are missing.
Adding the following into the code sample:
extern "C"{
int _getpid(){ return -1;}
int _kill(int pid, int sig){ return -1; }
}
Fixes the issue.
I believe I followed the Readme correctly but it looks like my installation is missing something. I did have to add a lib_extra_dir path in my platformio.ini to enable some of the libs to be found:
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:SparkFun_Thing_Plus]
platform = apollo3blue
board = SparkFun_Thing_Plus
framework = arduino
;platform_packages = [email protected]
platform_packages = C:/Users/rober/.platformio/packages/[email protected]
monitor_speed = 115200
lib_extra_dirs =
C:/Users/rober/.platformio/packages/[email protected]/libraries
lib
Is this my particular installation that has an issue? Any ideas how to fix it?
So far I notice the SparkFun OpenLog Artemis https://www.sparkfun.com/products/16832 is not supported.
Is there a possibility to support this board?
In the Core_V2 installation guide, in the readme, this part:
~> cd ~/.platformio
~/.platformio> cd platforms
~/.platformio/platforms> git clone https://github.com/nigelb/platform-apollo3blue.git apollo3blue
I suppose there is a missing step at the end, checking out the actual Core_V2 branch of this repo, right? :
git checkout Core_V2
I am asking here, as I feel that having a platformio core set up may actually make things quite a bit easier (ie the right compiler options etc are already in place), but I may be wrong; if this is off topic, just let me know :) .
I would like to use this library in a project: https://github.com/drowe67/codec2 . However, it does not come as an arduino library, but as a standard C++ library with CMake. There is a way to compile it for ARM microcontrollers it seems though:
On ARM machines, setting the C Flag __EMBEDDED__ and linking with the ARM CMSIS library will improve performance on ARM-based microcontrollers. __REAL__ and FDV_ARM_MATH are additional ARM-specific options that can be set to improve performance if required, especially with OFDM modes.
Any idea if I can take "advantage" of the platformio core to help me compile this / how I could do so? :)
It seems that some releases are still taking place even for the Core_V1, see for example (I think this is the latest one):
https://github.com/sparkfun/Arduino_Apollo3/releases/tag/v1.2.1
However, it seems that the core V1 extension still links to / refers to an old core V1 version. For example, the package.json recommended has:
"version": "1.0.22",
How much work is it / what is needed to bump the Core_V1 extension to the latest release? Is it just a question of updating the "version" attribute in the package.json or is more work needed?
Could that be updated on the Core_V1 branch? :) .
I updated the present platformio core (many thanks for your awesome continued work on this :) ) and I recompiled an old project, now getting the warning:
No baud rate specified.
Using default svl baud rate of 921600
This is not a big issue, everything compiles fine etc, and I am happy with using this svl baudrate but wonder if there is a way to get it to go away, just "for the sake of purity"? :) . I guess this is the sparkfun variable loader that uploads the code to the board complaining its baudrate to use is not set. Not sure why it was not here before / I had not noticed it before.
When compiling an empty sketch with Arduino IDE 1.8 using the core 1.2.3 I get the following memory use:
i.e., if I understand right, 8500 bytes of flash and 33820 bytes of RAM.
But, if I use the platformio core, using the v1.2.3 package, I get:
i.e., it uses 988 bytes of flash (really low, but I do not care, there are lots of flash, the issue is with RAM!), and 81924 bytes of RAM (this is a lot more, and a bit of a problem, I am going to get empty for RAM on one of my projects with this "over consumption :( ).
Any idea what the reason is? I installed everything following: https://github.com/jerabaul29/OpenMetBuoy-v2021a/blob/main/doc/setup_platformio_environment/Instructions.md .
Hello,
This is a followup of the platformio discussion so that we do not forget.
I had to modify one line in ambiqsuitesdk-sfe.py to make it work:
libs.append(env.BuildLibrary(
join("$BUILD_DIR", "Variant"),
join(FRAMEWORK_DIR, *framework_build.get("variant"), "bsp"),
))
Look at the added “bsp” at the end.
The reason is that my board’s bsp is “variant”: [“boards”, “apollo3_evb”]
and inside the boards/apollo3_evb are two folders, bsp and examples… and platformio will try to build the examples here!
The folders inside boards-sfe only contains bsp, so the problem is not visible
This modification is backward compatible.
This is the only patch I still need. (I do have one more, to have stack traces when HardFault is called, but I can override the symbol from my application. If you want me to send you this patch too, let me know and I will create an other issue)
Thanks
Hello,
I was trying to integrate the amota example... for that I had to include the dependencies "ambiq_ble_apps_amota", "ble-host" and "ble-profiles"
Doing this immediately triggered a huge display of dependencies from platformio.... for 2 minutes.
I see this kind of output when there is a circular dependency... here the 3 libraries above depends on each others.
I then tried to disable LDF mode.... and encountered missing dependencies in (at least) the following libraries:
uECC, ble-host, ble-profiles.
I've used the following deps to solve the problem:
diff --git a/extra/ambiqsdk-sfe/libraries/third_party/cordio/ble-host/library.json b/extra/ambiqsdk-sfe/libraries/third_
party/cordio/ble-host/library.json
index 396400e..b103b12 100644
--- a/extra/ambiqsdk-sfe/libraries/third_party/cordio/ble-host/library.json
+++ b/extra/ambiqsdk-sfe/libraries/third_party/cordio/ble-host/library.json
@@ -8,7 +8,8 @@
"headers": ["hci_handler.h"],
"license": "APACHE-2.0",
"dependencies": {
- "uECC":"^0.1"
+ "uECC":"^0.1",
+ "ble-profiles": "*"
},
"build": {
"flags": [
@@ -42,4 +43,4 @@
"-<sec/pal/sec_ccm.c>"
]
}
-}
\ No newline at end of file
+}
diff --git a/extra/ambiqsdk-sfe/libraries/third_party/cordio/ble-profiles/library.json b/extra/ambiqsdk-sfe/libraries/third_party/cordio/ble-profiles/library.json
index 0e9b248..6797aa6 100644
--- a/extra/ambiqsdk-sfe/libraries/third_party/cordio/ble-profiles/library.json
+++ b/extra/ambiqsdk-sfe/libraries/third_party/cordio/ble-profiles/library.json
@@ -7,6 +7,10 @@
],
"headers": ["app_api.h"],
"license": "APACHE-2.0",
+ "dependencies": {
+ "ble-host": "*",
+ "cordio-wsf": "*"
+ },
"build": {
"flags": [
"-I%(FRAMEWORK_DIR)s/third_party/cordio/ble-profiles",
@@ -79,4 +83,4 @@
"+<*.h>"
]
}
-}
\ No newline at end of file
+}
diff --git a/extra/ambiqsdk-sfe/libraries/third_party/uECC/library.json b/extra/ambiqsdk-sfe/libraries/third_party/uECC/library.json
index f20e41e..15eb913 100644
--- a/extra/ambiqsdk-sfe/libraries/third_party/uECC/library.json
+++ b/extra/ambiqsdk-sfe/libraries/third_party/uECC/library.json
@@ -6,6 +6,11 @@
"ambiqsdk-sfe"
],
"license": "BSD 2-clause",
+ "dependencies": {
+ "uECC":"^0.1",
+ "ble-profiles": "*",
+ "cordio-wsf": "*"
+ },
"build": {
"flags": [],
"libArchive": false,
@@ -17,4 +22,4 @@
"-<uECC_ll.c>"
]
}
-}
\ No newline at end of file
+}
The build is so much faster without the LDF from platformio !!! 👍
The built-in libraries e.g. RTC are correctly compiled.
However, VSCode's Intellisense does not pick up on this, for example when I try to do something like this:
#include <RTC.h>
Apollo3RTC myRTC;
Intellisense does not detect RTC.h
or offer autocomplete for Apollo3RTC
.
When I check my c_cpp_properties.json
file, the RTC library is not included.
Hello,
Thanks for providing the framework. I've got the following error when compiling the source code:
src\main.cpp:1:10: fatal error: Arduino.h: No such file or directory
There is no Arduino.h in the source tree.
Hi,
Do you think that it would be possible to upgrade to the Mbed-OS core that Sparkfun has made available since v2? I would have a bit of time to work on it in the days to come, if you can indicate what to do and how I may be able to try contribute (never worked with platformio packaging before though).
Clicking on the "Platformio: Build" button in the VSC bottom bar compiles the code fine as expected, but it also tries to upload (not as expected). As a consequence, if no board is available, there may be situations like i) compile works fine, but ii) upload fails and the command returns an error status code. See:
Building in release mode
`.pio/build/SparkFun_RedBoard_Artemis/firmware.bin' is up to date.
Checking size .pio/build/SparkFun_RedBoard_Artemis/program
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [=== ] 29.4% (used 115716 bytes from 393216 bytes)
Flash: [ ] 0.8% (used 7384 bytes from 983040 bytes)
Configuring upload protocol...
AVAILABLE: asb, jlink, svl
CURRENT: upload_protocol = svl
Looking for upload port...
Error: Please specify `upload_port` for environment or use global `--upload-port` option.
For some development platforms it can be a USB flash drive (i.e. /media/<user>/<device name>)
*** [upload] Explicit exit, status 1
======================================================================= [FAILED] Took 1.11 seconds =======================================================================
The terminal process "platformio 'run'" terminated with exit code: 1.
Terminal will be reused by tasks, press any key to close it.
This is no big deal, I can see that the compilation went fine, but a bit surprising the first time - it goes against the convention that "build" only builds does not try to upload, and indicates fail when it should actually indicate success - since compilation was successful.
Seeing that some people around me struggle a bit getting all installed correctly, and wondering: would it be useful to distribute an "all-parts-included", "turn-key" development environment as a container containing i) visual studio code ii) platformio iii) the core / board provided by this repo with all its dependencies? There could either be a single container if all works seamlessly with both core v1 and core v2, or 2 containers if there are some friction points.
When applying the fixes described in issues #11 #12 , I still get this error:
/home/jrmet/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld: cannot open linker script file /home/jrmet/.platformio/packages/framework-arduinoapollo3/tools/uploaders/asb/artemis_sbl_svl_app.ld: No such file or directory
collect2: error: ld returned 1 exit status
*** [.pio/build/SparkFun_RedBoard_Artemis/program] Error 1
The corresponding asb folder (a git submodule of the sparkfun apollo3 code) contains indeed:
~/.platformio/packages/framework-arduinoapollo3/tools/uploaders/asb [:fc2bc19|✔]> ls
0xC000.ld am_defines.py asb.py dist keys_info.py README.md requirements.txt
Does that mean that the linker script should be 0xC000.ld
instead?
Another thing: it looks like the asb bootlader does not work any more, and that Sparkfun now recommends to use the svl bootloader, see for example:
Should this package too change to using the SVL, with baudrate 460800 ?
hello;
On macOS 10.15
I have followed the directions for installing platform-apollo3blue using the 1.0.23 framework,.
(I understand the issues with the 2,.0 library )
and created the simple SparkFun_Artemis_Nano app ,
I make it through the compile, but fail in the link
Verbose mode can be enabled via -v, --verbose
option
Auto-detected: /dev/cu.usbserial-1440
CONFIGURATION: https://docs.platformio.org/page/boards/apollo3blue/SparkFun_Artemis_Nano.html
PLATFORM: Apollo 3 Blue (0.0.1) > SparkFun RedBoard Artemis Nano
HARDWARE: AMA3B1KK 48MHz, 348KB RAM, 937.50KB Flash
PACKAGES:
Reset_Handler': /Users/vinnie/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis_nano/startup/startup_gcc.c:321: undefined reference to
main'am_util_delay_ms': /Users/vinnie/.platformio/packages/framework-arduinoapollo3/cores/arduino/am_sdk_ap3/utils/am_util_delay.c:95: undefined reference to
am_hal_clkgen_status_get'As title, building a project fails with the following error message:
TypeError: expected str, bytes or os.PathLike object, not NoneType:
File "/home/karl/.platformio/penv/lib/python3.10/site-packages/platformio/builder/main.py", line 175:
env.SConscript("$BUILD_SCRIPT")
File "/home/karl/.platformio/packages/tool-scons/scons-local-4.5.2/SCons/Script/SConscript.py", line 598:
return _SConscript(self.fs, *files, **subst_kw)
File "/home/karl/.platformio/packages/tool-scons/scons-local-4.5.2/SCons/Script/SConscript.py", line 285:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "/home/karl/.platformio/platforms/apollo3blue/builder/main.py", line 125:
env.SConscript(join("helpers", "targets.py"), exports="env")
File "/home/karl/.platformio/packages/tool-scons/scons-local-4.5.2/SCons/Script/SConscript.py", line 598:
return _SConscript(self.fs, *files, **subst_kw)
File "/home/karl/.platformio/packages/tool-scons/scons-local-4.5.2/SCons/Script/SConscript.py", line 285:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "/home/karl/.platformio/platforms/apollo3blue/builder/helpers/targets.py", line 177:
add_ota_image(env)
File "/home/karl/.platformio/platforms/apollo3blue/builder/helpers/targets.py", line 108:
APOLLO3_SCRIPTS_DIR=join(FRAMEWORK_DIR, "tools", "apollo3_scripts"),
File "/usr/lib/python3.10/posixpath.py", line 76:
a = os.fspath(a)
I am trying to set up some unit tests following:
But the unity package (likely what provides the unit testing functionalities) does not seem to be recognized:
Any idea why / how to fix this? :) I am on the core v1 as usual :) .
The board configs for both the Edge and the Edge2 board have an empty string as the second variant (in contrast to all other boards):
"ambiqsdk-sfe": {
"variant": [
"boards_sfe",
""
],
"extra_flags": "edge",
"variant_lib_src_filter": ""
}
This causes PlatformIO to not include this directory in the header search path. Changing ""
to edge
fixes this, but leads to the following error during compilation:
*** [.pio\build\SparkFun_Edge_Development_Board\program.exe] Implicit dependency `<USER>\.platformio\platforms\apollo3blue\builder\frameworks\edge' not found, needed by target `.pio\build\SparkFun_Edge_Development_Board\program.exe'.
Is there any way to fix this?
I'm using the following config:
[env:SparkFun_Edge_Development_Board]
platform = apollo3blue
board = SparkFun_Edge_Development_Board
framework = ambiqsdk-sfe
platform_packages = framework-ambiqsuitesdkapollo3-sfe@https://github.com/nigelb/AmbiqSuiteSDK#2.5.1-sfe
I installed the platformio artemis core v1 (corresponding to this branch: https://github.com/sparkfun/Arduino_Apollo3/tree/v1 ), and set up my package.json following this:
jr@T490:~/.platformio/packages/[email protected]$ cat package.json
{
"name": "framework-arduinoapollo3",
"description": "A bare metal Arduino core for Ambiq Apollo3 based boards",
"version": "1.2.3",
"url": "https://github.com/sparkfun/Arduino_Apollo3"
}
Things work mostly well, but I get quite a few spurious warnings for c_cpp_properties.json . I think these are warnings for tools that are in the core v2 but not the core v1 (putting the copy of the errors at the bottom).
[{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/uecc/micro-ecc\".",
"startLineNumber": 26,
"startColumn": 17,
"endLineNumber": 26,
"endColumn": 131
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/hci/ambiq\".",
"startLineNumber": 27,
"startColumn": 17,
"endLineNumber": 27,
"endColumn": 137
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/hci/include\".",
"startLineNumber": 28,
"startColumn": 17,
"endLineNumber": 28,
"endColumn": 139
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/hci/ambiq/apollo3\".",
"startLineNumber": 29,
"startColumn": 17,
"endLineNumber": 29,
"endColumn": 145
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/apps/app\".",
"startLineNumber": 30,
"startColumn": 17,
"endLineNumber": 30,
"endColumn": 136
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/apps/app/include\".",
"startLineNumber": 31,
"startColumn": 17,
"endLineNumber": 31,
"endColumn": 144
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/services\".",
"startLineNumber": 32,
"startColumn": 17,
"endLineNumber": 32,
"endColumn": 136
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/stack/hci\".",
"startLineNumber": 33,
"startColumn": 17,
"endLineNumber": 33,
"endColumn": 137
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/stack/cfg\".",
"startLineNumber": 34,
"startColumn": 17,
"endLineNumber": 34,
"endColumn": 137
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/sec/include\".",
"startLineNumber": 35,
"startColumn": 17,
"endLineNumber": 35,
"endColumn": 139
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/sec/common\".",
"startLineNumber": 36,
"startColumn": 17,
"endLineNumber": 36,
"endColumn": 138
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/ws-core/include\".",
"startLineNumber": 37,
"startColumn": 17,
"endLineNumber": 37,
"endColumn": 140
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/ws-core/sw/util\".",
"startLineNumber": 38,
"startColumn": 17,
"endLineNumber": 38,
"endColumn": 140
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/ws-core/sw/wsf/ambiq\".",
"startLineNumber": 39,
"startColumn": 17,
"endLineNumber": 39,
"endColumn": 145
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/ws-core/sw/wsf/include\".",
"startLineNumber": 40,
"startColumn": 17,
"endLineNumber": 40,
"endColumn": 147
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/stack/include\".",
"startLineNumber": 41,
"startColumn": 17,
"endLineNumber": 41,
"endColumn": 141
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/profiles\".",
"startLineNumber": 42,
"startColumn": 17,
"endLineNumber": 42,
"endColumn": 136
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/profiles/gatt\".",
"startLineNumber": 43,
"startColumn": 17,
"endLineNumber": 43,
"endColumn": 141
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/profiles/gap\".",
"startLineNumber": 44,
"startColumn": 17,
"endLineNumber": 44,
"endColumn": 140
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/uecc/micro-ecc\".",
"startLineNumber": 72,
"startColumn": 21,
"endLineNumber": 72,
"endColumn": 135
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/hci/ambiq\".",
"startLineNumber": 73,
"startColumn": 21,
"endLineNumber": 73,
"endColumn": 141
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/hci/include\".",
"startLineNumber": 74,
"startColumn": 21,
"endLineNumber": 74,
"endColumn": 143
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/hci/ambiq/apollo3\".",
"startLineNumber": 75,
"startColumn": 21,
"endLineNumber": 75,
"endColumn": 149
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/apps/app\".",
"startLineNumber": 76,
"startColumn": 21,
"endLineNumber": 76,
"endColumn": 140
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/apps/app/include\".",
"startLineNumber": 77,
"startColumn": 21,
"endLineNumber": 77,
"endColumn": 148
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/services\".",
"startLineNumber": 78,
"startColumn": 21,
"endLineNumber": 78,
"endColumn": 140
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/stack/hci\".",
"startLineNumber": 79,
"startColumn": 21,
"endLineNumber": 79,
"endColumn": 141
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/stack/cfg\".",
"startLineNumber": 80,
"startColumn": 21,
"endLineNumber": 80,
"endColumn": 141
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/sec/include\".",
"startLineNumber": 81,
"startColumn": 21,
"endLineNumber": 81,
"endColumn": 143
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/sec/common\".",
"startLineNumber": 82,
"startColumn": 21,
"endLineNumber": 82,
"endColumn": 142
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/ws-core/include\".",
"startLineNumber": 83,
"startColumn": 21,
"endLineNumber": 83,
"endColumn": 144
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/ws-core/sw/util\".",
"startLineNumber": 84,
"startColumn": 21,
"endLineNumber": 84,
"endColumn": 144
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/ws-core/sw/wsf/ambiq\".",
"startLineNumber": 85,
"startColumn": 21,
"endLineNumber": 85,
"endColumn": 149
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/ws-core/sw/wsf/include\".",
"startLineNumber": 86,
"startColumn": 21,
"endLineNumber": 86,
"endColumn": 151
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/stack/include\".",
"startLineNumber": 87,
"startColumn": 21,
"endLineNumber": 87,
"endColumn": 145
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/profiles\".",
"startLineNumber": 88,
"startColumn": 21,
"endLineNumber": 88,
"endColumn": 140
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/profiles/gatt\".",
"startLineNumber": 89,
"startColumn": 21,
"endLineNumber": 89,
"endColumn": 145
},{
"resource": "/home/jr/Desktop/Current/test_platformio_artemis/.vscode/c_cpp_properties.json",
"owner": "/home/jr/Desktop/Current/test_platformio_artemis",
"severity": 4,
"message": "Cannot find \"/home/jr/.platformio/packages/[email protected]/cores/arduino/am_sdk_ap3/third_party/exactle/sw/profiles/gap\".",
"startLineNumber": 90,
"startColumn": 21,
"endLineNumber": 90,
"endColumn": 144
}]
So if I understand well, there are 2 "main versions" of the upstream sparkfun tool: one (v1.x.x) that is a "pure Arduino core", and one (v2.x.x) that is actually on top of mbed-os RTOS, right? Do you think it would be possible ultimately to get the possibility to choose between these 2 kinds of flavors? :) .
In #29 @idea--list pointed out that some of the boards name are Inconsistent.
They should be fixed.
I have installed the core v1 and all works fine following the "create a project" instructions of the readme on this repo.
However, if I try to create a new project in the "usual platformio way", things fail with a warning:
PIO Core Call Error: "The current working directory /home/jr/Documents/PlatformIO/Projects/hello_artemis will be used for the project.\n\nThe next files/directories have been created in /home/jr/Documents/PlatformIO/Projects/hello_artemis\ninclude - Put project header files here\nlib - Put here project specific (private) libraries\nsrc - Put project source files here\nplatformio.ini - Project Configuration File\n\n\nError: Could not find the package with 'framework-ambiqsuitesdkapollo3-sfe @ >2.4.0' requirements for your system 'linux_x86_64'"
See screenshot:
Any idea why / how to fix? It is already very useful to be able to create a project "by hand", but it would be even better if possible to use the default platformio method :) .
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.