Giter Site home page Giter Site logo

platform-apollo3blue's People

Contributors

digimaxio avatar elon-code avatar justiceamoh avatar kalkins avatar nigelb avatar vicgwee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

platform-apollo3blue's Issues

cannot upload to board

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 ===================================================================================
  • any idea where the problem is? I have double checked the 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

problem with the upload_port when creating new project

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" :) .

  • any idea how to fix this by default? Maybe filling with a default value at creation?
  • more fundamentally, any idea why this is triggered? Should be possible to have a project without upload port, for example if the project is just for testing some compilation etc without uploading.

Libraries in lib/ are not included in build process

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.

env.Prepend(LIBS=libs, __PIO_LIB_BUILDERS=lib_builders)

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.

Add ability to set swo clock in swo viewer

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!

Error building any application with artemis boards

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?

bug: strange include failure for /lib code

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:

git clone [email protected]:jvoermans/Wind_Input_V1.git
git checkout logger_version_jr-import_issue_sdfat
git submodule init
git submodule update
  • try to compile in PlatformIO; I get the log and error:
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:

https://github.com/jvoermans/Wind_Input_V1/blob/f7e8ae031db1b96a731e147fc247a85a0be974e0/lib/utils/print_utils.h#L7

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?

Issue with Core_V2 : wrong variant pathes?

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.

upload_port issue when trying to compile [fixed setting by hand]; Arduino.h missing

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 ==============================================

toolchain-gccarmnoneeabi does not auto install

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

sketches use surprisingly large amounts of RAM

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?

The solution to the lack of ‘tool-jlink’ after the Manual installation of Sparkfun/Arduino_Apollo3 on MacOS 10.12.6.

Discussed in #37

Originally posted by Sailor-Chenyang April 18, 2022

Situation:

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.

Error:

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 reason for this error:

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.

Solutions:

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.

Make BOARD_VARIANTS_DIR customizable

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

caching of compilation?

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? :)

undefined reference to `_kill' & `_getpid'

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?

Problem with the V2 install guide

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

brainstorming: how would you recommend to compile / "install" an external non arduino library

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? :)

bump the version for the v1 core to latest core V1 release

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? :) .

new warning: "No baud rate specified. Using default svl baud rate of 921600"

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.

very different amounts of memory used by i) Arduino IDE 1.8 vs ii) this platformio core

When compiling an empty sketch with Arduino IDE 1.8 using the core 1.2.3 I get the following memory use:

Screenshot from 2021-12-04 17-03-45

Screenshot from 2021-12-04 16-59-23

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:

Screenshot from 2021-12-04 17-05-52

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 .

Cannot build for boards that are not in boards-sfe

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

Some dependency issues with the libraries

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 !!! 👍

[V2 Core] Intellisense not set up for Apollo3 libraries

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.

Compile error

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.

upgrade to the Mbed-OS core available from Sparkfun

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).

attempting to compile compiles but also tries to upload (and fails if no board available)

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.

brainstorming: releasing as a "all-parts-included", "turn-key" container?

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.

Issue with Core_V2: wrong linker script file?

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:

sparkfun/Arduino_Apollo3#310

Should this package too change to using the SVL, with baudrate 460800 ?

Linking error - v1.x.x version of the Arduino_Apollo3 framework

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 )

--
cd ~/.platformio/packages/
wget https://github.com/sparkfun/Arduino_Apollo3/archive/v1.2.1.zip
unzip v1.2.1.zip && mv Arduino_Apollo3-1.2.1 framework-arduinoapollo3 && rm v1.2.1.zip
cd ~/.platformio/platforms/
git clone https://github.com/nigelb/platform-apollo3blue.git apollo3blue

and created the simple SparkFun_Artemis_Nano app ,

I make it through the compile, but fail in the link

