Commit graph

74 commits

Author SHA1 Message Date
hanzhijian
9f69e1c0e9 Documentation: fill in pass1 directory description in organization.rst
Replace the TODO placeholder with a description of the two-pass build
mechanism (CONFIG_BUILD_2PASS).  pass1/ supports two-pass builds where
application-generated source files are compiled and linked into the
kernel address space during pass 2, primarily for kernel symbol table
generation required by loadable kernel modules.

Signed-off-by: hanzhijian <hanzhijian@zepp.com>
Author: hanzhijian <hanzhijian@zepp.com>
2026-07-06 10:18:42 -03:00
raiden00pl
07c4bf0048 !arch/stm32: move stm32l1 and finalize the directory split
Move the stm32l1 sources, headers and boards into arch/arm/src/stm32l1,
arch/arm/include/stm32l1 and boards/arm/stm32l1, then finalize the split:
source each split family directly in arch/arm/Kconfig and boards/Kconfig and
remove the now-empty combined arch/arm/src/stm32 and boards/arm/stm32 trees.

BREAKING CHANGE: The legacy STM32 architecture and board paths were split into
stm32f1, stm32l1, stm32f2, stm32f3, stm32f4, and stm32g4 directories.
Out-of-tree boards must move from stm32 to the matching split family.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-06-24 14:54:44 -03:00
Lup Yuen Lee
c2de12153f Dockerfile & Docs: Change bitbucket.org/nuttx/tools to github.com
The repo bitbucket.org/nuttx/tools is no longer available. This PR changes it to to github.com/patacongo/tools, as explained in https://github.com/apache/nuttx/pull/18890. This PR updates the URL in Dockerfile and Docs.

Signed-off-by: Lup Yuen Lee <luppy@appkaki.com>
2026-05-25 08:34:45 -03:00
Piyush Patle
0dccc8ba21 include/debug.h: Move to include/nuttx/debug.h
debug.h is a NuttX-specific, non-POSIX header. Placing it in the
top-level include/ directory creates naming conflicts with external
projects that define their own debug.h.
This commit moves the canonical header to include/nuttx/debug.h,
following the NuttX convention for non-POSIX/non-standard headers,
and updates all in-tree references.

A backward-compatibility shim is left at include/debug.h that
emits a deprecation #warning and re-includes <nuttx/debug.h>,
allowing out-of-tree code to continue building while migrating.

Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
2026-04-07 07:50:06 -03:00
makejian
60b1cef84b Kconfig: Add ALLOW_CUSTOM_PERMISSIVE_COMPONENTS option
Add a new license configuration option for components that have
custom permissive licenses which are not covered by the standard
license options (BSD, MIT, GPL, etc.).

This option allows projects to explicitly opt-in to using components
with custom permissive licenses that allow free use, modification,
and distribution but may have specific attribution or notice
requirements.

Also update the License Setup documentation section to include
this new option.

Signed-off-by: makejian <makejian@xiaomi.com>
2026-01-20 02:15:19 +08:00
Alan Carvalho de Assis
e745b8ec7f Doc: Remove MOTD string from nsh shell on simulator
Signed-off-by: Alan C. Assis <acassis@gmail.com>
2025-07-30 12:01:56 +08:00
Alan Carvalho de Assis
e9cb6907c8 doc: Fix quickstart since the login is not required and quit exists
Signed-off-by: Alan C. Assis <acassis@gmail.com>
2025-07-30 12:01:56 +08:00
Neo Xu
504c3dddf0 doc: update GDB python plugin path
The NuttX GDB python plugin has been moved to tools/pynuttx/nxgdb.
Update all documentation including this path.

Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2025-02-18 11:16:17 -03:00
trns1997
7d2d38f899 install kconfiglib using apt repo 2024-12-02 13:43:29 +08:00
Neo Xu
224a8f4b28 Documentation: fix nuttxgdb related commands
Now we should load tools/gdb/gdbinit.py script

Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2024-11-25 18:43:23 -03:00
wangmingrong1
b5c5e4b850 gdb plugin: Encapsulate the gdb native command gcore as nxgcore
Modify elf with nxgcore and call gcore:
(gdb) nxgcore --help
usage: [-h] [-o OUTPUT] [-t OBJCOPY] [-r MEMRANGE]

options:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        Gcore output file
  -t OBJCOPY, --objcopy OBJCOPY
                        Select the appropriate architecture for the objcopy
                        tool
  -r MEMRANGE, --memrange MEMRANGE

examples:
	(gdb) nxgcore -t arm-none-eabi-objcopy -r 0x40200000,0x48000000,0x07

Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2024-09-20 22:07:29 +08:00
xuxin19
1d3dd328dd modify BUILD_LOADABLE to MODULES which backwards-compatible Kernel
maintains the same semantics as Kernel’s module build
and compatible with Kconfiglib implementation.

