sonydevworld / spresense Goto Github PK
View Code? Open in Web Editor NEWSpresense SDK source code
Home Page: https://developer.sony.com/develop/spresense/docs/home_en.html
License: Other
Spresense SDK source code
Home Page: https://developer.sony.com/develop/spresense/docs/home_en.html
License: Other
i am new for spresense and NuttX, not sure where could be right place to post this issue. if i am mistaken, please enlighten and guide to the correct path.
i was trying to enable gs2200m Wi-Fi add-on board to connect wireless network.
using menuconfig to enable driver/wireless/gs2200m
and apps/wireless/gs2200m
, then meeting the following error during build.
wireless/gs2200m.c: In function 'gs2200m_join_network':
wireless/gs2200m.c:1638:53: error: 'struct net_driver_s' has no member named 'd_ipaddr'
inet_aton(addr[0], (struct in_addr *)&dev->net_dev.d_ipaddr);
^
seems that i am just missing some configuration, any help welcome ๐
The OpenOCD config creates all the CPU cores in accordance to their AP number
spresense/sdk/tools/cxd5602.cfg
Lines 28 to 30 in 556c296
However, this makes it incompatible with targets using HLA_SWD like the ST-Link, who can only access the first AP (=0). Other config files have a check for this
And I think it should be included here too.
@kamtom480: a question for you:
The implementation of assert()
in spresense comes from nuttx. assert()
is defined as ASSERT()
when NDEBUG
is not defined. See https://github.com/sonydevworld/spresense-nuttx/blob/new-master/include/assert.h:
#define ASSERT(f) do { if (!(f)) PANIC(); } while (0)
This version of assert()
cannot be used in an expression context, such as a comma expression. It can only be used in statement context.
We are merging recent changes from upstream MicroPython into CircuitPython, and there are several places where MicroPython uses assert()
in a comma expression here:
https://github.com/micropython/micropython/blob/05cb1406ad1b421a238faf763e19f4119f5f6bb2/py/obj.h#L921-L926
#define mp_type_assert_not_bool_int_str_nonetype(t) ( \
MP_STATIC_ASSERT_NOT_MSC((t) != &mp_type_bool), assert((t) != &mp_type_bool), \
MP_STATIC_ASSERT_NOT_MSC((t) != &mp_type_int), assert((t) != &mp_type_int), \
MP_STATIC_ASSERT_NOT_MSC((t) != &mp_type_str), assert((t) != &mp_type_str), \
MP_STATIC_ASSERT_NOT_MSC((t) != &mp_type_NoneType), assert((t) != &mp_type_NoneType), \
1)
This doesn't work with the statement-only do ... while(0)
version of assert()
above, and so we can't build the spresense port in in our merge branch right now.
man 3 assert
says assert()
has the signature void assert(scalar expression);
, though it might be implemented as a macro.
The other versions of assert()
in the other CircuitPython and MicroPython can be used in expressions.
I am not sure how to fix this: the particular macro above is tricky and hard to rewrite with the nuttx assert. The nuttx assert could be modified, but that is a change in that submodule. Or a new version of assert()
could be introduced to substitute for the nuttx version.
What do you think? Thanks.
We don't have a merge PR yet, but @tannewt and I are working in https://github.com/dhalbert/circuitpython/tree/v1.20-merge
I am building an application using PCM capture objif example as a starting point, starting to integrate other examples with it. I am encountering an error in the audio subsystem when I run the mag example as an additional task with lower priority, and I think the issue might be caused by the use of malloc() for the g_data buffer After running for some undetermined time with no issue (between 5 minutes up to a few hours), the following error comes up inside CaptureBuffer CaptureComponent::getCapBuf(uint32_t cap_sample) : AS_ATTENTION_SUB_CODE_MEMHANDLE_ALLOC_ERROR, followed by other errors across audio subsystems, and the capture of audio data stops. Mag data recording doesn't stop.
The error doesn't appear when I run the mag example as a task without g_data and simply discarding mag data. Does MemManager fence off the assigned RAM space within nuttx, is it something I have to account for? Any advice would be appreciated.
I have been following the getting started guide for SDK CLI for windows 10 from the the website https://developer.sony.com/develop/spresense/docs/sdk_set_up_en.html#_development_environment
After installing MYSYS2 . I opened MYSYS2 MYSYS and tried the following command
curl -L https://raw.githubusercontent.com/sonydevworld/spresense/master/install-tools.sh > install-tools.sh
I got an error stating it was unable to connect to the port
Thus I manually copy pasted the content from the github Repository file
Then when I ran this cmd
bash install-tools.sh
I got the message
Sorry this platform is not supported
Even though I had installed MYSYS2 and had a windows 10 OS
Thus I changed the following code in the install-tools.sh file from line 330
case "`uname -s`" in
Linux)
OS=linux
;;
MSYS2*)
OS=win
;;
Darwin)
OS=mac
;;
*)
echo Sorry, this platform is not supported.
exit 1
;;
esac
to
case "`uname -s`" in
Linux)
OS=linux
;;
MSYS2*)
OS=win
;;
Darwin)
OS=mac
;;
*)
OS=win
;;
# echo Sorry, this platform is not supported.
# exit 1
# ;;
esac
With this ,the problem was solved and all the packages got installed , however I am not sure if I everything is working properly . This is only a temporary solution for windows 10 users .
Then I ran the next command
source ~/spresenseenv/setup
which gave me an error No such file or directory
I request repository owners to look into it . Thank You
I noticed that when using microSD cards with the Spresense expansion board, some can be used and some cannot.
SanDisk Ultra SDSQUA4-032G-EPK and KIOXIA KCA-MC016GS are not recognized when inserted into the expansion board, while Transcend 2GB TS2GUSD and Toshiba 16GB MU-J016GX microSD cards can be used.
I have confirmed that the BtoB connector is connected when using any of the microSD cards, and the PC can recognize and handle any of the microSD cards.
Also, they are all SDHC micro SDcards formatted with FAT32.
Why are some of these same micro SD cards available and others are not?
SanDisk Ultra SDSQUA4-032G-EPK (SDHC class 10) ร
KIOXIA KCA-MC016GS (SDHC class 10) ร
Transcend 2GB TS2GUSD (SDHC)โ
Toshiba 16GB MU-J016GX (SDHC class 10
My understanding, RTC drivers are designed that it can be separated by upper-half
and lower-half
in NuttX.
https://nuttx.apache.org/docs/latest/components/drivers/character/rtc.html
But the up_rtc_gettime()
implemented in nuttx/arch/arm/src/cxd56_rtc.c
is called by cxd56_rdtime()
in nuttx/arch/arm/src/cxd56_rtc_lowerhalf.c
.
Why is a upper-half function called in lower-half one?
I'd like to understand these design and implementation.
I cannot switch two or more lower-half drivers with a generic upper-half driver(nuttx/drivers/timers/arch_rtc.c
) in current SDK.
description:
nuttx-tools with the rev in README.md fails config.py examples.
spresense/sdk$ tools/config.py examples/hello
arch/arm/src/imxrt/Kconfig:1236: syntax error
arch/arm/src/imxrt/Kconfig:1235: invalid option
arch/arm/src/stm32l4/Kconfig:5236: syntax error
arch/arm/src/stm32l4/Kconfig:5185: missing end statement for this entry
arch/arm/src/stm32l4/Kconfig:5053: missing end statement for this entry
arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
arch/arm/Kconfig:1044: missing end statement for this entry
...
My environment below.
$cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
spresense$ git branch
* master
spresense/tools/kconfig-frontends$ git branch
* (HEAD detached at 891510d)
master
Fails reason:
Maybe, nuttx's kconfig file uses not support syntax with tools's repo's rev 891510d2534287afef6b5c90a375f94442a7e94d yet.
reference: kconfig-language's commit added some syntax.
https://gitlab.sdu.dk/sdurobotics/linux-kernels/kernel/-/commit/9059a3493efea6492451430c7e2fa0af799a2abb#541ddb1c3d900a22b15bd837aa191c0a1aa50080
This line in the Makefile of libjpeg:
https://github.com/sonydevworld/spresense/blob/master/externals/libjpeg/Makefile#L49
I think this code should be (append a slash at the end of the directory):
CFLAGS += -DTEMP_DIRECTORY=\"/mnt/spif/\"
The LTE power remains on after reboot by watchdog while using LTE. So it causes the LTE to fail to initialize.
As expected behavior, the LTE power should be turned off as well as a power-on-reset after reboot.
The Makefiles are broken on Windows because quotes are erroneously included in targets. For example, in nuttx/tools/Config.mk:
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
DEFINE ?= "$(TOPDIR)\tools\define.bat"
INCDIR ?= "$(TOPDIR)\tools\incdir.bat"
else ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
DEFINE ?= "$(TOPDIR)/tools/define.sh" -w
INCDIR ?= "$(TOPDIR)/tools/incdir$(HOSTEXEEXT)" -w
else
DEFINE ?= "$(TOPDIR)/tools/define.sh"
INCDIR ?= "$(TOPDIR)/tools/incdir$(HOSTEXEEXT)"
endif
This happens in so many places that I'm wondering if anyone is building on Windows at all? It definitely doesn't work with the MSYS make app.
There are further errors with slashes being removed from paths altogether.
When using the prebuilt docker image I'm unable to configure and/or build the
hello
example after following instructions in README.
$ git clone --recursive https://github.com/sonydevworld/spresense.git
$ git submodule foreach git checkout master
Then using the docker image:
$ source spresense_env.sh
This script has to be sourced.
. ./spresense_env.sh or source spresense_env.sh
Using default tag: latest
latest: Pulling from devworldsony/spresense-sdk-env
Digest: sha256:3a2f02cf9e0a1063585db66ddca43d5633dd65545ea9d00dd88983de39ca24d6
Status: Image is up to date for devworldsony/spresense-sdk-env:latest
docker.io/devworldsony/spresense-sdk-env:latest
After this script executed successfully:
Usage: spresense [command]
This will run command in the Spresense SDK docker environment.
Followed by:
SpresenseSDK:$ spresense sh -c "cd /spresense/sdk && tools/config.py examples/hello"
make[1]: *** [include/arch/board] Error 1
make: *** [olddefconfig] Error 2
Post process failed. 512
Try 'make distclean' first.
On master (commit: 6cb78083
)
If use hardware version v1.0C of WIFI board (iS110B), WIFI driver reports error
(About hardware version, refer to https://idy-design.com/product/is110b.html.)
up_assert: Assertion failed at file:wireless/gs2200m.c line: 1007 task: AppBringUp
up_registerdump: R0: 00000001 0d02bee0 000000e0 0d02e18c 0d02bee0 0d034248 0d02e178 0d0107c5
up_registerdump: R8: 0d026aa8 000003ef 0d033600 00000000 00000000 0d034248 0d002531 0d0027b0
up_registerdump: xPSR: 61000000 BASEPRI: 000000e0 CONTROL: 00000004
up_registerdump: EXC_RETURN: ffffffe9
up_dumpstate: sp: 0d034248
up_dumpstate: IRQ stack:
up_dumpstate: base: 0d02b400
up_dumpstate: size: 00000800
up_dumpstate: used: 000000d0
up_dumpstate: User stack:
up_dumpstate: base: 0d034380
up_dumpstate: size: 000007e4
up_dumpstate: used: 000002d0
up_stackdump: 0d034240: 0d033b9c 0d002675 000000e0 00000004 00000000 00000000 0d034248 0d002531
up_stackdump: 0d034260: 0d0027b0 00000006 000006e0 0d0107c5 00000000 0d0103e1 00000000 0d0268b0
up_stackdump: 0d034280: 000001a5 f8000600 a5a5a5a5 a5a5a5a5 0d038920 0d0342c0 00000000 0d02a704
up_stackdump: 0d0342a0: 0d0268b0 0d02a704 00000000 0d010915 0d038920 0d026928 0d0268b0 0d0113b3
up_stackdump: 0d0342c0: 30455441 04000a0d 041014a0 00000006 0d02cc70 0d034300 0d02cbf8 00000005
up_stackdump: 0d0342e0: 00000000 0d034300 0d02cbf8 00000005 00000000 0d00d403 00000000 00000005
up_stackdump: 0d034300: 97010104 99010104 9b010104 9d010105 00000000 00000000 0d02689d 00000000
up_stackdump: 0d034320: 00000000 00000000 00000000 0d00d035 00000000 01000000 00000000 00000000
up_stackdump: 0d034340: 00000000 43410000 7665642f 6d69742f 00317265 00000000 00000000 00000000
up_stackdump: 0d034360: 00000000 0d003549 00000001 0d034384 00000101 0d004417 00000000 00000000
up_taskdump: Idle Task: PID=0 Stack Used=0 of 0
up_taskdump: hpwork: PID=1 Stack Used=344 of 2028
up_taskdump: lpwork: PID=3 Stack Used=584 of 2028
up_taskdump: lpwork: PID=4 Stack Used=584 of 2028
up_taskdump: AppBringUp: PID=5 Stack Used=776 of 2020
up_taskdump: cxd56_pm_task: PID=6 Stack Used=352 of 996
Plugin WIFI board v1.0C (iS110B)
v2.1.0
According to https://idy-design.com/product/is110b.html, there are 3 versions (v1.0A, v1.0B and v1.0C) of WIFI board for Spresense main board.
For different hardware version, the connected pin is a little different.
After checking latest codes, find current codes are only for hardware version v1.0A.
e.g.
https://github.com/sonydevworld/spresense-nuttx/blob/7686b71a7cfe17bf8f3fb1be7749594278b0c808/boards/arm/cxd56xx/common/src/cxd56_gs2200m.c#L243-L245
In market, we can buy WIFI board with the hardware version v1.0C. Current codes cannot work well.
So we should update codes for different hardware version as Barry-Xu-2018/spresense-nuttx@1213564
asmpใฎใตใณใใซใๅใใชใใงใใ
ไฝใใใณใใใใใพใใ๏ผ
Ubuntu 18.04 64bit
gcc version 6.3.1
SPRESENSE_ADN_SDK_1.0.000
ใณใณใใฃใฐใฏexample/asmp
ใไฝฟ็จใใพใใใ
ๅฎ่กๆใซใฏROMFSใฎใใฆใณใใพใงใฏๆๅใใฆใใฆใใใฎไธญใซhello
ใๅ
ฅใฃใฆใพใใใ
ไปฅไธใฎใณใใณใๅฎ่กๅพใซใใชใผใบใใพใใ
$ ./tools/flash.sh -b2000000 nuttx.spk && miniterm.py /dev/ttyUSB0 115200 --raw
>>> Install files ...
install -b 2000000
Install nuttx.spk
Waiting for XMODEM (CRC or 1K) transfer. Ctrl-X to cancel.
.................................................................................................................................................................162464 bytes loaded.
Package validation is OK.
Saving package to "nuttx"
updater# sync
updater# Restarting the board ...
reboot
--- Miniterm on /dev/ttyUSB0 115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
NuttShell (NSH)
nsh> asmp
Registering romdisk at /dev/ram0
Mounting ROMFS filesystem at target=/romfs with source=/dev/ram0
attached at 00010000
(ใใใงใใชใผใบ)
I have a problem about WiFi Connection in running sample named multiwebcam.
I used gs2200m command for setting WiFi connection to our AccessPoint.
But sometimes, "association failed : retrying" error happened after gs2200m command.
The following link is Screen Shot.
https://www.dropbox.com/t/cv5zoAwnLDIGtGFR
Please give me any idea.
Thanks
This may be an issue with the underlying nuttx build system, and does not seem to be present in the nuttx mainline, but I have observed system include files will pick files from the project directory.
In the below example, I have a file called queue.h
in project which was loaded by nuttx/shed.h
- this in turn loads mqueue.h
which fails as the system queue.h
has not been loaded.
Only system headers should have been loaded by < > quoted includes.
To reproduce, add a queue.h
file to hello. This was build on Ubuntu.
make distclean
./tools/config.py examples/hello
echo '#include <nuttx/mqueue.h>' > apps/examples/hello/queue.h
make
make[3]: Entering directory '/home/seal/sony/spresense/sdk/apps/examples/hello'
CC: hello_main.c
In file included from /home/seal/sony/spresense/nuttx/include/nuttx/signal.h:49:0,
from /home/seal/sony/spresense/nuttx/include/nuttx/mqueue.h:46,
from ./queue.h:1,
from /home/seal/sony/spresense/nuttx/include/nuttx/sched.h:47,
from /home/seal/sony/spresense/nuttx/include/sched.h:49,
from /home/seal/sony/spresense/nuttx/include/stdio.h:48,
from hello_main.c:41:
/home/seal/sony/spresense/nuttx/include/nuttx/wqueue.h:273:21: error: field 'dq' has incomplete type
struct dq_entry_s dq; /* Implements a doubly linked list */
For background - I have 4 released boards:
For boards 1 & 2 I have had no issues, and been work off of board 3 since received (~late July). Post release I was sent 4 the retail version (main/ext) and have not opened.
It is with board 3, and perhaps the retail board 4 that I am having problems with UART2. Serail2 does not transmit/receive. (Pins 0/1). Programing methods function as If transmission functions correctly. and for sure there is no data received during a serial dialog.
Same program used on boards 1,2,3. Other operations seem to work as expected.
Questions:
Advice appreciated
Sample code elements for reference. Interfacing with an ESP8266 module. Serial2.println("AT") executes but there is no indication that it is sent over TX. Consequently, there is no reply. Same code, same wiring, same module used on boards 1 & 2 without issue.
** Serial2.begin(115200);
while(!Serial2){
; // wait for ESP8266 port to open/connect; vehicle Monitoring
}
Serial2.println("AT"); // Check: OK is returned
waitTime(500);
if (MONITOR) while (Serial2.available() > 0) Serial.write(Serial2.read());**
Apple stopped updating bash
after it switched to GPL v3, so scripts shouldn't use it.
Posting here because the forums are broken. The SDK defines AS_CODECTYPE_AAC but it doesn't appear to be functional. There is no AAC DSP binary, either. Does one exist somewhere? Curious if the source code to the MP3ENC binary is available anywhere, too.
Received the following error once reaching the Bootloader step in end user process:
[3224] Failed to execute script flash_writer
Install files ...
Traceback (most recent call last):
File "flash_writer.py", line 504, in
File "flash_writer.py", line 477, in main
File "flash_writer.py", line 378, in install_files
FileNotFoundError: [Errno 2] No such file or directory: 'REMOVE/spresense_dvt/firmware/loader.espk'
Error while burning bootloader.
Hardware setup: Windows 10
Software version used: Arduino IDE - 1.6.13
Resolution: Since already having version installed, Boards Manager recognized this, and Ignored updating. After updated the SDK, and issue was resolved.
In this block of the code:
https://github.com/sonydevworld/spresense/blob/master/sdk/modules/dnnrt/src/functions/affine.c#L210
The pointer b points outside of the valid bias, when p->base_loop_size > 1 and p->bias is not NULL. This will cause affine's wrong computations.
This code block should be:
if (bias)
{
float *b = bias;
for (i = 0; i < output_loop_size; i++)
{
y[i] += b[i];
}
}
I want to develop an application with RFID , however it seems RFID is not compatible with spresense (Arduino IDE ,I mean there is no specific library). I would like to know if its possible to integrate them , I don't have any clue and need references so I could learn to integrate them if they can be integrated. Thank You
I have been following the instructions on the sony spresense developer pages to install SDK and get a basic hello world working.
The code is not compiling for me. The output has two problems maybe related?
I am using Visual Studio code on an Apple M1 mac.
When I create the workspace I get the following problem reported
"1/16/2022, 7:05:03 PM] Unable to resolve configuration with compilerPath "/arm-none-eabi-gcc". Using "/usr/bin/clang" instead.
[1/16/2022, 7:05:03 PM] Unable to resolve configuration with compilerPath "/arm-none-eabi-gcc". Using "/usr/bin/clang" instead.
[1/16/2022, 7:05:06 PM] Unable to resolve configuration with compilerPath "/arm-none-eabi-gcc". Using "/usr/bin/clang" instead.
[1/16/2022, 7:05:06 PM] Unable to resolve configuration with compilerPath "/arm-none-eabi-gcc". Using "/usr/bin/clang" instead."
I've run the cmd arm-none-eabi-gcc -v and this reports no errors.
This is my compilerpath setting
"compilerPath": "${config:spresense.env.toolchain.path}/arm-none-eabi-gcc",
Looking in the c_cpp_properties file I also have the following error
""${workspaceFolder}/.vscode/include"," is highlighted with a message saying it doesn't exist which it doesn't.
my workspace configuratiion is
"includePath": [
"${workspaceFolder}/.vscode/include",
"${mySpresenseSdkPath}/sdk/apps/include",
"${mySpresenseSdkPath}/sdk/modules/include",
"${mySpresenseSdkPath}/sdk/modules/asmp/worker",
"${mySpresenseSdkPath}/sdk/system/include",
"${mySpresenseSdkPath}/sdk/bsp/include",
"${mySpresenseSdkPath}/nuttx/include",
"${workspaceFolder}/**"
],
All the other settings in the config files i.e workspace config seem to be ok.
I tried on Linux and although didnt get the warning about gcc/CLang still got it complaining about missing .vscode/include
In Spresense SDK v2.3.0
, sometimes NuttX calls arm_hardfault
in fwupdate
example.
nsh> fwupdate -p /mnt/sd0/package.bin
FW Update Example!!
arm_hardfault: PANIC!!! Hard fault: 40000000
up_assert: Assertion failed at file:armv7-m/arm_hardfault.c line: 135 task: init
up_registerdump: R0: 2d08d2c0 30616463 00000000 00000003 2d08d2c0 00000000 0d05cc36 2d08d1b0
up_registerdump: R8: 00000000 0d05cad4 2d07fab0 00000000 0000000a 2d08d168 0d007b73 0d04f284
up_registerdump: xPSR: 21000000 BASEPRI: 000000e0 CONTROL: 00000000
up_registerdump: EXC_RETURN: ffffffe9
up_dumpstate: sp: 2d072f58
up_dumpstate: IRQ stack:
up_dumpstate: base: 2d072fd0
up_dumpstate: size: 00000800
up_dumpstate: used: 00000170
up_stackdump: 2d072f40: 00000000 00003fd8 2d072f58 2d07f438 2d08d2b0 0d0087b5 000000e0 00000000
up_stackdump: 2d072f60: 00000000 0000000a 2d08d168 0d007b73 0d04f284 2d07f438 2d08d094 2d07f438
up_stackdump: 2d072f80: 2d08d094 00000003 00000000 00000000 0d05cad4 2d07fab0 00000000 0d006ad1
up_stackdump: 2d072fa0: 0d046f8d 0d001c73 0d001c51 0d003907 000000e0 0d001c45 000000e0 2d08d094
up_stackdump: 2d072fc0: 00000000 0d05cc36 2d08d1b0 0d000333 00000000 00000000 00000000 00000000
up_dumpstate: sp: 2d08d168
up_dumpstate: User stack:
up_dumpstate: base: 2d08d2b0
up_dumpstate: size: 00003fd8
up_dumpstate: used: 000003a4
up_stackdump: 2d08d160: 00000000 0d04f231 00000003 00000000 2d08d1b0 00000000 00000003 0d05cc36
up_stackdump: 2d08d180: 00000001 0d04e465 00000000 00000000 0d05cc36 0d00a89d 00000000 2d083fd0
up_stackdump: 2d08d1a0: 2d08d1b0 00000020 0d05c861 0d00a3bd 0d05c7fb 0d05c804 0d05c807 30616463
up_stackdump: 2d08d1c0: 30323931 65656138 65313032 36633932 31623636 34396566 34313832 0d01c400
up_stackdump: 2d08d1e0: 2035646d 2f20662d 2f746e6d 2f306473 666e6f63 702f6769 616b6361 622e6567
up_stackdump: 2d08d200: 2d006e69 2d083fd0 2d07fa68 0d007e67 2d083fd0 0d004057 2d083fd0 0d01a167
up_stackdump: 2d08d220: 2d07faa0 2d07faa0 2d083fd0 0d00a78b 00000001 deadbeef 00000000 34623132
up_stackdump: 2d08d240: 35333535 33653531 66353364 36613561 36323335 34333563 00000000 00000000
up_stackdump: 2d08d260: 0d004750 01000000 00000000 00000000 00000000 00000000 2d073fd0 0d00a535
up_stackdump: 2d08d280: 00000000 00000000 00000000 00000000 00000000 0d006cd9 0d00a535 00000001
up_stackdump: 2d08d2a0: 00000000 0d00478d 00000000 00000000 2d08d2b8 00000000 74696e69 deadbe00
up_taskdump: Idle Task: PID=0 Stack Used=468 of 1024
up_taskdump: hpwork: PID=1 Stack Used=596 of 2008
up_taskdump: lpwork: PID=2 Stack Used=332 of 2008
up_taskdump: lpwork: PID=3 Stack Used=332 of 2008
up_taskdump: lpwork: PID=4 Stack Used=332 of 2008
up_taskdump: cxd56_pm_task: PID=6 Stack Used=400 of 976
up_taskdump: init: PID=7 Stack Used=932 of 16344
up_assert: Assertion failed at file:irq/irq_unexpectedisr.c line: 50 task: init
up_registerdump: R0: 2d072f50 0d007b15 00000000 2d072f50 2d072f58 2d08d168 2d07f438 2d08d2b0
up_registerdump: R8: 0d05c0da 00000087 0d05c539 2d072f34 0d008703 2d072fa0 0d05c539 0d05c6d7
up_registerdump: xPSR: 0d05c0da BASEPRI: 63366437 CONTROL: 00000000
up_registerdump: EXC_RETURN: 2d07f438
up_dumpstate: sp: 2d072f58
up_dumpstate: IRQ stack:
up_dumpstate: base: 2d072fd0
up_dumpstate: size: 00000800
up_dumpstate: used: 000001b0
up_stackdump: 2d072f40: 00000000 00003fd8 2d072f58 2d07f438 2d08d2b0 0d0087b5 63366437 00000000
up_stackdump: 2d072f60: 2d072f34 0d008703 2d072fa0 0d05c539 0d05c6d7 2d07f438 2d08d094 2d07f438
up_stackdump: 2d072f80: 2d072ecc 00000002 2d08d094 0d05c0da 00000087 2d088ee0 2d072fd0 0d006ad1
up_stackdump: 2d072fa0: 00000080 0d003941 0d00392d 0d003907 00000080 0d001c45 00000080 2d072ecc
up_stackdump: 2d072fc0: 2d08d168 2d07f438 2d08d2b0 0d000333 00000000 00000000 00000000 00000000
up_dumpstate: sp: 2d088ee0
up_dumpstate: User stack:
up_dumpstate: base: 2d08d2b0
up_dumpstate: size: 00003fd8
up_dumpstate: used: 000003a4
up_dumpstate: ERROR: Stack pointer is not within the allocated stack
up_stackdump: 2d0892c0: 00000000 00000000 00000000 00000000 2d08d2c0 00000000 deadbeef deadbeef
up_stackdump: 2d0892e0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089300: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089320: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089340: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089360: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089380: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0893a0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0893c0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0893e0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089400: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089420: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089440: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089460: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089480: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0894a0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0894c0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0894e0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089500: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089520: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089540: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089560: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089580: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0895a0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0895c0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0895e0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089600: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089620: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089640: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089660: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089680: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0896a0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0896c0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0896e0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089700: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089720: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089740: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089760: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089780: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0897a0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0897c0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0897e0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089800: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089820: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089840: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089860: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089880: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0898a0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0898c0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0898e0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089900: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089920: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089940: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089960: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089980: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0899a0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0899c0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d0899e0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089a00: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089a20: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089a40: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089a60: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089a80: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089aa0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089ac0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089ae0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089b00: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089b20: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089b40: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089b60: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089b80: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089ba0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089bc0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089be0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089c00: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089c20: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089c40: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089c60: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089c80: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089ca0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089cc0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089ce0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089d00: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089d20: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089d40: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089d60: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089d80: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089da0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089dc0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089de0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089e00: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089e20: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089e40: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089e60: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089e80: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089ea0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089ec0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089ee0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089f00: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089f20: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089f40: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089f60: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089f80: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089fa0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089fc0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
up_stackdump: 2d089fe0: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
I couldn't specify any combinations of other configs to occur this problem...
But it doesn't occur with this patch.
I think that optargs()
has some bugs or something in the SDK.
diff --git a/examples/fwupdate/fwupdate_main.c b/examples/fwupdate/fwupdate_main.c
index 82e9f641..c73c0166 100644
--- a/examples/fwupdate/fwupdate_main.c
+++ b/examples/fwupdate/fwupdate_main.c
@@ -94,28 +94,9 @@ int main(int argc, FAR char *argv[])
printf("FW Update Example!!\n");
optind = -1;
- while ((opt = getopt(argc, argv, ":f:p:zh")) != -1)
- {
- switch (opt)
- {
- case 'f':
- farg = optarg;
- break;
- case 'p':
- parg = optarg;
- break;
- case 'z':
-#ifdef CONFIG_EXAMPLES_FWUPDATE_USBCDC_ZMODEM
- zopt = 1;
-#endif
- break;
- case 'h':
- case ':':
- case '?':
- show_usage(argv[0]);
- return EXIT_FAILURE;
- }
- }
+
+ opt = getopt(argc, argv, ":f:p:zh");
+ parg = optarg;
printf("Free space %lu bytes\n", fwup_client_getfreespace());
Hi!
In order to do C++ string manipulations we are using <string>
. But including this file results in following errors:
arm-none-eabi-ld: /home/arjan/Documents/EdgeImpulse/Firmware/sony/spresense/nuttx/staging/libapps.a(helloxx_main.o): in function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)':
/usr/include/newlib/c++/9.2.1/bits/basic_string.tcc:225: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy_chars(char*, char const*, char const*)'
arm-none-eabi-ld: /home/arjan/Documents/EdgeImpulse/Firmware/sony/spresense/nuttx/staging/libapps.a(helloxx_main.o): in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()':
/usr/include/newlib/c++/9.2.1/bits/basic_string.h:658: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose()'
Meaning that the std libs don't support the string. Could you provide support for this?
I tried loading the example fsperf and after successfully flashing the nuttx.spk, the Spresense board cannot be communicated to via the serial connection. I attempted to communicate via the Spresense SDK VSCode IDE "Open Serial Port" - the terminal remains blank. I tried using the $screen /dev/ttyUSB0 115200
- screen remains blank.
I can flash another example successfully and able to then connect to the board via serial port.
Using the latest 3.0 bootloader version.
Could you give me more details about this problem and its fix?
commit df57c1cba4b67642c75ad57a1ff722e6b0ddd924
Author: SPRESENSE <[email protected]>
Date: Thu Jul 28 19:09:25 2022 +0900
drivers/modem/alt1250: Temporary enable power_button pin
Some LTE board cannot boot up correctly right now.
With this fix, problem LTE board can boot up correctly.
So, apply this fix before apply main fix.
diff --git a/boards/arm/cxd56xx/spresense/src/cxd56_alt1250_power.c b/boards/arm/cxd56xx/spresense/src/cxd56_alt1250_power.c
index 4f19b26921..24fa3cf054 100644
--- a/boards/arm/cxd56xx/spresense/src/cxd56_alt1250_power.c
+++ b/boards/arm/cxd56xx/spresense/src/cxd56_alt1250_power.c
@@ -81,6 +81,10 @@ void board_alt1250_poweron(void)
cxd56_gpio_write(ALT1250_SHUTDOWN, true);
+ /* Workaround: Power button pin set to high before power on */
+
+ cxd56_gpio_write(ALT1250_LTE_POWER_BUTTON, true);
+
board_power_control(POWER_LTE, true);
}
Hi,
Today for the first time I was following SDK getting stated guide, and as per instructions at https://developer.sony.com/develop/spresense/docs/sdk_set_up_en.html#_configuration_instructions
should be running tools/config.py examples/hello
but the latest SDK has layout of apps/examples/hello
and when I ran tools/config.py apps/examples/hello
get error
Hi Community,
I am new to Microcontroller. Hope I explain my problem clearly enough.
I connected the RXD and TXD on my HM-10 to UART2_RX and UART2_TX on spresense. Then I try to build and fresh the "bluetooth_le_central" example on the spresense SDK Github repo.
The code is successfully fresh into spresense but when I run it. The nuttx give me this ERROR:
[BT][Common] Initialization failed(HAL initialize failed)
After checking the documentation and debugging. I found out that the Bluetooth module initialize is failed
I have an error on this function
I am looking for a solution or some clues.
Thanks,
Zhenyu
FYI,
I used the same setup on Arduino IDE and could enter the AT mode of the Bluetooth. I think that means I got the pin right.
Including inttypes.h
in a .c
file fails.
The issue should be easy to reproduce by just creating a importer.c
file with a single line:
#include <inttypes.h>
Compiling that file will produce the following errors:
In file included from /home/guberti/Desktop/demonstrate_inttypes_bug/importer.c:1:0:
/home/guberti/.arduino15/packages/SPRESENSE/tools/spresense-sdk/2.2.1/spresense/release/nuttx/include/inttypes.h:185:31: error: unknown type name 'wchar_t'
intmax_t wcstoimax(FAR const wchar_t *nptr, FAR wchar_t **endptr, int base);
^
/home/guberti/.arduino15/packages/SPRESENSE/tools/spresense-sdk/2.2.1/spresense/release/nuttx/include/inttypes.h:185:50: error: unknown type name 'wchar_t'
intmax_t wcstoimax(FAR const wchar_t *nptr, FAR wchar_t **endptr, int base);
^
/home/guberti/.arduino15/packages/SPRESENSE/tools/spresense-sdk/2.2.1/spresense/release/nuttx/include/inttypes.h:186:31: error: unknown type name 'wchar_t'
uintmax_t wcstoumax(FAR const wchar_t *nptr, FAR wchar_t **endptr, int base);
^
/home/guberti/.arduino15/packages/SPRESENSE/tools/spresense-sdk/2.2.1/spresense/release/nuttx/include/inttypes.h:186:50: error: unknown type name 'wchar_t'
uintmax_t wcstoumax(FAR const wchar_t *nptr, FAR wchar_t **endptr, int base);
^
You can also use this Arduino script to reproduce the issue.
This issue arises because inttypes.h
cannot find where wchar_t
is defined. It tries to import stddef.h
for this purpose:
/****************************************************************************
* Included Files
****************************************************************************/
#include <stddef.h> /* for wchar_t */
However, for reasons unknown to me stddef.h
does not define wchar_t
. There's a comment saying that it should, so the logical solution seems to be moving the definition of wchar_t
from sys/types.h
to stddef.h
.
/*
* NOTE: Currently the type definitions of ptrdiff_t, wchar_t, and size_t are
* in sys/types.h but should be moved here sometime.
*/
There is no process to restore the read position after reading DC report,
so it fails to get the positioning information after reading DC report.
It should add a process to reset the read position after read to match the specifications of the built-in GNSS.
Hello.
How could the code be modified to pass raw sensor data to a compiled model.
I assume the loading would be changed but what would replace it? How would this data be input to the model?
Additionally, could we load a csv and pass it line by line?
Thank you.
While math.h
functions are available to C programs, the equiveant (or bridging functions) do not appear to be able to C++ programs. This may not strictly be a bug, just an unsupported feature. The nuttx mainline has the same issue unless you active "Standand math library" option (on ubuntu with gcc). This option issue exists in the spresense build system but is not enabled in Kconfig for some reason. I have been able to work around the issue in my project by creating bridging functions in C.
To reproduce add.. (i added spaces because of markup)
#include < cmath >
to helloxx_main.cxx
in the helloxx
example.
CXX: helloxx_main.cxx
In file included from /home/seal/sony/spresense/sdk/include/arch/math.h:41:0,
from /home/seal/sony/spresense/nuttx/include/math.h:52,
from /home/seal/sony/spresense/nuttx/include/cxx/cmath:46,
from helloxx_main.cxx:44:
/home/seal/spresenseenv/usr/arm-none-eabi/include/c++/7.3.1/math.h:38:12: error: 'std::abs' has not been declared
using std::abs;
^~~
/home/seal/spresenseenv/usr/arm-none-eabi/include/c++/7.3.1/math.h:39:12: error: 'std::acos' has not been declared
using std::acos;
^~~~
/home/seal/spresenseenv/usr/arm-none-eabi/include/c++/7.3.1/math.h:40:12: error: 'std::asin' has not been declared
using std::asin;
^~~~
etc...
I followed the Spresense SDK Getting Started Guide
and successfully finished. But failed to do Examples and Tutorials
due to the following error.
% source ~/spresenseenv/setup <= this did not make any difference
% source tools/build-env.sh
tools/build-env.sh:225: = not found
My environment is Mac (macOS 12.4, M1 Pro).
The line 225 is the following code.
https://github.com/sonydevworld/spresense/blob/master/sdk/tools/build-env.sh#L225
When I simply changed the equation to the one with -z
, this will pass. But encountered another = not found error
as below.
% source tools/build-env.sh
Warning: Spresense user application directory is not set.
Please run
$ spr-set-approot <application home directory>
=======================================
cat: /Users/takenori/Documents/sdk/tools/mkversion.sh: No such file or directory
SDK_VERSION =
cat: /Users/takenori/Documents/sdk/tools/mkversion.sh: No such file or directory
NUTTX_VERSION =
SPRESENSE_SDK = /Users/takenori/Documents
SPRESENSE_HOME =
GCC_VERSION = arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 9-2019-q4-major) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599]
HOST = Darwin arm64
=======================================
Info: Please update the version to 4.0 or later
The spresense tools completion can not work well
because of old bash version.
% spr-set-approot /Users/takenori/Documents/open_repos/spresense
spr-set-approot:4: = not found
% spr-create-approot ~/Documents/open_repos/my_sp_apps
spr-create-approot:4: = not found
It looks this is caused simply because ==
is used for the comparison. Is there anything I missed here?
Following the instructions in the README to get the submodules out of detached
state results in that sdk/apps
submodule is still in detached state.
$ git clone --recursive https://github.com/sonydevworld/spresense.git
$ git submodule foreach git checkout master
As result:
$ git submodule foreach git checkout master
Entering 'externals/nnablart/nnabla-c-runtime'
Already on 'master'
Your branch is up to date with 'origin/master'.
Entering 'nuttx'
Already on 'master'
Your branch is up to date with 'origin/master'.
Entering 'sdk/apps'
error: pathspec 'master' did not match any file(s) known to git
fatal: run_command returned non-zero status for sdk/apps
sdk/apps
submodule has no branch master
rather new-master
.
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.