I fully agree with Tomek. If possible, let's delay the release for a while
and fix what's broken, or at least find the broken configurations/features.
What I have tested so far:
- [X] sim/foc - fixed
- [X] sim/smp - **broken**
- [X] sim/nsh - OK
- [X] sim/crypto - OK
- [X] sim/elf - OK
- [X] sim/fb - OK
- [X] sim/lvgl_fb - OK
- [X] nrf52840-dk/adc - OK
- [X] nrf52840-dk/pwm - OK
- [X] nrf52840-dk/highpri - **boken**
other highpri examples also broken
- [X] nrf52840-dk/sdc_nimble - OK
- [X] nrf52840-dk/sdc - OK
- [X] nrf52840-dk/composite - OK
- [X] nrf52840-dk/timer - fixed
- [X] nrf52840-dk/tickelss - OK
- [X] nrf52840-dk/qspi - OK
- [X] stm32f4disco/nsh - OK
- [X] stm32f4disco/elf - OK
- [X] stm32f4disco/module - OK
- [X] stm32f4disco/usbnsh - OK
- [X] stm32g071b-disco/oled - fixed
- [X] stm32f746g-disco/nsh - OK
- [X] stm32f746g-disco/fb - *broken* (not related to LVGL)
- [X] stm32f746g-disco/nxdemo - *broken* (not related to LVGL)
- [X] stm32f746g-disco/audio - OK
What else I want to test:
stm32h7 AMP, nrf53, nrf91, x86_64, some CAN examples, maybe FOC on real
hardware, maybe IEEE802.15.4 on nrf52.
But I don't know how much patience I'll have, it's a completely boring job.
pon., 7 paź 2024 o 01:20 Tomek CEDRO <to...@cedro.info> napisał(a):
Please lets wait for LVGL 9.2.1 release, we have patches ready to get
in sync, this is quite important and demanded feature to land in a
release, and I am sure this will attract new users/developers to the
NuttX community because this will be also announced to the broad LVGL
community :-)
Also we should fix ESP32 bootloader / esptool building unusable
firmware image, this platform is too popular to have this kind of
problem.
If anyone has a free moment to verify in depth the memory leak that
would be also very good to know why that happens - is it ostest
problem or nsh / os problem coming from recent updates?
I know Alin the release process is time consuming and cost you lots of
effort, and additional problems cost you additional work time, we all
much appreciate that!! <3 :-)
Release quality is far more important than quantity, its not only
about bumping numbers. I know from other projects that rushing the
release with known problems behind may be strongly discouraging and
pushes people away from a project. We all want to create a reliable
solution that works out of the box with no surprises right? :-)
Have a good day folks :-)
Tomek
On Sat, Oct 5, 2024 at 11:11 AM Tim Hardisty <timhardist...@gmail.com>
wrote:
FYI you can no longer change LVGL version from Kconfig AFAIK, but you
can force the use of any version you want by checking out the version you
want from the LVGL repo but have to do a manual copy of the LVGL K config
into the NuttX Apps LVGL Kconfig. It’s a bit messy but works!
On 5 Oct 2024, at 10:56, Alin Jerpelea <jerpe...@gmail.com> wrote:
@Tim and Tomek
My bad ! We are using 9.1.0 for 12.7.0 release
I was looking on an older branch . A simple PR will fix it after LVGL
is
release
Best regards
Alin
On Sat, Oct 5, 2024 at 10:52 AM Tim Hardisty <
timhardist...@gmail.com
wrote:
12.7 should be using LVGL 9.1. 9.1 has a specific frame buffer
problem
fixed in 9.2.
I have a custom SAMA5D2 board with an LCD running NuttX master and
LVGL
9.2 and I will try the RC on Monday.
On 5 Oct 2024, at 10:33, Alin Jerpelea <jerpe...@gmail.com>
wrote:
Hi Tomek,
Thanks for testing and providing feedback.
1. There are memory leak problems reported
This is something that we should test on more boards
2. There are LVGL screen problems reported.
NuttX 12.7 uses LVGL 8.3.3 by default but this can be changed in
the
menu
config LVGL_VERSION
string "LVGL Version"
default "8.3.3"
3.I have found a problem on ESP32 with esptool version 4.7
Can be updated locally or we can include it in RC1 and restart the
vote
Considering that we have known bugs in the release that affect some
boards
we have 2 options:
1) we can stop the release and delay it for an unknown amount of
time
until
the bugs are fixed (in some cases for external projects)
2) we can release and specify what are the known bugs
https://cwiki.apache.org/confluence/display/NUTTX/NuttX+12.7.0
I would like to propose the second option
On Sat, Oct 5, 2024 at 2:00 AM Tomek CEDRO <to...@cedro.info>
wrote:
Hello world :-)
There goes -1 from me, sorry :-P :-P
1. There are memory leak problems reported that I tried to confirm
on
STM32F769. Is it ostest problem only or more general memory
management
issue?
before ostest total/used: 483056 / 10112.
after ostest total/used: 483056 / 10200.
2. There are LVGL screen problems reported. This may be solved
with
LVGL 9.2.1 release that should show up within days and its
inclusion
is in the PRs. Or we have display driver to fix. I would also
recommend testing with previous NuttX releases on the same
hardware
to
confirm the possible regression. Gabor is very keen to NuttX and
it
would be really nice to show working demo of LVGL 9.2.1 on 12.7.0
also
to attract newcomers to the project.
https://github.com/apache/nuttx/issues/13825
https://github.com/lvgl/lvgl/pull/6981
3. I have found a problem on ESP32 with esptool version 4.7 that
produces faulty unusable firmware with no warning / error. I
found a
commit that bumps esptool to 4.8 in order to build on CI with new
bootloader from ESP IDF. Otherwise I would not know why it does
not
run. But we should handle this situation with error message and/or
use
older bootloader with 4.7 (?) otherwise people may get discouraged
at
first contact with NuttX.
https://github.com/apache/nuttx/issues/13824
If there is any reason the 12.7.0 really should be released right
now
for some serious reason I can change my vote to 0 not to block the
release. Otherwise we should focus on fixing those 3 discovered
issues
in order to provide high quality no-surprises release :-)
Here returns the subject of distributed testing farms so we could
test
NuttX builds locally on a real hardware that we have at hand. I
started building one. But we also need some scripts that will make
this task easy to setup by everyone interested in a repeatable
way.
This is a separate discussion already taking place on dev@.
I have contacted local STM in Poland and asked if they can provide
free sample develkits to test NuttX on them and demo a reference
design. I have STM32F769I-DISCO but with no LCD so I cannot help
with
LVGL at this point sorry.
Thank you :-)
Tomek
=== BUILD HOST ===
% uname -a
FreeBSD octagon 13.3-RELEASE-p7 FreeBSD 13.3-RELEASE-p7 GENERIC
amd64
% git branch
* (HEAD detached at nuttx-12.7.0-RC0)
% git log --oneline -5
10e44f8915 (HEAD, tag: nuttx-12.7.0-RC0, origin/releases/12.7)
riscv_fork.c: Fix race condition when handling parent integer
registers
2d3c94411b riscv_fork.c: Fix vfork() for kernel mode + SMP
d1fec65e1b riscv: use g_running_task store current regs
57f84aaca8 sensor: Added 6dof motion and gesture related types.
For
details, see:
https://developer.android.com/reference/android/hardware/SensorEvent#values
a4e90b7268
<
https://developer.android.com/reference/android/hardware/SensorEvent#valuesa4e90b7268
inlclude/uorb.h:Update data types to be sorted by macro
definition.
% git branch
* (HEAD detached at nuttx-12.7.0-RC0)
% git log --oneline -5
ac11e3cba (HEAD, tag: nuttx-12.7.0-RC0, origin/releases/12.7)
Adapt
the new header file path of va_format.
b4d794cbd Makefile:complete missing DEPPATH
f81a09428 nshlib: add support for pkill command
767c8ea6c uorb: enable O_CLOEXEC explicit
bae15dfd5 nshlib: enable O_CLOEXEC explicit to avoid potential fd
leak
=== TARGETS ===
1. ESP32 (FAIL).
2. ESP32-C3 (PASS).
3. STM32F769I-DISCO (PASS).
=== ESP32 ===
% gmake clean distclean
% xtensa-esp32-elf-cc --version
xtensa-esp32-elf-cc (crosstool-NG esp-2021r2-patch5) 8.4.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
% /usr/bin/time -h ./tools/configure.sh -B esp32-devkitc:nsh
3,92s real 1,98s user 2,23s sys
% /usr/bin/time -h gmake -j8
/usr/bin/time -h gmake -j8
Create version.h
Cloning Espressif HAL for 3rd Party Platforms
Clone: chip/esp-hal-3rdparty LN: platform/board to
/XXX/nuttx-apps.git/platform/dummy
Register: nsh
Register: sh
Espressif HAL for 3rd Party Platforms:
20690e67695f0a8170a19ec99e2e9a13b620e94d
CPP:
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld->
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld.tmpLD:
nuttx
CP: nuttx.hex
MKIMAGE: ESP32 binary
esptool.py -c esp32 elf2image --ram-only-header -fs 4MB -fm dio
-ff
40m -o nuttx.bin nuttx
usage: esptool [-h] [--chip
{auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3,esp32c3,esp32c6beta,esp32h2beta1,esp32h2beta2,esp32c2,esp32c6}]
[--port PORT] [--baud BAUD] [--before
{default_reset,usb_reset,no_reset,no_reset_no_sync}] [--after
{hard_reset,soft_reset,no_reset,no_reset_stub}] [--no-stub]
[--trace]
[--override-vddsdio [{1.8V,1.9V,OFF}]]
[--connect-attempts CONNECT_ATTEMPTS]
{load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,merge_bin,get_security_info,version}
...
esptool: error: unrecognized arguments: --ram-only-header
gmake: *** [tools/Unix.mk:558: nuttx] Error 2
40,96s real 1m32,23s user 1m1,82s sys
% pip show esptool
Name: esptool
Version: 4.3
Summary: A serial utility to communicate & flash code to Espressif
chips.
Home-page: https://github.com/espressif/esptool/
Author: Fredrik Ahlberg (themadinventor) & Angus Gratton
(projectgus)
& Espressif Systems
Author-email:
License: GPLv2+
Location: /XXX/venv3.9embedded/lib/python3.9/site-packages
Requires: bitstring, cryptography, ecdsa, pyserial, reedsolo
Required-by: #N/A
(venv3.9embedded) pip install -U esptool
(venv3.9embedded) /usr/bin/time -h gmake -j8
CPP:
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld->
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld.tmpLD:
nuttx
CP: nuttx.hex
MKIMAGE: ESP32 binary
esptool.py -c esp32 elf2image --ram-only-header -fs 4MB -fm dio
-ff
40m -o nuttx.bin nuttx
esptool.py v4.8.1
Creating esp32 image...
Image has only RAM segments visible. ROM segments are hidden and
SHA256 digest is not appended.
Merged 1 ELF section
Successfully created esp32 image.
Generated: nuttx.bin
4,19s real 2,96s user 3,44s sys
(venv3.9embedded) /usr/bin/time -h gmake flash
15,26s real 3,03s user 3,24s sys
(venv3.9embedded) cu -l /dev/cuaU0 -s 115200
Stale lock on cuaU0 PID=4016... overriding.
Connected
ts Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3ffb1f40,len:1388
ho 0 tail 12 room 4
load:0x40080000,len:20320
entry 0x40082650
*** Booting NuttX ***
dram: lma 0x00001020 vma 0x3ffb1f40 len 0x56c (1388)
iram: lma 0x00001594 vma 0x40080000 len 0x4f60 (20320)
padd: lma 0x00006508 vma 0x00000000 len 0x9af0 (39664)
imap: lma 0x00010000 vma 0x400e0000 len 0x10d78 (68984)
padd: lma 0x00020d80 vma 0x00000000 len 0xf298 (62104)
dmap: lma 0x00030020 vma 0x3f400020 len 0x2848 (10312)
total segments stored 6
NuttShell (NSH) NuttX-12.7.0
nsh> uname -a
NuttX 12.7.0 10e44f8915-dirty Oct 4 2024 22:22:13 xtensa
esp32-devkitc
nsh> free
total used free maxused maxfree
nused
nfree
Umem: 323568 6424 317144 6800 186696
22
3
I found problem with esptool 4.7.0 (system wide on FreeBSD) no
error
is found, firmware is built and flashed, but no NSH prompt shows
up
:-(
% gmake clean distclean
% /usr/bin/time -h ./tools/configure.sh -B esp32-devkitc:nsh
3,89s real 1,77s user 2,41s sys
% /usr/bin/time -h gmake -j8
Create version.h
Cloning Espressif HAL for 3rd Party Platforms
Clone: chip/esp-hal-3rdparty LN: platform/board to
/XXX/nuttx-apps.git/platform/dummy
Register: nsh
Register: sh
Espressif HAL for 3rd Party Platforms:
20690e67695f0a8170a19ec99e2e9a13b620e94d
CPP:
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld->
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld.tmp
LD: nuttx
CP: nuttx.hex
MKIMAGE: ESP32 binary
esptool.py -c esp32 elf2image --ram-only-header -fs 4MB -fm dio
-ff
40m -o nuttx.bin nuttx
esptool.py v4.7.0
Creating esp32 image...
ROM segments hidden - only RAM segments are visible to the ROM
loader!
Merged 1 ELF section
Successfully created esp32 image.
Generated: nuttx.bin
39,74s real 1m31,54s user 1m2,00s sys
% /usr/bin/time -h gmake flash
CPP:
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld->
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld.tmpLD:
nuttx
CP: nuttx.hex
MKIMAGE: ESP32 binary
esptool.py -c esp32 elf2image --ram-only-header -fs 4MB -fm dio
-ff
40m -o nuttx.bin nuttx
esptool.py v4.7.0
Creating esp32 image...
ROM segments hidden - only RAM segments are visible to the ROM
loader!
Merged 1 ELF section
Successfully created esp32 image.
Generated: nuttx.bin
esptool.py -c esp32 -p /dev/cuaU0 -b 115200 write_flash -fs
detect
-fm dio -ff 40m 0x1000 nuttx.bin
esptool.py v4.7.0
Serial port /dev/cuaU0
Connecting.........
Chip is ESP32-D0WD-V3 (revision v3.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse,
Coding Scheme None
Crystal is 40MHz
MAC: 8c:4b:14:81:0b:ec
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x00001000 to 0x00033fff...
Compressed 206984 bytes to 72429...
Wrote 206984 bytes (72429 compressed) at 0x00001000 in 6.7 seconds
(effective 247.0 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
15,25s real 3,07s user 3,17s sys
% cu -l /dev/cuaU0 -s 115200
Connected
ets Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3ffb1f40,len:1388
ho 0 tail 12 room 4
load:0x40080000,len:20320
entry 0x40082650
*** Booting NuttX ***
dram: lma 0x00001020 vma 0x3ffb1f40 len 0x56c (1388)
iram: lma 0x00001594 vma 0x40080000 len 0x4f60 (20320)
padd: lma 0x00006508 vma 0x00000000 len 0xaaf0 (43760)
imap: lma 0x00011000 vma 0x400e0000 len 0x10d78 (68984)
padd: lma 0x00021d80 vma 0x00000000 len 0xf298 (62104)
dmap: lma 0x00031020 vma 0x3f400020 len 0x2848 (10312)
total segments stored 6
NO NSH HERE DEVICE HANGS <<<
Lets try with the CoreMark:
% gmake clean distclean
% /usr/bin/time -h ./tools/configure.sh -B esp32-devkitc:coremark
3,93s real 1,73s user 2,46s sys
% /usr/bin/time -h gmake -j8
42,46s real 1m35,59s user 1m0,58s sys
% /usr/bin/time -h gmake flash
13,78s real 2,69s user 2,63s sys
% cu -l /dev/cuaU0 -s 115200
Connected
ets Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3ffb30a0,len:2016
load:0x40080000,len:30100
entry 0x40083940
*** Booting NuttX ***
dram: lma 0x00001020 vma 0x3ffb30a0 len 0x7e0 (2016)
iram: lma 0x00001808 vma 0x40080000 len 0x7594 (30100)
padd: lma 0x00008da8 vma 0x00000000 len 0x8250 (33360)
imap: lma 0x00011000 vma 0x400e0000 len 0xde14 (56852)
padd: lma 0x0001ee1c vma 0x00000000 len 0x21fc (8700)
dmap: lma 0x00021020 vma 0x3f400020 len 0x14fc (5372)
total segments stored 6
COREMARK DOES NOT RUN <<<
Looks like default Python switched from 3.9 to 3.11. Reinstalled
py311-esptool system package.
% gmake clean distclean
% /usr/bin/time -h ./tools/configure.sh -B esp32-devkitc:coremark
3,91s real 1,90s user 2,30s sys
% /usr/bin/time -h gmake -j8
Create version.h
Cloning Espressif HAL for 3rd Party Platforms
Clone: chip/esp-hal-3rdparty LN: platform/board to
/XXX/nuttx-apps.git/platform/dummy
Downloading: https://github.com/eembc/coremark/archive/main.zip
% Total % Received % Xferd Average Speed Time Time
Time
Current
Dload Upload Total Spent
Left
Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:--
--:--:--
0
100 475k 0 475k 0 0 621k 0 --:--:-- --:--:--
--:--:--
621k
Unpacking: main.zip -> coremark
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- coremark/posix/core_portme.c
|+++ coremark/posix/core_portme.c
--------------------------
Patching file coremark/posix/core_portme.c using Plan A...
Hunk #1 succeeded at 208.
done
Register: coremark
Espressif HAL for 3rd Party Platforms:
20690e67695f0a8170a19ec99e2e9a13b620e94d
CPP:
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld->
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld.tmpLD:
nuttx
CP: nuttx.hex
MKIMAGE: ESP32 binary
esptool.py -c esp32 elf2image --ram-only-header -fs 4MB -fm dio
-ff
40m -o nuttx.bin nuttx
esptool.py v4.7.0
Creating esp32 image...
ROM segments hidden - only RAM segments are visible to the ROM
loader!
Merged 1 ELF section
Successfully created esp32 image.
Generated: nuttx.bin
39,75s real 1m34,74s user 1m0,86s sys
% /usr/bin/time -h gmake flash
CPP:
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld->
/XXX/nuttx.git/arch/xtensa/src/chip/esp-hal-3rdparty/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld.tmpLD:
nuttx
CP: nuttx.hex
MKIMAGE: ESP32 binary
esptool.py -c esp32 elf2image --ram-only-header -fs 4MB -fm dio
-ff
40m -o nuttx.bin nuttx
esptool.py v4.7.0
Creating esp32 image...
ROM segments hidden - only RAM segments are visible to the ROM
loader!
Merged 1 ELF section
Successfully created esp32 image.
Generated: nuttx.bin
esptool.py -c esp32 -p /dev/cuaU0 -b 115200 write_flash -fs
detect
-fm dio -ff 40m 0x1000 nuttx.bin
esptool.py v4.7.0
Serial port /dev/cuaU0
Connecting..........
Chip is ESP32-D0WD-V3 (revision v3.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse,
Coding Scheme None
Crystal is 40MHz
MAC: 8c:4b:14:81:0b:ec
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x00001000 to 0x00022fff...
Compressed 136508 bytes to 66615...
Wrote 136508 bytes (66615 compressed) at 0x00001000 in 6.0 seconds
(effective 183.4 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
13,63s real 2,50s user 2,81s sys
% cu -l /dev/cuaU0 -s 115200
Connected
ts Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3ffb30a0,len:2016
load:0x40080000,len:30100
entry 0x40083940
*** Booting NuttX ***
dram: lma 0x00001020 vma 0x3ffb30a0 len 0x7e0 (2016)
iram: lma 0x00001808 vma 0x40080000 len 0x7594 (30100)
padd: lma 0x00008da8 vma 0x00000000 len 0x8250 (33360)
imap: lma 0x00011000 vma 0x400e0000 len 0xde14 (56852)
padd: lma 0x0001ee1c vma 0x00000000 len 0x21fc (8700)
dmap: lma 0x00021020 vma 0x3f400020 len 0x14fc (5372)
total segments stored 6
COREMARK DOES NOT RUN HERE TOO <<<
Looking at the history this commit seems to enforce esptool 4.8 to
fix
the CI builds, but our build system for ESP32 does not check or
alert
if previous versions are present thus building faulty firmware
with
no
error!
commit 457f9d3dce45affd5f26da9d6369494709ff2314
Author: Almir Okato <almir.ok...@espressif.com>
Date: Thu Jul 4 11:46:00 2024 +0200
ci: update required esptool version to 4.8.dev4
This esptool version is required when building the
default Simple Boot for Espressif chips.
Signed-off-by: Almir Okato <almir.ok...@espressif.com>
=== ESP32-C3 ===
% riscv32-esp-elf-gcc -v
Using built-in specs.
COLLECT_GCC=riscv32-esp-elf-gcc
COLLECT_LTO_WRAPPER=/XXX/.espressif/tools/riscv32-esp-elf/esp-2021r2-patch5-8.4.0/riscv32-esp-elf/bin/../libexec/gcc/riscv32-esp-elf/8.4.0/lto-wrapper
Target: riscv32-esp-elf
Configured with:
/builds/idf/crosstool-NG/.build/riscv32-esp-elf/src/gcc/configure
--build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu
--target=riscv32-esp-elf
--prefix=/builds/idf/crosstool-NG/builds/riscv32-esp-elf
--exec_prefix=/builds/idf/crosstool-NG/builds/riscv32-esp-elf
--with-local-prefix=/builds/idf/crosstool-NG/builds/riscv32-esp-elf/riscv32-esp-elf
--with-headers=/builds/idf/crosstool-NG/builds/riscv32-esp-elf/riscv32-esp-elf/include
--with-newlib --enable-threads=no --disable-shared
--with-arch=rv32gc
--with-abi=ilp32 --with-pkgversion='crosstool-NG
esp-2021r2-patch5'
--disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections
--disable-libgomp --disable-libmudflap --disable-libmpx
--disable-libssp --disable-libquadmath
--disable-libquadmath-support
--disable-libstdcxx-verbose
--with-gmp=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools
--with-mpfr=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools
--with-mpc=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools
--with-isl=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools
--enable-lto --enable-target-optspace --without-long-double-128
--disable-nls --enable-multiarch --enable-languages=c,c++
--disable-libstdcxx-verbose --enable-threads=posix
--enable-gcov-custom-rtio --enable-libstdcxx-time=yes
Thread model: posix
gcc version 8.4.0 (crosstool-NG esp-2021r2-patch5)
% gmake clean distclean
% /usr/bin/time -h ./tools/configure.sh -B esp32c3-devkit:nsh
4,07s real 1,86s user 2,38s sys
% /usr/bin/time -h gmake -j8 CROSSDEV=riscv32-esp-elf-
Create version.h
LN: platform/board to /XXX/nuttx-apps.git/platform/dummy
Register: nsh
Register: sh
Register: dumpstack
LD: nuttx
CP: nuttx.hex
MKIMAGE: ESP32-C3 binary
esptool.py -c esp32c3 elf2image -fs 4MB -fm dio -ff 40m -o
nuttx.bin
nuttx
esptool.py v4.7.0
Creating esp32c3 image...
Merged 1 ELF section
Successfully created esp32c3 image.
Generated: nuttx.bin (ESP32-C3 compatible)
34,55s real 1m18,50s user 59,23s sys
% /usr/bin/time -h gmake flash CROSSDEV=riscv32-esp-elf-
LD: nuttx
CP: nuttx.hex
MKIMAGE: ESP32-C3 binary
esptool.py -c esp32c3 elf2image -fs 4MB -fm dio -ff 40m -o
nuttx.bin
nuttx
esptool.py v4.7.0
Creating esp32c3 image...
Merged 1 ELF section
Successfully created esp32c3 image.
Generated: nuttx.bin (ESP32-C3 compatible)
esptool.py -c esp32c3 -p /dev/cuaU0 -b 115200 write_flash -fs
4MB
-fm dio -ff 40m 0x10000 nuttx.bin
esptool.py v4.7.0
Serial port /dev/cuaU0
Connecting.........
Chip is ESP32-C3 (QFN32) (revision v0.3)
Features: WiFi, BLE
Crystal is 40MHz
MAC: 7c:df:a1:b1:58:00
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Flash will be erased from 0x00010000 to 0x00035fff...
Compressed 155424 bytes to 69417...
Wrote 155424 bytes (69417 compressed) at 0x00010000 in 6.3 seconds
(effective 198.2 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
22,98s real 6,66s user 11,54s sys
% cu -l /dev/cuaU0 -s 115200
Connected
ESP-ROM:esp32c3-api1-20210207
Build:Feb 7 2021
rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd5820,len:0x16c0
load:0x403cc710,len:0x87c
load:0x403ce710,len:0x2f54
entry 0x403cc710
I (30) boot: ESP-IDF v5.1-dev-3972-g1559b6309f 2nd stage
bootloader
I (30) boot: compile time Mar 15 2023 12:14:06
I (31) boot: chip revision: v0.3
I (35) boot.esp32c3: SPI Speed : 80MHz
I (40) boot.esp32c3: SPI Mode : DIO
I (44) boot.esp32c3: SPI Flash Size : 4MB
I (49) boot: Enabling RNG early entropy source...
I (54) boot: Partition Table:
I (58) boot: ## Label Usage Type ST Offset
Length
I (65) boot: 0 factory factory app 00 00 00010000
00100000
I (73) boot: End of partition table
I (77) esp_image: segment 0: paddr=00010020 vaddr=3c020020
size=039a0h
( 14752) map
I (88) esp_image: segment 1: paddr=000139c8 vaddr=3fc81a70
size=00200h
( 512) load
I (94) esp_image: segment 2: paddr=00013bd0 vaddr=40380000
size=01a64h
( 6756) load
I (103) esp_image: segment 3: paddr=0001563c vaddr=00000000
size=0aabch
(
43708)
I (117) esp_image: segment 4: paddr=00020100 vaddr=42000100
size=15df8h ( 89592) map
I (133) boot: Loaded app from partition at offset 0x10000
I (133) boot: Disabling RNG early entropy source...
NuttShell (NSH) NuttX-12.7.0
nsh> uname -a
NuttX 12.7.0 10e44f8915-dirty Oct 4 2024 23:04:21 risc-v
esp32c3-devkit
nsh> free
total used free maxused maxfree
nused
nfree
Umem: 373820 5364 368456 5720 368456
19
1
% gmake clean distclean CROSSDEV=riscv32-esp-elf-
% /usr/bin/time -h ./tools/configure.sh -B esp32c3-devkit:coremark
3,97s real 2,16s user 2,09s sys
% /usr/bin/time -h gmake -j8 CROSSDEV=riscv32-esp-elf-
32,35s real 1m11,61s user 55,55s sys
% /usr/bin/time -h gmake flash CROSSDEV=riscv32-esp-elf-
20,03s real 5,94s user 11,38s sys
% cu -l /dev/cuaU0 -s 115200
Connected
ESP-ROM:esp32c3-api1-20210207
Build:Feb 7 2021
rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd5820,len:0x16c0
load:0x403cc710,len:0x87c
load:0x403ce710,len:0x2f54
entry 0x403cc710
I (30) boot: ESP-IDF v5.1-dev-3972-g1559b6309f 2nd stage
bootloader
I (30) boot: compile time Mar 15 2023 12:14:06
I (31) boot: chip revision: v0.3
I (35) boot.esp32c3: SPI Speed : 80MHz
I (40) boot.esp32c3: SPI Mode : DIO
I (44) boot.esp32c3: SPI Flash Size : 4MB
I (49) boot: Enabling RNG early entropy source...
I (54) boot: Partition Table:
I (58) boot: ## Label Usage Type ST Offset
Length
I (65) boot: 0 factory factory app 00 00 00010000
00100000
I (73) boot: End of partition table
I (77) esp_image: segment 0: paddr=00010020 vaddr=3c010020
size=00bd0h
( 3024) map
I (86) esp_image: segment 1: paddr=00010bf8 vaddr=3fc81e10
size=0015ch
( 348) load
I (94) esp_image: segment 2: paddr=00010d5c vaddr=40380000
size=01e0ch
( 7692) load
I (104) esp_image: segment 3: paddr=00012b70 vaddr=00000000
size=0d588h
(
54664)
I (119) esp_image: segment 4: paddr=00020100 vaddr=42000100
size=0db60h ( 56160) map
I (128) boot: Loaded app from partition at offset 0x10000
I (128) boot: Disabling RNG early entropy source...
Running CoreMark...
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 1472
Total time (secs): 14.720000
Iterations/Sec : 407.608696
Iterations : 6000
Compiler version : GCC8.4.0
Compiler flags : -O3 -fno-strict-aliasing -fomit-frame-pointer
-ffunction-sections -fdata-sections -nostdlib
Memory location : HEAP
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0xa14c
Correct operation validated. See README.md for run and reporting
rules.
CoreMark 1.0 : 407.608696 / GCC8.4.0 -O3 -fno-strict-aliasing
-fomit-frame-pointer -ffunction-sections -fdata-sections
-nostdlib /
HEAP
% gmake clean distclean CROSSDEV=riscv32-esp-elf-
=== STM32F769I-DISCO ===
This is my first play with NuttX on that board.. I can also verify
flashing instructions :-)
% arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Arm Embedded Toolchain ) 10.3.1 20210824
(release)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
% ./tools/configure.sh -B stm32f769i-disco:nsh
4,14s real 1,98s user 2,46s sys
% /usr/bin/time -h gmake -j8
40,20s real 3m14,54s user 39,11s sys
% /usr/bin/time -h gmake flash
LD: nuttx
CP: nuttx.hex
CP: nuttx.bin
5,02s real 2,51s user 2,82s sys
% openocd -f interface/stlink.cfg -f target/stm32f7x.cfg -c
'program
nuttx.bin 0x08000000; reset run; exit'
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd".
To
override use 'transport select <transport>'.
Info : The selected transport took over low-level target control.
The
results might differ compared to plain JTAG/SWD
Info : clock speed 2000 kHz
Info : STLINK V2J27M15 (API v2) VID:PID 0483:374B
Info : Target voltage: 3.221551
Info : [stm32f7x.cpu] Cortex-M7 r1p0 processor detected
Info : [stm32f7x.cpu] target has 8 breakpoints, 4 watchpoints
Info : starting gdb server for stm32f7x.cpu on 3333
Info : Listening on port 3333 for gdb connections
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
[stm32f7x.cpu] halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0800037c msp: 0x20021928
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
** Programming Started **
Info : device id = 0x10006451
Info : flash size = 2048 KiB
Info : Single Bank 2048 kiB STM32F76x/77x found
** Programming Finished **
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
% cu -l /dev/cuaU0 -s 115200
Connected
$$$08170221053F680F3A7BF125
NuttShell (NSH) NuttX-12.7.0
nsh> uname -a
NuttX 12.7.0 10e44f8915-dirty Oct 4 2024 23:25:59 arm
stm32f769i-disco
nsh> free
nsh: free: command not found
nsh> help
help usage: help [-v] [<cmd>]
. cd exit mkrd sleep
unset
[ cp expr mount source
uptime
? cmp false mv test
usleep
alias dirname help printf time xd
unalias dd hexdump pwd true
basename dmesg kill rm truncate
break echo ls rmdir uname
cat exec mkdir set umount
Builtin Apps:
nsh sh
% gmake clean distclean
% /usr/bin/time -h ./tools/configure.sh -B stm32f769i-disco:netnsh
4,11s real 1,92s user 2,50s sys
% /usr/bin/time -h gmake -j8
53,49s real 4m24,31s user 49,74s sys
% /usr/bin/time -h gmake flash
6,33s real 2,93s user 3,73s sys
% openocd -f interface/stlink.cfg -f target/stm32f7x.cfg -c
'program
nuttx.bin 0x08000000; reset run; exit'
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd".
To
override use 'transport select <transport>'.
Info : The selected transport took over low-level target control.
The
results might differ compared to plain JTAG/SWD
Info : clock speed 2000 kHz
Info : STLINK V2J27M15 (API v2) VID:PID 0483:374B
Info : Target voltage: 3.221551
Info : [stm32f7x.cpu] Cortex-M7 r1p0 processor detected
Info : [stm32f7x.cpu] target has 8 breakpoints, 4 watchpoints
Info : starting gdb server for stm32f7x.cpu on 3333
Info : Listening on port 3333 for gdb connections
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
[stm32f7x.cpu] halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0800037c msp: 0x20021928
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
** Programming Started **
Info : device id = 0x10006451
Info : flash size = 2048 KiB
Info : Single Bank 2048 kiB STM32F76x/77x found
** Programming Finished **
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
% cu -l /dev/cuaU0 -s 115200
Connected
$$$08170221053F680F3A7BF125
NuttShell (NSH) NuttX-12.7.0
No MOTD string provided
nsh>
nsh> uname -a
NuttX stntest 12.7.0 10e44f8915-dirty Oct 4 2024 23:32:10 arm
stm32f769i-disco
nsh> help
help usage: help [-v] [<cmd>]
. cd exec kill printf time
[ cp exit pkill ps true
? cmp expr ls pwd
truncate
alias dirname false mkdir rm
uname
unalias dd fdinfo mkrd rmdir
umount
arp df free mount set
unset
basename dmesg help mv sleep
uptime
break echo hexdump nslookup source
usleep
cat env ifconfig pidof test xd
Builtin Apps:
nsh ping renew sh
nsh> ifconfig
eth0 Link encap:Ethernet HWaddr ea:db:b5:7a:ff:e4 at UP mtu
1486
inet addr:10.0.0.2 DRaddr:10.0.0.1 Mask:255.255.255.0
IPv4 TCP UDP ICMP
Received 0004 0000 0004 0000
Dropped 0000 0000 0000 0000
IPv4 VHL: 0000 Frg: 0000
Checksum 0000 0000 0000 ----
TCP ACK: 0000 SYN: 0000
RST: 0000 0000
Type 0000 ---- ---- 0000
Sent 0000 0000 0000 0000
Rexmit ---- 0000 ---- ----
nsh> ifconfig eth0 dhcp
HANGS, NEED RESET <<<
nsh> renew eth0
HANGS, NEED RESET <<<
nsh> ifconfig eth0 XXX.150
nsh> ifconfig
eth0 Link encap:Ethernet HWaddr ea:db:b5:7a:ff:e4 at UP mtu
1486
inet addr:XXX.150 DRaddr:XXX.1 Mask:255.255.255.0
IPv4 TCP UDP ICMP
Received 0003 0000 0003 0000
Dropped 0000 0000 0000 0000
IPv4 VHL: 0000 Frg: 0000
Checksum 0000 0000 0000 ----
TCP ACK: 0000 SYN: 0000
RST: 0000 0000
Type 0000 ---- ---- 0000
Sent 0000 0000 0000 0000
Rexmit ---- 0000 ---- ----
nsh> ping XXX.1
PING XXX.1 56 bytes of data
56 bytes from XXX.1: icmp_seq=0 time=0.0 ms
...
56 bytes from XXX.1: icmp_seq=9 time=0.0 ms
10 packets transmitted, 10 received, 0% packet loss, time 10100 ms
rtt min/avg/max/mdev = 0.000/0.000/0.000/0.000 ms
Okay we have a quite powerful hardware lets run some benchmarks on
it
:-)
BUG: Looks like SPINLOCK benchmark has broken dependencies.
% gmake -j8
LD: nuttx
CP: nuttx.hex
CP: nuttx.bin
octagon% gmake flash
LD: nuttx
CP: nuttx.hex
CP: nuttx.bin
% cu -l /dev/cuaU0 -s 115200
nsh> uname -a
NuttX stntest 12.7.0 10e44f8915-dirty Oct 4 2024 23:50:23 arm
stm32f769i-disco
nsh> free
total used free maxused maxfree
nused
nfree
Umem: 474288 10144 464144 13192 326328
30
5
nsh> help
help usage: help [-v] [<cmd>]
. cd exec kill printf time
[ cp exit pkill ps true
? cmp expr ls pwd
truncate
alias dirname false mkdir rm
uname
unalias dd fdinfo mkrd rmdir
umount
arp df free mount set
unset
basename dmesg help mv sleep
uptime
break echo hexdump nslookup source
usleep
cat env ifconfig pidof test xd
Builtin Apps:
coremark pi_css5 ramspeed
dhrystone ping renew
nsh radix2_big_64k sh
nsh> coremark
Running CoreMark...
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 1772
Total time (secs): 17.720000
Iterations/Sec : 620.767494
Iterations : 11000
Compiler version : GCC10.3.1 20210824 (release)
Compiler flags : -Os -fno-strict-aliasing -fomit-frame-pointer
-fno-common -Wall -Wshadow -Wundef -ffunction-sections
-fdata-sections
Memory location : HEAP
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0x33ff
Correct operation validated. See README.md for run and reporting
rules.
CoreMark 1.0 : 620.767494 / GCC10.3.1 20210824 (release) -Os
-fno-strict-aliasing -fomit-frame-pointer -fno-common -Wall
-Wshadow
-Wundef -ffunction-sections -fdata-sections / HEAP
nsh> dhrystone
Dhrystone Benchmark, Version C, Version 2.2
Program compiled without 'register' attribute
Using MSC clock(), HZ=100
Trying 50000 runs through Dhrystone:
Measured time too small to obtain meaningful results
Trying 500000 runs through Dhrystone:
Measured time too small to obtain meaningful results
Trying 5000000 runs through Dhrystone:
Final values of the variables used in the benchmark:
Int_Glob: 5
should be: 5
Bool_Glob: 1
should be: 1
Ch_1_Glob: A
should be: A
Ch_2_Glob: B
should be: B
Arr_1_Glob[8]: 7
should be: 7
Arr_2_Glob[8][7]: 5550010
should be: Number_Of_Runs + 10
Ptr_Glob->
Ptr_Comp: 537385352
should be: (implementation-dependent)
Discr: 0
should be: 0
Enum_Comp: 2
should be: 2
Int_Comp: 17
should be: 17
Str_Comp: DHRYSTONE PROGRAM, SOME STRING
should be: DHRYSTONE PROGRAM, SOME STRING
Next_Ptr_Glob->
Ptr_Comp: 537385352
should be: (implementation-dependent), same as above
Discr: 0
should be: 0
Enum_Comp: 1
should be: 1
Int_Comp: 18
should be: 18
Str_Comp: DHRYSTONE PROGRAM, SOME STRING
should be: DHRYSTONE PROGRAM, SOME STRING
Int_1_Loc: 5
should be: 5
Int_2_Loc: 13
should be: 13
Int_3_Loc: 7
should be: 7
Enum_Loc: 1
should be: 1
Str_1_Loc: DHRYSTONE PROGRAM, 1'ST STRING
should be: DHRYSTONE PROGRAM, 1'ST STRING
Str_2_Loc: DHRYSTONE PROGRAM, 2'ND STRING
should be: DHRYSTONE PROGRAM, 2'ND STRING
Microseconds for one run through Dhrystone: 2.3
Dhrystones per Second: 441306
nsh> pi_css5
Calculation of PI using FFT and AGM, ver. LG1.1.2-MP1.5.2a.memsave
Usage: pi_css5 digits
Number of digits of pi to calculate?
1000000000
initializing...
Allocation Failure!
nsh>
nsh> pi_css5
Calculation of PI using FFT and AGM, ver. LG1.1.2-MP1.5.2a.memsave
Usage: pi_css5 digits
Number of digits of pi to calculate?
1000000
initializing...
Allocation Failure!
nsh> pi_css5
Calculation of PI using FFT and AGM, ver. LG1.1.2-MP1.5.2a.memsave
Usage: pi_css5 digits
Number of digits of pi to calculate?
65535
initializing...
Allocation Failure!
nsh> pi_css5
Calculation of PI using FFT and AGM, ver. LG1.1.2-MP1.5.2a.memsave
Usage: pi_css5 digits
Number of digits of pi to calculate?
12345
initializing...
Allocation Failure!
nsh> pi_css5
Calculation of PI using FFT and AGM, ver. LG1.1.2-MP1.5.2a.memsave
Usage: pi_css5 digits
Number of digits of pi to calculate?
123
initializing...
nfft= 32
radi_assert: Current Version: NuttX stntest 12.7.0
10e44f8915-dirty
Oct 4 2024 23:50:23 arm
_assert: Assertion failed panic: at file: :0 task: 0x801bda1
up_dump_register: R0: 00000004 R1: 00000000 R2: 00000000 R3:
00000000
up_dump_register: R4: 00000004 R5: 00000033 R6: 2007d9f8 FP:
2007dae8
up_dump_register: R8: 2007da48 SB: 2007da98 SL: 2007f0e0 R11:
2007f0e1
up_dump_register: IP: 2007db58 SP: 2007ef10 LR: 080089d9 PC:
080088f8
up_dump_register: xPSR: 01000000 PRIMASK: 00000000 CONTROL:
00000000
up_dump_register: EXC_RETURN: ffffffe9
dump_stack: User Stack:
dump_stack: base: 0x2007e858
dump_stack: size: 00002016
dump_stack: sp: 0x2007ef10
stack_dump: 0x2007eef0: 00000000 3fe00000 00000000 00000000
00000000
00000000 80000010 00000000
stack_dump: 0x2007ef10: 00000004 080089d9 00000000 08029735
00000000
00000000 00000000 0801c359
stack_dump: 0x2007ef30: 2007d9f8 2007f040 00000020 2007f0e0
2007f1f8
2007f310 2007f040 2007f1f8
stack_dump: 0x2007ef50: 00000000 00000000 2007f090 2007f310
00000001
0000000b 00000020 32316970
stack_dump: 0x2007ef70: 78742e38 00000074 00000000 00000000
00000000
00000000 00000004 ffffffe9
stack_dump: 0x2007ef90: 00000000 00000000 00000000 00000000
00000000
00000000 00000000 00000000
stack_dump: 0x2007efb0: 00000000 00000000 00000000 00000000
00000000
00000000 00000000 00000000
stack_dump: 0x2007efd0: 00000000 00000000 00000000 00000000
00000000
00000000 00000000 00000000
stack_dump: 0x2007eff0: 00000000 0801bda1 2007d588 00000000
00000000
00000000 00000000 00000000
stack_dump: 0x2007f010: 00000000 08008b1d 2007e848 00000001
2007e848
08005cd9 00000000 00000000
stack_dump: 0x2007f030: 00000000 00000000 00000000 00000000
00000000
00000000 00000000 00000000
dump_tasks: PID GROUP PRI POLICY TYPE NPX STATE EVENT
SIGMASK STACKBASE STACKSIZE COMMAND
dump_task: 0 0 0 FIFO Kthread - Ready
0000000000000000 0x2002bf5c 1008 <noname>
dump_task: 1 0 224 RR Kthread - Waiting Semaphore
0000000000000000 0x2007c238 1984 <noname> 0x200201a4
0x200201c8
dump_task: 2 0 100 RR Kthread - Waiting Semaphore
0000000000000000 0x2007cae8 1984 <noname> 0x200201dc
0x20020200
dump_task: 4 4 100 RR Task - Waiting Semaphore
0000000000000000 0x2007e058 2008 <noname>
dump_task: 12 12 100 RR Task - Running
0000000000000000 0x2007e858 2016 <noname>
heh =)
nsh> pi_css5
Calculation of PI using FFT and AGM, ver. LG1.1.2-MP1.5.2a.memsave
Usage: pi_css5 digits
Number of digits of pi to calculate?
4
initi_assert: Current Version: NuttX stntest 12.7.0
10e44f8915-dirty
Oct 4 2024 23:50:23 arm
_assert: Assertion failed panic: at file: :0 task: 0x801bda1
up_dump_register: R0: 00000004 R1: 00000000 R2: 00000000 R3:
00000000
up_dump_register: R4: 00000004 R5: 00000033 R6: 2007d968 FP:
2007d9b0
up_dump_register: R8: 2007d980 SB: 2007d998 SL: 2007d9f8 R11:
2007d9f9
up_dump_register: IP: 2007db58 SP: 2007ef10 LR: 080089d9 PC:
080088f8
up_dump_register: xPSR: 01000000 PRIMASK: 00000000 CONTROL:
00000000
up_dump_register: EXC_RETURN: ffffffe9
dump_stack: User Stack:
dump_stack: base: 0x2007e858
dump_stack: size: 00002016
dump_stack: sp: 0x2007ef10
stack_dump: 0x2007eef0: 00000000 3fe00000 00000000 00000000
00000000
00000000 80000010 00000000
stack_dump: 0x2007ef10: 00000004 080089d9 00000000 08029735
00000000
00000000 00000000 0801c359
stack_dump: 0x2007ef30: 2007d968 2007d9c8 00000002 2007d9f8
2007da20
2007da48 2007d9c8 2007da20
stack_dump: 0x2007ef50: 00000000 00000000 2007d9e0 2007da48
00000001
00000003 00000002 2e386970
stack_dump: 0x2007ef70: 00747874 00000000 00000000 00000000
00000000
00000000 00000004 ffffffe9
stack_dump: 0x2007ef90: 00000000 00000000 00000000 00000000
00000000
00000000 00000000 00000000
stack_dump: 0x2007efb0: 00000000 00000000 00000000 00000000
00000000
00000000 00000000 00000000
stack_dump: 0x2007efd0: 00000000 00000000 00000000 00000000
00000000
00000000 00000000 00000000
stack_dump: 0x2007eff0: 00000000 0801bda1 2007d588 00000000
00000000
00000000 00000000 00000000
stack_dump: 0x2007f010: 00000000 08008b1d 2007e848 00000001
2007e848
08005cd9 00000000 00000000
stack_dump: 0x2007f030: 00000000 00000000 00000000 00000000
00000000
00000000 00000000 00000000
dump_tasks: PID GROUP PRI POLICY TYPE NPX STATE EVENT
SIGMASK STACKBASE STACKSIZE COMMAND
dump_task: 0 0 0 FIFO Kthread - Ready
0000000000000000 0x2002bf5c 1008 <noname>
dump_task: 1 0 224 RR Kthread - Waiting Semaphore
0000000000000000 0x2007c238 1984 <noname> 0x200201a4
0x200201c8
dump_task: 2 0 100 RR Kthread - Waiting Semaphore
0000000000000000 0x2007cae8 1984 <noname> 0x200201dc
0x20020200
dump_task: 4 4 100 RR Task - Waiting Semaphore
0000000000000000 0x2007e058 2008 <noname>
dump_task: 5 5 100 RR Task - Running
0000000000000000 0x2007e858 2016 <noname>
BROKEN :-)
nsh> radix2_big_64k
Malloc Failed from coremark-pro/mith/src/th_rand.c:241!
BROKEN :-)
% gmake clean distclean
% ./tools/configure.sh -B stm32f769i-disco:nsh
gmake menuconfig -> add apps / testing / ostest
gmake -j8
gmake flash
% openocd -f interface/stlink.cfg -f target/stm32f7x.cfg -c
'program
nuttx.bin 0x08000000; reset run; exit'
% cu -l /dev/cuaU0 -s 115200
nsh> uname -a
NuttX 12.7.0 10e44f8915-dirty Oct 5 2024 00:02:28 arm
stm32f769i-disco
nsh> ostest
(..)
user_main: vfork() test
vfork_test: Child 69 ran successfully
Final memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 7dcbc 7dcbc
ordblks 3 6
mxordblk 59ad0 59ad0
uordblks 4244 69a4
fordblks 79a78 77318
user_main: Exiting
ostest_main: Exiting with status 0
Looks like memory usage before and after seems to differ that
confirms
the memory leak?
I wanted to use "free" command but it is not built although it is
not
disabled in the config:
nsh> free
nsh: free: command not found
% grep CONFIG_NSH_DISABLE_FREE .config
# CONFIG_NSH_DISABLE_FREE is not set
Lets try again with netsh configuration that had free available
and
add
ostest:
% gmake clean distclean
% usr/bin/time -h ./tools/configure.sh -B stm32f769i-disco:netnsh
4,24s real 1,95s user 2,60s sys
% gmake menuconfig <- enable ostest
% grep OSTEST .config
CONFIG_TESTING_OSTEST=y
CONFIG_TESTING_OSTEST_LOOPS=1
CONFIG_TESTING_OSTEST_STACKSIZE=8192
CONFIG_TESTING_OSTEST_NBARRIER_THREADS=8
CONFIG_TESTING_OSTEST_RR_RANGE=10000
CONFIG_TESTING_OSTEST_RR_RUNS=10
# CONFIG_TESTING_OSTEST_FPUTESTDISABLE is not set
CONFIG_TESTING_OSTEST_FPULOOPS=16
CONFIG_TESTING_OSTEST_FPUMSDELAY=750
CONFIG_TESTING_OSTEST_FPUPRIORITY=100
CONFIG_TESTING_OSTEST_FPUSTACKSIZE=2048
CONFIG_TESTING_OSTEST_WAITRESULT=y
% /usr/bin/time -h gmake -j8
54,54s real 4m31,11s user 50,04s sys
% gmake flash
LD: nuttx
CP: nuttx.hex
CP: nuttx.bin
% openocd -f interface/stlink.cfg -f target/stm32f7x.cfg -c
'program
nuttx.bin 0x08000000; reset run; exit'
% cu -l /dev/cuaU0 -s 115200
Connected
$$$08170221053F680F3A7BF125
nsh> uname -a
NuttX stntest 12.7.0 10e44f8915-dirty Oct 5 2024 00:43:15 arm
stm32f769i-disco
nsh> free
total used free maxused maxfree
nused
nfree
Umem: 483056 10112 472944 11192 335096
29
4
nsh> uname -a
NuttX stntest 12.7.0 10e44f8915-dirty Oct 5 2024 00:43:15 arm
stm32f769i-disco
nsh> free
total used free maxused maxfree
nused
nfree
Umem: 483056 10112 472944 11192 335096
29
4
nsh> ostest
(..)
user_main: vfork() test
vfork_test: Child 140 ran successfully
Final memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 75ef0 75ef0
ordblks 4 6
mxordblk 51cf8 51cf8
uordblks 5500 7c68
fordblks 709f0 6e288
user_main: Exiting
ostest_main: Exiting with status 0
nsh> free
total used free maxused maxfree
nused
nfree
Umem: 483056 10200 472856 49640 335096
31
5
nsh> ostest
(..)
user_main: vfork() test
vfork_test: Child 280 ran successfully
Final memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 75ef0 75ef0
ordblks 4 6
mxordblk 51cf8 51cf8
uordblks 5560 7c68
fordblks 70990 6e288
user_main: Exiting
ostest_main: Exiting with status 0
nsh> free
total used free maxused maxfree
nused
nfree
Umem: 483056 10200 472856 49728 335096
31
5
--
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
--
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info