The problem of kconfiglib not being able to use tri-states is this:
linux is here torvalds/linux@6dd85ff
The module option is extracted from one of the triate three states into a MODULE keyword.
Kconfiglib supports the default implementation of module to be MODULE for compatibility with the linux kernel, and triate degenerates into bool two states
Refer to this code: 061e71f7d7/kconfiglib.py (L4274-L4284)

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-09-19 08:32:03 +08:00
Alan Carvalho de Assis
df612b9e10 doc: Fix documentation typo and missing git package 2024-08-19 13:53:15 +08:00
Yanfeng Liu
70c5c94507 docs/cmake: add out-of-tree usage
This adds out-of-tree usage guide of CMake for FLAT, PROTECTED and KERNEL
configs so that more kernel developers can enjoy cmake for their daily
work.

Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>
2024-07-17 17:19:41 +08:00
Tiago Medicci Serrano
ae9ef972c0 paging: Rename existing CONFIG_PAGING to CONFIG_LEGACY_PAGING
Current `CONFIG_PAGING` refers to an experimental implementation
to enable embedded MCUs with some limited RAM space to execute
large programs from some non-random access media.

On-demand paging should be implemented for the kernel mode with
address environment implementation enabled.
2024-03-05 09:45:49 +08:00
Junbo Zheng
850be17142 Documentation: correct CMakeList.txt to CMakeLists.txt
Signed-off-by: Junbo Zheng <zhengjunbo1@xiaomi.com>
2024-03-01 20:15:10 +08:00
KMSorSMS
410ac71b70 fix typo error in quickstart compiling_cmake
"
I used

cd nuttx
cmake -B build -DBOARD_CONFIG=stm32f401rc-rs485:nsh -GNinja

to config
and when following the instruction in this official websites I found the
command to use cmake to build the target is wrong.
which is "cmake --build build -t menuconfig" also wrong the output dir
"build/nuttx".
and by the way, In my practice I find the bin file and elf file is not
in build/nuttx but in build/. So I changed these. But I'm not 100% sure
that my fix is right as I'm a beginner, but what I fix works fine in my
computer. This is my first PR to the public doc. My fix maybe totally
wrong as I am not get into the nuttx, just following the instruction and
encountered some mistakes.
thx for reviewing
"
2024-02-15 17:48:28 +08:00
raiden00pl
649cd00c8b Documentation: review quickstart/install.rst 2023-10-30 20:29:54 +08:00
raiden00pl
b7f94fbf22 Documentation: various cosmetic changes 2023-10-30 20:29:54 +08:00
raiden00pl
64be5c6958 Documentation: update organization.rst 2023-10-30 20:29:54 +08:00
Alan Carvalho de Assis
468e9fcde5 Documentation: Fix typos
I used codespell to find typos in the documentation.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2023-10-29 10:35:51 +08:00
raiden00pl
770df6d820 Documentation: remove readme references 2023-10-27 13:21:40 -03:00
raiden00pl
408441bf15 Documentation: initialize cmake doc 2023-10-27 13:21:40 -03:00
Christian Catchpole
495253385f improve macOS install docs 2023-10-17 17:53:42 +08:00
Tiago Medicci Serrano
57bf9d44d2 Documentation: Fix search path for defconfig include list
Add `*` to make it being understood as a list.
2023-10-05 19:18:05 -04:00
Alin Jerpelea
244293ce5f Documentation: update gcc download location
Update GCC 10.3 download link to match the curent location

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2023-10-02 17:17:05 +08:00
Alin Jerpelea
4e93f93f30 Documentation: update gcc compiler to 10.3
Update the gcc compiler to 10.3-2021.10 to be able to compile the latest NuttX version

Fix for error:
arm-none-eabi-g++: error: unrecognized command line option '-std=gnu++20';
did you mean '-std=gnu++2a'?

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2023-09-28 16:14:50 +08:00
yinshengkai
a0cc455922 tools: add support for merge_config
Usage example:
./tools/merge_config.py -o defconfig .config1 .config2

Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-09-14 14:33:30 +08:00
yinshengkai
d0ca0d422e tools: defconfig supports the include command
We support search directory structure as follows:
Current directory
stm32/configs/common
stm32/common/configs

Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-09-14 14:33:30 +08:00
chao an
9f10ddc9b0 nuttx/build: Restore ARLOCK to improve compile speed in incremental case
To solve the issue of carrying object files from previous builds,
Matias changed the archiving process to re-archive libapps.a on every compilation,
if libapps.a carries more object files, incremental compilation will waste too
many time in re-archiving, compared with the previous implement, this is a degradation
of the build system.  Referring to mature engineering projects such as cmake, if there
is configuration or source file changed, the best solution should be to reconfigure
the environment.

Revert this PR to ensure the compilation speed during incremental compilation.