pio run
Processing SparkFun_Artemis_Nano (platform: apollo3blue; board: SparkFun_Artemis_Nano; framework: arduino)

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:

  • framework-arduinoapollo3 1.0.23
  • 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 0 compatible libraries
    Scanning dependencies...
    No dependencies
    Building in release mode
    Compiling .pio/build/SparkFun_Artemis_Nano/src/SparkFun_Artemis_Nano.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/analog/ap3_analog.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/analog/ap3_analog_structures.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/ard_supers/IPAddress.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/ard_supers/Print.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/ard_supers/Stream.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/ard_supers/WMath.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/ard_supers/WString.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/ard_supers/avr/dtostrf.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/ard_supers/hooks.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/ard_supers/itoa.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/clock/ap3_clock_sources.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/debugging/ap3_debugging.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/gpio/ap3_gpio.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/gpio/ap3_gpio_structures.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/gpio/ap3_shift.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/initialization/ap3_initialization.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/iomaster/ap3_iomaster.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/iomaster/ap3_iomaster.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/main.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/timing/ap3_timing.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/uart/ap3_uart.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/FrameworkArduino/uart/ap3_uart_structures.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_adc.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_ble.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_ble_patch.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_ble_patch_b0.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_burst.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_cachectrl.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_clkgen.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_cmdq.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_ctimer.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_debug.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_flash.c.o
    Archiving .pio/build/SparkFun_Artemis_Nano/libFrameworkArduino.a
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_global.c.o
    Indexing .pio/build/SparkFun_Artemis_Nano/libFrameworkArduino.a
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_gpio.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_interrupt.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_iom.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_ios.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_itm.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_mcuctrl.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_mspi.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_pdm.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_pwrctrl.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_queue.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_reset.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_rtc.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_scard.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_secure_ota.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_security.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_stimer.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_sysctrl.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_systick.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_tpiu.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_uart.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_mcu/apollo3/hal/am_hal_wdt.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_devices/am_devices_button.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_devices/am_devices_led.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_utils/am_util_ble.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_utils/am_util_debug.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_utils/am_util_delay.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_utils/am_util_faultisr.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_utils/am_util_id.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_utils/am_util_regdump.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_utils/am_util_stdio.c.o
    Archiving .pio/build/SparkFun_Artemis_Nano/libapollo3_sdk_devices.a
    Indexing .pio/build/SparkFun_Artemis_Nano/libapollo3_sdk_devices.a
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_utils/am_util_string.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/apollo3_sdk_utils/am_util_time.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/variant/bsp/am_bsp.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/variant/bsp/am_bsp_pins.c.o
    Compiling .pio/build/SparkFun_Artemis_Nano/variant/config/variant.cpp.o
    Archiving .pio/build/SparkFun_Artemis_Nano/libapollo3_sdk_mcu.a
    Compiling .pio/build/SparkFun_Artemis_Nano/variant/startup/startup_gcc.c.o
    Indexing .pio/build/SparkFun_Artemis_Nano/libapollo3_sdk_mcu.a
    Compiling .pio/build/SparkFun_Artemis_Nano/EEPROM/EEPROM.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/PDM/PDM.cpp.o
    Archiving .pio/build/SparkFun_Artemis_Nano/libapollo3_sdk_utils.a
    Compiling .pio/build/SparkFun_Artemis_Nano/RTC/RTC.cpp.o
    Indexing .pio/build/SparkFun_Artemis_Nano/libapollo3_sdk_utils.a
    Compiling .pio/build/SparkFun_Artemis_Nano/Servo/Servo.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/SoftwareSerial/SoftwareSerial.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/SPI/SPI.cpp.o
    Compiling .pio/build/SparkFun_Artemis_Nano/Wire/Wire.cpp.o
    Archiving .pio/build/SparkFun_Artemis_Nano/libvariant.a
    Indexing .pio/build/SparkFun_Artemis_Nano/libvariant.a
    Archiving .pio/build/SparkFun_Artemis_Nano/libEEPROM.a
    Indexing .pio/build/SparkFun_Artemis_Nano/libEEPROM.a
    Archiving .pio/build/SparkFun_Artemis_Nano/libServo.a
    Indexing .pio/build/SparkFun_Artemis_Nano/libServo.a
    Archiving .pio/build/SparkFun_Artemis_Nano/libPDM.a
    Archiving .pio/build/SparkFun_Artemis_Nano/libRTC.a
    Indexing .pio/build/SparkFun_Artemis_Nano/libPDM.a
    Indexing .pio/build/SparkFun_Artemis_Nano/libRTC.a
    Archiving .pio/build/SparkFun_Artemis_Nano/libSPI.a
    Indexing .pio/build/SparkFun_Artemis_Nano/libSPI.a
    Archiving .pio/build/SparkFun_Artemis_Nano/libWire.a
    Indexing .pio/build/SparkFun_Artemis_Nano/libWire.a
    Archiving .pio/build/SparkFun_Artemis_Nano/libSoftwareSerial.a
    Indexing .pio/build/SparkFun_Artemis_Nano/libSoftwareSerial.a
    Linking .pio/build/SparkFun_Artemis_Nano/program
    /Users/vinnie/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld: .pio/build/SparkFun_Artemis_Nano/libvariant.a(startup_gcc.c.o): in function Reset_Handler': /Users/vinnie/.platformio/packages/framework-arduinoapollo3/variants/redboard_artemis_nano/startup/startup_gcc.c:321: undefined reference to main'
    /Users/vinnie/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld: .pio/build/SparkFun_Artemis_Nano/libapollo3_sdk_utils.a(am_util_delay.c.o): in function 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'
    collect2: error: ld returned 1 exit status
    *** [.pio/build/SparkFun_Artemis_Nano/program] Error 1
    =============================================== [FAILED] Took 4.14 seconds ===============================================

Build fails in PlatformIO

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)

Missing headers for Edge & Edge 2 with Ambiq

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

suprious warnings with core v1 for c_cpp_properties.json

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).

  • any ways that you could update the generation of the c_cpp_properties.json so that it does not include these files if the major version of the framework is 1 not 2?
  • in the meantime, how would you recommend that I fix it? The c_cpp_properties.json explicitly says to not edit it by hand, but should I do it still? :)
[{
	"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
}]

"Arduino" vs "RTOS" upstream as 2 board "flavors"?

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? :) .

creating a new project using the "usual" platformio way fails

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:

Screenshot from 2021-11-05 14-21-00

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 :) .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.