ptype of ((int32_t)0 * (uint32_t)0) is (unsigned). "i" counter was
declared unsigned to not make comparision with "unsigned char" in for loop.
This resulted in calculation in average to be implicitly casted to unsigned,
and when negative number was added to it, it turned into huge value.
Change type of "i" to signed, and just cast (unsigned char) to (int)
to fix this.
Signed-off-by: Michał Łyszczek <michal.lyszczek@bofc.pl>
This is a wrapper for apps/Make.defs or nuttx/Make.defs
Since apps/Make.defs include nuttx/Make.defs, we check if it the
apps dir is available and include it, otherwise we just include
nuttx/Make.defs and keep the old behavior.
This allows EXTRA_LIBS and some other system-wide tweaks be
applied in any apps and make it work with the nuttx Makefiles.
cibuild.sh -> modify scripts
platforms -> new folder +scripts
add header
tools/ci/platforms: Set the execute permissions on the updated files.
tools/ci/platforms/linux.sh: fix header
Corrected Apache Foundation copyright header.
tools/ci: Modify cibuild.sh to adapt to new platforms.
cibuild.sh -> modify scripts
platforms -> new folder +scripts
add header
tools/ci/platforms: Set the execute permissions on the updated files.
tools/ci: Modify cibuild.sh to adapt to new platforms.
cibuild.sh -> modify scripts
platforms -> new folder +scripts
add header
tools/ci/platforms: Set the execute permissions on the updated files.
tools/ci: Kept the common code in cibuild.sh.
Kept the common code in cibuild.sh.
tools/ci: Storing all Environment Variables in env.sh script.
Added in cibuild.sh this command "source "${CIWORKSPACE}"/tools/env.sh" to activate installed tools.
tools/ci: shared the tools path in cibuild.sh
Added in cibuild.sh enviroment variable "NUTTXTOOLS" for installed tools.
Removed bashisms from scripts darwin.sh, linux.sh, msys2.sh and ubuntu.sh.
tools/ci: Fixed build problems with macOS
Fix Error: /Users/runner/work/nuttx/nuttx/sources/tools/bloaty-src/build is not a directory
cpu0 thread0: cpu1:
sched_yield()
nxsched_set_priority()
nxsched_running_setpriority()
nxsched_reprioritize_rtr()
nxsched_add_readytorun()
up_cpu_pause()
IRQ enter
arm64_pause_handler()
enter_critical_section() begin
up_cpu_paused() pick thread0
arm64_restorestate() set thread0 tcb->xcp.regs to CURRENT_REGS
up_switch_context()
thread0 -> thread1
arm64_syscall()
case SYS_switch_context
change thread0 tcb->xcp.regs
restore_critical_section()
enter_critical_section() done
leave_critical_section()
IRQ leave with restore CURRENT_REGS
ERROR !!!
Reason:
As descript above, cpu0 swith task: thread0 -> thread1, and the
syscall() execute slowly, this time cpu1 pick thread0 to run at
up_cpu_paused(). Then cpu0 syscall execute, cpu1 IRQ leave error.
Resolve:
Move arm64_restorestate() after enter_critical_section() done
This is a continued fix with:
https://github.com/apache/nuttx/pull/6833
Signed-off-by: ligd <liguiding1@xiaomi.com>
the check isn't really enabled and enforce before
due to a mass of false alarm, but recently it break
ci frequently, so it's better to remove it now.
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Use private naming to avoid conflicts with user applications
In file included from libuv/src/unix/internal.h:25,
from libuv/src/unix/udp.c:23:
libuv/src/uv-common.h:57: warning: "container_of" redefined
57 | #define container_of(ptr, type, member) \
|
In file included from nuttx/include/nuttx/list.h:47,
from nuttx/include/nuttx/tls.h:40,
from nuttx/include/nuttx/sched.h:48,
from nuttx/include/nuttx/arch.h:87,
from nuttx/include/nuttx/userspace.h:35,
from nuttx/include/nuttx/mm/mm.h:30,
from nuttx/include/nuttx/kmalloc.h:34,
from nuttx/include/nuttx/lib/lib.h:31,
from nuttx/include/stdio.h:35,
from apps/system/libuv/libuv/include/uv.h:59,
from libuv/src/unix/udp.c:22:
nuttx/include/nuttx/nuttx.h:48: note: this is the location of the previous definition
48 | #define container_of(ptr, type, member) \
|
Signed-off-by: chao an <anchao@lixiang.com>
Requirement of nuttx as a minimum scheduler os.
Test build on Cortex-R52, fvp-armv8r-aarch32/nsh
Disable CONFIG_DEBUG_ASSERTIONS and without this change:
$ size nuttx
text data bss dec hex filename
19484 104 1092 20680 50c8 nuttx
Disable CONFIG_DEBUG_ASSERTIONS and with this change:
$ size nuttx
text data bss dec hex filename
17604 80 848 18532 4864 nuttx
Signed-off-by: chao an <anchao@lixiang.com>
include/nuttx/tls.h:52:4: warning: #warning CONFIG_TLS_NELEM is not defined [-Wcpp]
52 | # warning CONFIG_TLS_NELEM is not defined
| ^~~~~~~
In file included from include/nuttx/sched.h:48,
from include/nuttx/arch.h:87,
from include/nuttx/userspace.h:35,
from include/nuttx/mm/mm.h:30,
from include/nuttx/kmalloc.h:34,
from sim_bringup.c:33:
include/nuttx/tls.h:52:4: warning: #warning CONFIG_TLS_NELEM is not defined [-Wcpp]
52 | # warning CONFIG_TLS_NELEM is not defined
| ^~~~~~~
Signed-off-by: chao an <anchao@lixiang.com>
change optimization to -Os for CONFIG_DEBUG_FULLOPT to be compatible with other architectures
and add an option to select CONFIG_DEBUG_CUSTOMOPT
Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
enable FPU and implement up_fpucmp to pass ostest
With aggressive optimization enabled (-O2/-O3), ostest FPU test will fail.
This is because the compiler will generate additional vector
instructions between subsequent up_fpucmp() calls (loop vectorization
somewhere in usleep() call), which will consequently overwrite
the expected FPU context (XMM registers).
Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
aggresive optimisation can replace occurrences of sinl() and cosl() with
sincosl(), but sincosl() is missing in newlib which causes error. So let's
use custom implementation here.
Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
1. Fix issue of system blocking due to disable dcache.
2. Support Ext-SRAM-Cache mmu mapping in SMP mode.
Signed-off-by: chenwen@espressif.com <chenwen@espressif.com>
Currently at runtime it is hard to know the exact build config of
the current NuttX instance. Thus it is inconvenient when there are
multiple configs for the same board. This patch attempts to solve
the issue by adding build config to /proc/version.
Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>