|  commit 34b34e2d45 (tag: nuttx-20200914-172150)
|  Author: Matias N <matias@protobits.dev>
|  Date:   Fri Sep 11 22:31:38 2020 -0300
|
|      Fix: ensure archive files do not carry object files from prior builds
|
|      In some cases, when NuttX configuration changes and this makes the
|      object list used to build one of the .a libraries change as well,
|      since the command used to build it is "ar crs" and this simply appends
|      the list of object files, the library could still include object
|      files from prior builds. This commit modifies the ARCHIVE macro to
|      erase the .a file if it already exists.
|
|      Since in some cases this behavior was actually expected (object
|      files from a subdirectory were appended to a library created one
|      level above) I added a ARCHIVE_ADD which works as ARCHIVE did.
|
|      This change should greatly improve behavior of building after
|      configuration changes.

Testing:

sim:nsh
-------------------------------
|   Patched    |  Current
-------------------------------
|$ time make   |  $ time make
|real 0m1.270s |  real 0m1.728s
|user 0m0.971s |  user 0m1.276s
|sys  0m0.363s |  sys  0m0.530s
-------------------------------

Private project (20+ 3rd library needs archive to libapps.a)
-------------------------------
|   Patched     |  Current
-------------------------------
|$ time make    |  $ time make
|real 0m21.181s |  real 0m39.721s
|user 0m14.638s |  user 0m24.837s
|sys  0m6.919s  |  sys  0m14.394s
-------------------------------

Signed-off-by: chao an <anchao@xiaomi.com>
2023-09-12 21:55:23 +08:00
simbit18
d7359bf076 Documentation/quickstart/configuring.rst: Add credentials for NSH session
Add credentials on code blocks  Build & run
2023-09-03 19:03:54 -03:00
simbit18
612b8320bb Documentation/quickstart/install.rst: update fix incorrect version
10.1.0 -> 12.2.1
2023-08-26 00:46:56 +08:00
Tomáš Pilný
9ce8d4eca2 Changed "based from" to "based on" in compiling.rst 2023-08-22 23:35:29 +08:00
Tomáš Pilný
d311bce3c4 Fixed mistakes in install.rst 2023-08-22 23:35:29 +08:00
Tomáš Pilný
e13d3220c2 Split commands for KConfig install + changed pip install to code-tab 2023-08-22 23:35:29 +08:00
Tomáš Pilný
ac4c627848 Added Fedora to install.rst 2023-08-22 23:35:29 +08:00
Tiago Medicci Serrano
6055b64802 Documentation: Fix command to load nuttx/tools/gdb/__init__.py
According to `Documentation/guides/gdbwithpython.rst` and GDB's
documentation, the `-ix` option "Execute commands from file `file`
before loading the inferior (but after loading gdbinit files)",
being the correct way of loading it to GDB.
2023-08-20 22:53:08 +08:00
Xiang Xiao
f3269a6caa sched: Rename DEBUG_TCBINFO to ARCH_HAVE_TCBINFO
and select if the arch support to define g_tcbinfo variable

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-07-26 09:33:38 +02:00
anjiahao
4745ab64c3 Documentation:add gdb python script documentation
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2023-07-24 08:05:58 -03:00
Brennan Ashton
14d311ca0a docs: Add copy button for code blocks 2023-05-20 12:58:32 +08:00
Hiroki Noda
cc2b0e2594 Documentation/quickstart: update link for USBIP in WSL2 2023-03-20 08:58:14 +01:00
Alan Carvalho de Assis
b216f74a4b doc: Add xxd to get romfs working, reported by Simon Filgis 2023-02-24 21:53:48 +08:00
simbit18
7cfeccee92 Doc organization.rst
update tip incorrect permalink
2023-02-22 01:05:30 +08:00
chao an
73214965b8 Documentation/kconfiglib: update document to support kconfiglib
Signed-off-by: chao an <anchao@xiaomi.com>
2023-02-20 14:35:06 +08:00
Xiang Xiao
a64c61f530 Remove incubat.* from the code base
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-13 21:21:27 +02:00
Nathan Hartman
03802dad13 NuttX graduated the Incubator; update repository links 2022-11-26 11:58:15 -08:00
Meco Man
6ad06b0c2b [docs] eliminate potential misunderstandings 2022-03-17 02:04:05 +08:00
simbit18
1e7e1cad0b Update install.rst
updade tip
2022-03-07 23:51:48 +08:00
Alan C. Assis
b248dd0d3a Documentation: Fix openocd command instruction
A user reported me an issue while following our documentation
then looking his command line error I noticed the openocd stlink
interface was wrong: st-link-v2.cfg -> stlink-v2.cfg
2021-11-04 15:09:34 +01:00
Alan C. Assis
eaf50cd06b Doc: Update download version to 10.1 and fix tar command 2021-09-17 07:53:57 -07:00