Compare commits
32 commits
abf7a74e6a
...
c2f9368c7e
| Author | SHA1 | Date | |
|---|---|---|---|
| c2f9368c7e | |||
|
|
a00ac581c5 | ||
|
|
b49bf589c3 | ||
|
|
5f36eb5d23 | ||
|
|
ce99fbd904 | ||
|
|
8d6dcd61ed | ||
|
|
13e24e0c78 | ||
|
|
384f788d18 | ||
|
|
e0e00f2b29 | ||
|
|
fccf2f6e06 | ||
|
|
9bedf16be9 | ||
|
|
9d01d17188 | ||
|
|
dd51d9a3fc | ||
|
|
9413b6f331 | ||
|
|
a4c42e54f7 | ||
|
|
628c05acf3 | ||
|
|
e83012b540 | ||
|
|
b3dd8b2796 | ||
|
|
ba0a5df95d | ||
|
|
cf616fd619 | ||
|
|
754eab4687 | ||
|
|
a039fc7097 | ||
|
|
21e1596dff | ||
|
|
382ed6550f | ||
|
|
70b5aa4df0 | ||
|
|
94ad260843 | ||
|
|
3af0ab64bb | ||
|
|
47e4576b1c | ||
|
|
106058cc1f | ||
|
|
80f5a06c06 | ||
|
|
5e9e237868 | ||
|
|
6db437e2de |
5946 changed files with 13748 additions and 105695 deletions
|
|
@ -8,7 +8,6 @@ exclude-file = .codespell-ignore-lines
|
|||
# Ignore complete files (e.g. legal text or other immutable material).
|
||||
skip =
|
||||
LICENSE,
|
||||
*/CODEOWNERS,
|
||||
|
||||
# Ignore seemingly misspelled words.
|
||||
# lowercase: case insensitive
|
||||
|
|
|
|||
22909
.github/CODEOWNERS
vendored
22909
.github/CODEOWNERS
vendored
File diff suppressed because it is too large
Load diff
20
.github/PULL_REQUEST_TEMPLATE.md
vendored
20
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
|
@ -13,21 +13,9 @@
|
|||
|
||||
## Testing
|
||||
|
||||
*This section should provide a detailed description of what you did
|
||||
to verify your changes work and do not break existing code.*
|
||||
*Update this section with details on how did you verify the change,
|
||||
what Host was used for build (OS, CPU, compiler, ..), what Target was
|
||||
used for verification (arch, board:config, ..), etc. Providing build
|
||||
and runtime logs from before and after change is highly appreciated.*
|
||||
|
||||
*Please provide information about your host machine, the board(s) you
|
||||
tested your changes on, and how you tested. Logs should be included.*
|
||||
|
||||
*For example, when changing something in the core OS functions, you
|
||||
may want to run the OSTest application to verify that there are no
|
||||
regressions. Changes to ADC code may warrant running the `adc`
|
||||
example. Adding a new uORB driver may require that you run
|
||||
`uorb_listener` to verify correct operation.*
|
||||
|
||||
*Pure documentation changes can just be tested with `make html`
|
||||
(see docs) and verification of the correct format in your
|
||||
browser.*
|
||||
|
||||
**_PRs without testing information will not be accepted. We will
|
||||
request test logs._**
|
||||
|
|
|
|||
8
.github/workflows/build.yml
vendored
8
.github/workflows/build.yml
vendored
|
|
@ -17,10 +17,8 @@ on:
|
|||
paths-ignore:
|
||||
- 'AUTHORS'
|
||||
- 'CONTRIBUTING.md'
|
||||
- '**/CODEOWNERS'
|
||||
- 'Documentation/**'
|
||||
- 'tools/ci/docker/linux/**'
|
||||
- 'tools/codeowners/*'
|
||||
push:
|
||||
paths-ignore:
|
||||
- 'AUTHORS'
|
||||
|
|
@ -245,7 +243,7 @@ jobs:
|
|||
|
||||
# Released version of Cython has issues with Python 11. Set runner to use Python 3.10
|
||||
# https://github.com/cython/cython/issues/4500
|
||||
- uses: actions/setup-python@v6
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.10'
|
||||
- name: Run Builds
|
||||
|
|
@ -306,7 +304,7 @@ jobs:
|
|||
zlib-devel
|
||||
cmake
|
||||
ninja
|
||||
python-pip
|
||||
python-pip
|
||||
vim
|
||||
|
||||
- name: pip3 install
|
||||
|
|
@ -361,7 +359,7 @@ jobs:
|
|||
- uses: actions/checkout@v5
|
||||
# Set up Python environment and install kconfiglib
|
||||
- name: Set up Python and install kconfiglib
|
||||
uses: actions/setup-python@v6
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.10'
|
||||
- name: Install kconfiglib
|
||||
|
|
|
|||
2
.github/workflows/doc.yml
vendored
2
.github/workflows/doc.yml
vendored
|
|
@ -36,7 +36,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/setup-python@v6
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.8'
|
||||
- name: Generate Documentation
|
||||
|
|
|
|||
2
.github/workflows/issue_labeler.yml
vendored
2
.github/workflows/issue_labeler.yml
vendored
|
|
@ -23,7 +23,7 @@ jobs:
|
|||
issues: write
|
||||
steps:
|
||||
- name: Add labels issues automatically based on their body.
|
||||
uses: actions/github-script@v8
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const body = context.payload.issue.body;
|
||||
|
|
|
|||
390
Documentation/ReleaseNotes/NuttX-12.11.0
Normal file
390
Documentation/ReleaseNotes/NuttX-12.11.0
Normal file
|
|
@ -0,0 +1,390 @@
|
|||
NuttX-12.11.0
|
||||
------------
|
||||
|
||||
What's New In This Release
|
||||
Major Changes to Core OS
|
||||
Sched
|
||||
* [#16554](https://github.com/apache/nuttx/pull/16554) sched: assert: Print Stack pointer value when not within the stack
|
||||
* [#16673](https://github.com/apache/nuttx/pull/16673) sched: Fix smp scheduling
|
||||
* [#16919](https://github.com/apache/nuttx/pull/16919) sched/init/nx_bringup.c: Add support for CONFIG_INIT_NONE in a flat build
|
||||
* [#16927](https://github.com/apache/nuttx/pull/16927) sched/signal: Old signal action need save sa_user
|
||||
* [#16481](https://github.com/apache/nuttx/pull/16481) sched/wdog: Replace periodical timer with the wd_start_next.
|
||||
* [#16545](https://github.com/apache/nuttx/pull/16545) sched/wqueue: Fix windows compilation errors.
|
||||
* [#16593](https://github.com/apache/nuttx/pull/16593) sched/wqueue: Fix windows compilation errors.
|
||||
MM
|
||||
* [#16617](https://github.com/apache/nuttx/pull/16617) mm: add CONFIG_MM_NODE_GUARDSIZE option
|
||||
* [#16653](https://github.com/apache/nuttx/pull/16653) mm/Kasan: Fixed some bugs
|
||||
libc
|
||||
* [#16568](https://github.com/apache/nuttx/pull/16568) libc: Change atomic_fetch_cxx to macro
|
||||
* [#16768](https://github.com/apache/nuttx/pull/16768) libc: fix assert "Free memory from the wrong heap" with flat mode and…
|
||||
* [#16713](https://github.com/apache/nuttx/pull/16713) libc/idr: Fix Use-After-Free during idr_destroy()
|
||||
* [#16675](https://github.com/apache/nuttx/pull/16675) libc/mcount: add armv6m mcount implementation
|
||||
* [#16811](https://github.com/apache/nuttx/pull/16811) libs/libc/netdb: Optimize the DNS timeout calculation logic
|
||||
* [#16932](https://github.com/apache/nuttx/pull/16932) libs/libc/semaphore: allow nxsem_init to negative value
|
||||
* [#16614](https://github.com/apache/nuttx/pull/16614) libbuiltin/gcov: Upgrade gcov function
|
||||
* [#16786](https://github.com/apache/nuttx/pull/16786) Revert "libs/libc/stdlib/lib_exit.c: fix multiple definition of __dso…
|
||||
Tools
|
||||
* [#16563](https://github.com/apache/nuttx/pull/16563) tools: Modify refresh.sh to support update all configs from a board
|
||||
* [#16650](https://github.com/apache/nuttx/pull/16650) tools/checkpatch.sh: add -x option to auto-format Python files.
|
||||
* [#16912](https://github.com/apache/nuttx/pull/16912) tools/checkpatch.sh: check git commit format
|
||||
* [#16724](https://github.com/apache/nuttx/pull/16724) tools/espressif: Add risc-v compiler info dump for Espressif devices
|
||||
* [#16763](https://github.com/apache/nuttx/pull/16763) tools/nix: Add Nix flake for reproducible dev environment
|
||||
* [#16924](https://github.com/apache/nuttx/pull/16924) tools/nix: move nix flakes to tools/
|
||||
* [#16831](https://github.com/apache/nuttx/pull/16831) tools/nix: split flake into root and Documentation
|
||||
* [#16759](https://github.com/apache/nuttx/pull/16759) tools/nxstyle.c: Updating white list to xedge example
|
||||
* [#16855](https://github.com/apache/nuttx/pull/16855) tools/rp{2040,23xx}: Ensure that picotool is found or built
|
||||
* [#16667](https://github.com/apache/nuttx/pull/16667) tools/process_config.sh: Fix sed errors
|
||||
* [#16546](https://github.com/apache/nuttx/pull/16546) tools/testbuild.ps1: Windows fix the redirect error stream
|
||||
* [#16711](https://github.com/apache/nuttx/pull/16711) toolchain/arm: Fix crash caused by clang compiling with -mfpu=fpv5-d16 and -march=armv8.1-m.main+mve.fp+fp.dp
|
||||
* [#16709](https://github.com/apache/nuttx/pull/16709) toolchain/arm: Fix link parameter error
|
||||
* [#16720](https://github.com/apache/nuttx/pull/16720) toolchain/armclang: Fix armclang config
|
||||
|
||||
Build System
|
||||
Improvements
|
||||
* [#16880](https://github.com/apache/nuttx/pull/16880) arch: Add Cmake build support for raspberrypi-4b board & bcm2711 chip
|
||||
* [#16475](https://github.com/apache/nuttx/pull/16475) arch/arm/src/mcx-nxxx/CMakeLists.txt: Aligned Cmake with Make
|
||||
* [#16579](https://github.com/apache/nuttx/pull/16579) arch/arm/src/mcx-nxxx/CMakeLists.txt: Aligned Cmake with Make
|
||||
* [#16647](https://github.com/apache/nuttx/pull/16647) arch/arm64/fvp-v8r: support cmake compile
|
||||
* [#16581](https://github.com/apache/nuttx/pull/16581) arch/risc-v/src/qemu-rv/CMakeLists.txt: removed repeated addition of …
|
||||
* [#16477](https://github.com/apache/nuttx/pull/16477) arch/risc-v/src/qemu-rv/CMakeLists.txt: removed repeated addition of the file qemu_rv_userspace.c
|
||||
* [#16794](https://github.com/apache/nuttx/pull/16794) arm: CMake build for the i.MX RT series implemented.
|
||||
* [#16627](https://github.com/apache/nuttx/pull/16627) Arm32 v8m support cmake clang compile
|
||||
* [#16922](https://github.com/apache/nuttx/pull/16922) boards/arm/imxrt: CMake added imxrt1020-evk imxrt1050-evk boards
|
||||
* [#16918](https://github.com/apache/nuttx/pull/16918) boards/arm/imxrt: CMake added imxrt1060-evk imxrt1064-evk imxrt1170-evk boards
|
||||
* [#16639](https://github.com/apache/nuttx/pull/16639) cmake/arm64: support clang compile
|
||||
* [#16547](https://github.com/apache/nuttx/pull/16547) cmake(bugfix):fix VERSION genarator strip error in CMake build
|
||||
* [#16594](https://github.com/apache/nuttx/pull/16594) cmake(bugfix):fix VERSION genarator strip error in CMake build
|
||||
* [#16751](https://github.com/apache/nuttx/pull/16751) cmake(bugfix):add default c++ search path
|
||||
* [#16897](https://github.com/apache/nuttx/pull/16897) Cmake: add defconfig preprocess capability in Cmake build environment(recursively expand #include)
|
||||
* [#16721](https://github.com/apache/nuttx/pull/16721) cmake: enhance the function of cmake nuttx_wildcard_sources
|
||||
* [#16867](https://github.com/apache/nuttx/pull/16867) drivers/analog/CMakeLists.txt: Aligned Cmake with Make
|
||||
* [#16870](https://github.com/apache/nuttx/pull/16870) drivers/audio/CMakeLists.txt: Aligned Cmake with Make
|
||||
* [#16873](https://github.com/apache/nuttx/pull/16873) drivers/ioexpander/CMakeLists.txt: Aligned Cmake with Make
|
||||
* [#16871](https://github.com/apache/nuttx/pull/16871) drivers/leds/CMakeLists.txt: Aligned Cmake with Make
|
||||
* [#16913](https://github.com/apache/nuttx/pull/16913) drivers/net/CMakeLists.txt: Aligned Cmake with Make
|
||||
* [#16620](https://github.com/apache/nuttx/pull/16620) drivers/segger/CMakeLists.txt: Aligned Cmake with Make
|
||||
* [#16633](https://github.com/apache/nuttx/pull/16633) drivers/segger/CMakeLists.txt: Aligned Cmake with Make
|
||||
* [#16616](https://github.com/apache/nuttx/pull/16616) drivers/sensors/CMakeLists.txt: Aligned Cmake with Make
|
||||
* [#16634](https://github.com/apache/nuttx/pull/16634) drivers/sensors/CMakeLists.txt: Aligned Cmake with Make
|
||||
* [#16737](https://github.com/apache/nuttx/pull/16737) toolchain/arm64/cmake: Corrected the writing of arm64 cmake search library
|
||||
* [#16849](https://github.com/apache/nuttx/pull/16849) Make/Toolchain.defs: add the AR_EXTRACT command
|
||||
|
||||
Architectural Support
|
||||
Improvements
|
||||
ARM
|
||||
* [#16806](https://github.com/apache/nuttx/pull/16806) arch/*/*_sigdeliver.c: Fix a race condition is signal delivery for SMP
|
||||
* [#16657](https://github.com/apache/nuttx/pull/16657) arch/arm: Add gic lock for GICD_ICFGR RMW operations.
|
||||
* [#16881](https://github.com/apache/nuttx/pull/16881) arch/arm: Add missing barriers.h
|
||||
* [#16669](https://github.com/apache/nuttx/pull/16669) arch/arm/*/stm32_fdcan_sock.c: prevent interrupt flood on errors.
|
||||
* [#16611](https://github.com/apache/nuttx/pull/16611) arch/arm/armv7-a: Support hardware debugpoint to enhance gdbstub
|
||||
* [#16752](https://github.com/apache/nuttx/pull/16752) arch/arm/cxd56xx: Fix bug that causes wake-up by unused gpio interrupt
|
||||
* [#16797](https://github.com/apache/nuttx/pull/16797) arch/arm/imxrt: Initial modification to support two USB Controllers
|
||||
* [#16478](https://github.com/apache/nuttx/pull/16478) arch/arm/imxrt: Serial add RXDMA support for singlewire mode
|
||||
* [#16703](https://github.com/apache/nuttx/pull/16703) arch/arm/rp23xx: Fix gpio for RP2350B
|
||||
* [#16704](https://github.com/apache/nuttx/pull/16704) arch/arm/rp23xx: spi unset peripheral before to modify Spi parameters
|
||||
* [#16837](https://github.com/apache/nuttx/pull/16837) arch/arm/rp2040: Fix typos in ADC and GPIO macro names
|
||||
* [#16840](https://github.com/apache/nuttx/pull/16840) arch/arm/rp2040: Implement GPIO output override functionality
|
||||
* [#16886](https://github.com/apache/nuttx/pull/16886) arch/arm/rp2040: Silence "LOAD segment with RWX permissions" linker warnings
|
||||
* [#16876](https://github.com/apache/nuttx/pull/16876) arch/arm/rp2040: Support pico-sdk 2.2.0
|
||||
* [#16842](https://github.com/apache/nuttx/pull/16842) arch/arm/rp2040: Support non-sequential ADC channels and standardize internal function names
|
||||
* [#16783](https://github.com/apache/nuttx/pull/16783) arch/arm/samv7: add support for pin to pin compatible pic32cz ca70 series and its evaluation kit
|
||||
* [#16901](https://github.com/apache/nuttx/pull/16901) arch/arm/samv7: add support for progmem in PIC32CZ CA70 series
|
||||
* [#16907](https://github.com/apache/nuttx/pull/16907) arch/arm/samv7: fix compile warning
|
||||
* [#16522](https://github.com/apache/nuttx/pull/16522) arch/arm/samv7: init perf events if enabled
|
||||
* [#16572](https://github.com/apache/nuttx/pull/16572) arch/arm/samv7: set correct SPI mode during init
|
||||
* [#16465](https://github.com/apache/nuttx/pull/16465) arch/arm/samv7: set correct SPI mode during init
|
||||
* [#16541](https://github.com/apache/nuttx/pull/16541) arch/arm/stm32: add STM32 I2C Slave support f…
|
||||
* [#16532](https://github.com/apache/nuttx/pull/16532) arch/arm/stm32: add support for ADC trigger from TRGO event
|
||||
* [#16534](https://github.com/apache/nuttx/pull/16534) arch/arm/stm32: add support for batch DMA transfer
|
||||
* [#16680](https://github.com/apache/nuttx/pull/16680) arch/arm/stm32{h5|h7|l4}/adc: move ADC_MAX_SAMPLES to Kconfig
|
||||
* [#16530](https://github.com/apache/nuttx/pull/16530) arch/arm/stm32f0l0g0: add TIMER trigger for ADC
|
||||
* [#16514](https://github.com/apache/nuttx/pull/16514) arch/arm/stm32f0l0g0: fix compilation when TIM6/TIM7 is missing
|
||||
* [#16589](https://github.com/apache/nuttx/pull/16589) arch/arm/stm32f0l0g0: fix compilation when TIM6/TIM7 is missing
|
||||
* [#16810](https://github.com/apache/nuttx/pull/16810) arch/arm/stm32f0l0g0: Fix I2C IRQ numbers
|
||||
* [#16543](https://github.com/apache/nuttx/pull/16543) arch/arm/stm32f0l0g0: Improve STM32G0 peripheral config granularity
|
||||
* [#16670](https://github.com/apache/nuttx/pull/16670) arch/arm/stm32f0l0g0: move ADC_MAX_SAMPLES to Kconfig
|
||||
* [#16513](https://github.com/apache/nuttx/pull/16513) arch/arm/stm32f0l0g0: remove references to CONFIG_STM32F0L0G0_FORCEPOWER
|
||||
* [#16557](https://github.com/apache/nuttx/pull/16557) arch/arm/stm32f0l0g0: STM32G0 DMA and ADC Support
|
||||
* [#16497](https://github.com/apache/nuttx/pull/16497) arch/arm/stm32f0l0g0: UID support for F0, L0 and C0
|
||||
* [#16517](https://github.com/apache/nuttx/pull/16517) arch/arm/stm32f7: Add missing RCC include
|
||||
* [#16909](https://github.com/apache/nuttx/pull/16909) arch/arm/stm32f7: Fix "unused variable" warning
|
||||
* [#16860](https://github.com/apache/nuttx/pull/16860) arch/arm/stm32f7: Fix I2C4 SDA pin assignment
|
||||
* [#16827](https://github.com/apache/nuttx/pull/16827) arch/arm/stm32h7: Fix timer capture upper half driver registration
|
||||
* [#16809](https://github.com/apache/nuttx/pull/16809) arch/arm/stm32h7: Port timer capture driver from stm32
|
||||
* [#16705](https://github.com/apache/nuttx/pull/16705) arch/arm/stm32h7: support for /dev/random device
|
||||
* [#16706](https://github.com/apache/nuttx/pull/16706) arch/arm/STM32H5: Add DMA and ADC DMA support
|
||||
* [#16776](https://github.com/apache/nuttx/pull/16776) arch/arm/stm32h5: Add DMA Support to STM32H5 Serial Driver
|
||||
* [#16708](https://github.com/apache/nuttx/pull/16708) arch/arm/STM32H5: Add oversampling and resolution support for ADC
|
||||
* [#16746](https://github.com/apache/nuttx/pull/16746) arch/arm/stm32h5: Initial Driver for STM32H5 Digital Temperature Sensor (DTS)
|
||||
* [#16818](https://github.com/apache/nuttx/pull/16818) arch/arm/stm32h5: Fix STM32H5 FDCAN Driver and Add Test Files
|
||||
* [#16803](https://github.com/apache/nuttx/pull/16803) arch/arm/stm32h5: Use double-buffer for ADC DMA in Circular Mode
|
||||
* [#16923](https://github.com/apache/nuttx/pull/16923) arch/arm/xmc4 : fix serial buffer size for unused channel
|
||||
ARM64
|
||||
* [#16612](https://github.com/apache/nuttx/pull/16612) arch/arm64: enable arm64 hardware breakpoints
|
||||
* [#16846](https://github.com/apache/nuttx/pull/16846) arch/arm64: Fix signal delivery in EL1 when MMU is enabled
|
||||
* [#16826](https://github.com/apache/nuttx/pull/16826) arch/arm64: imx9 add pci dma space and pci outbound space
|
||||
* [#16884](https://github.com/apache/nuttx/pull/16884) arch/arm64/gicv3: Improve initialization in warm reboot case
|
||||
* [#16743](https://github.com/apache/nuttx/pull/16743) arch/arm64/imx9: add support for imx95
|
||||
* [#16727](https://github.com/apache/nuttx/pull/16727) arch/arm64/imx9: eDMA5 Allow sharing with Linux
|
||||
* [#16844](https://github.com/apache/nuttx/pull/16844) arch/arm64/imx9: Fix first trace
|
||||
* [#16900](https://github.com/apache/nuttx/pull/16900) arch/arm64/imx9: Fix bus reset
|
||||
* [#16719](https://github.com/apache/nuttx/pull/16719) arch/arm64/zynq-mpsoc: fix race condition in txint handler
|
||||
AVR
|
||||
* [#16687](https://github.com/apache/nuttx/pull/16687) arch/avr: do not copy const variables to RAM
|
||||
* [#16498](https://github.com/apache/nuttx/pull/16498) arch/avr: fix atomic load functions from arch_atomic.c
|
||||
* [#16586](https://github.com/apache/nuttx/pull/16586) arch/avr: fix atomic load functions from arch_atomic.c
|
||||
RISC-V
|
||||
* [#16692](https://github.com/apache/nuttx/pull/16692) arch/[risc-v/xtensa]: Add SHA accelerator support for esp32[-s2|-s3|-c3|-c6|-h2]
|
||||
* [#16694](https://github.com/apache/nuttx/pull/16694) arch/risc-v: Add LP_I2C support for esp32[-c6]
|
||||
* [#16683](https://github.com/apache/nuttx/pull/16683) arch/risc-v: Add LPUART support for esp32[-c6]
|
||||
* [#16685](https://github.com/apache/nuttx/pull/16685) arch/risc-v: Change DMA functions with common layer for esp32[-c3|-c6|-h2]
|
||||
* [#16565](https://github.com/apache/nuttx/pull/16565) arch/risc-v: Fix `rv-virt:nsbi[|64]` defconfigs
|
||||
* [#16676](https://github.com/apache/nuttx/pull/16676) arch/risc-v: fix I2C timeout and board compilation requirements
|
||||
* [#16921](https://github.com/apache/nuttx/pull/16921) arch/risc-v: Refactor Wi-Fi driver for ESP32-C3|C6
|
||||
* [#16485](https://github.com/apache/nuttx/pull/16485) arch/risc-v/mpfs: Add optimized perf timer functions
|
||||
* [#16850](https://github.com/apache/nuttx/pull/16850) arch/risc-v/mpfs: fixes for coremmc and emmcsd
|
||||
* [#16851](https://github.com/apache/nuttx/pull/16851) arch/risc-v/mpfs: SMP interrupt handling fixes
|
||||
* [#16903](https://github.com/apache/nuttx/pull/16903) arch/risc-v/mpfs/mpfs_clockconfig.c: Flag out code only used in b…
|
||||
* [#16529](https://github.com/apache/nuttx/pull/16529) arch/risc-v/ricv_exception.c: Dump the process name at exception in user space
|
||||
* [#16424](https://github.com/apache/nuttx/pull/16424) arch/risc-v/rp23xx-riscv: Add rp23xx(rp2350) (Pico 2 board) RISC-V support
|
||||
SIM
|
||||
* [#16742](https://github.com/apache/nuttx/pull/16742) arch/sim: avoid host-call being interrupted before getting errno
|
||||
TRICORE
|
||||
* [#16885](https://github.com/apache/nuttx/pull/16885) arch/tricore: add up_trigger_irq
|
||||
* [#16910](https://github.com/apache/nuttx/pull/16910) arch/tricore: fix ld unrecognized option '-g3'
|
||||
* [#16917](https://github.com/apache/nuttx/pull/16917) arch/tricore/tricore_irq.c: add up_affinity_irq
|
||||
X86_64
|
||||
* [#16787](https://github.com/apache/nuttx/pull/16787) arch/x86_64: Allow specifying alternative compilers via CROSSDEV environment variable
|
||||
XTENSA
|
||||
* [#16804](https://github.com/apache/nuttx/pull/16804) arch/xtensa: Fix a race condition in xtensa_sig_deliver for SMP
|
||||
* [#16750](https://github.com/apache/nuttx/pull/16750) arch/xtensa: fix build break if compiler without ISA - XCHAL_HAVE_THREADPTR support
|
||||
* [#16686](https://github.com/apache/nuttx/pull/16686) arch/xtensa: Fix dedicated GPIO build error for esp32[-s2|-s3]
|
||||
* [#16672](https://github.com/apache/nuttx/pull/16672) arch/xtensa: support more than 32 cpu interrupts
|
||||
* [#16744](https://github.com/apache/nuttx/pull/16744) arch/xtensa/esp32: fix esp32(s3)_async_op() asynchronous operation race issue
|
||||
* [#16883](https://github.com/apache/nuttx/pull/16883) arch/xtensa/esp32: fix some compilation warnings
|
||||
* [#16882](https://github.com/apache/nuttx/pull/16882) arch/xtensa/esp32: fix the issue of erasing a wide range of flash sectors
|
||||
* [#16894](https://github.com/apache/nuttx/pull/16894) arch/xtensa/esp32,esp32s3: Start the "spiflash_op" thread with corret affinity
|
||||
* [#16878](https://github.com/apache/nuttx/pull/16878) arch/xtensa/esp32s3: Add EXT1 wakeup support in power management
|
||||
* [#16756](https://github.com/apache/nuttx/pull/16756) arch/xtensa/esp32s3: Fix bug related to the PSRAM-allocated task stack
|
||||
* [#16566](https://github.com/apache/nuttx/pull/16566) arch/xtensa/esp32s3: Fix Esp32S3 LCD FB resolution.
|
||||
* [#16603](https://github.com/apache/nuttx/pull/16603) arch/xtensa/esp32s3: Remove LCD Warnings.
|
||||
* [#16607](https://github.com/apache/nuttx/pull/16607) arch/xtensa/esp32s3: Remove LCD Warnings.
|
||||
* [#16856](https://github.com/apache/nuttx/pull/16856) arch/xtensa/esp32s2: Remove duplicated lines to fix warning
|
||||
|
||||
Driver Support
|
||||
New Driver Support
|
||||
* [#16836](https://github.com/apache/nuttx/pull/16836) drivers/analog/ads7046: Add support for ADS7046 ADC
|
||||
* [#16714](https://github.com/apache/nuttx/pull/16714) drivers/input: Create Single Button Multi Actions
|
||||
* [#16902](https://github.com/apache/nuttx/pull/16902) drivers/ioexpander: Add support for pcal6416
|
||||
* [#16934](https://github.com/apache/nuttx/pull/16934) drivers/ioexpander/aw9523b: New driver for AW9523B i/o expander
|
||||
* [#16217](https://github.com/apache/nuttx/pull/16217) drivers/leds: Add support for KTD2052
|
||||
* [#16660](https://github.com/apache/nuttx/pull/16660) drivers/net: add IGB network card support
|
||||
* [#16623](https://github.com/apache/nuttx/pull/16623) drivers/net: add support for the NCV7410 10BASE-T1S SPI MAC-PHY
|
||||
* [#16605](https://github.com/apache/nuttx/pull/16605) drivers/sensors: add Quectel L86-XXX GNSS uORB sensor driver
|
||||
* [#16838](https://github.com/apache/nuttx/pull/16838) drivers/sensors/tmp112: Add support for TMP112 temperature sensor
|
||||
Improvements
|
||||
* [#16715](https://github.com/apache/nuttx/pull/16715) drivers/analog/ads1115.h: Add ioctl for conversion trigger
|
||||
* [#16875](https://github.com/apache/nuttx/pull/16875) drivers/can/kvaser_pci: configure number of passes in interrupt handler
|
||||
* [#16738](https://github.com/apache/nuttx/pull/16738) drivers/fs:Always use register_mtddriver() to register the MTD device (patch2)
|
||||
* [#16914](https://github.com/apache/nuttx/pull/16914) drivers/i2s/i2schar: Implement ioctl commands and blocking read/write operations
|
||||
* [#16745](https://github.com/apache/nuttx/pull/16745) drivers/ioexpander/icjx.c: reconfigure icjx after undervoltage
|
||||
* [#16729](https://github.com/apache/nuttx/pull/16729) drivers/misc/optee: Cache coherency when MMU is disabled
|
||||
* [#16734](https://github.com/apache/nuttx/pull/16734) drivers/misc/optee: expand RPC suppport for IMX9
|
||||
* [#16800](https://github.com/apache/nuttx/pull/16800) drivers/misc/optee_smc: Explicitly yield during NW interrupts
|
||||
* [#16801](https://github.com/apache/nuttx/pull/16801) drivers/misc/optee_smc: Fix sched_yield() on flat builds
|
||||
* [#16473](https://github.com/apache/nuttx/pull/16473) drivers/mtd: fix compile warning
|
||||
* [#16577](https://github.com/apache/nuttx/pull/16577) drivers/mtd: fix compile warning
|
||||
* [#16789](https://github.com/apache/nuttx/pull/16789) drivers/mtd: introduce nvblk
|
||||
* [#16642](https://github.com/apache/nuttx/pull/16642) drivers/mtd/ftl/bch: Add direct writing method for FTL
|
||||
* [#16906](https://github.com/apache/nuttx/pull/16906) drivers/net: ksz9477 fixes
|
||||
* [#16899](https://github.com/apache/nuttx/pull/16899) drivers/net: Remove NCV7410 driver and corresponding board support
|
||||
* [#16661](https://github.com/apache/nuttx/pull/16661) drivers/net: various fixes for e1000 and igc
|
||||
* [#16649](https://github.com/apache/nuttx/pull/16649) drivers/net/Kconfig: Move NET_IGC_TXDESC and NET_IGC_RXDESC to NET_IG…
|
||||
* [#16526](https://github.com/apache/nuttx/pull/16526) drivers/optee: fix compile break
|
||||
* [#16767](https://github.com/apache/nuttx/pull/16767) drivers/pci: epc add dma heap
|
||||
* [#16753](https://github.com/apache/nuttx/pull/16753) drivers/segger: Add a kconfig to override Segger SystemView target sources version
|
||||
* [#16510](https://github.com/apache/nuttx/pull/16510) drivers/segger: Change SEGGER_RTT_LOCK into rspinlock
|
||||
* [#16512](https://github.com/apache/nuttx/pull/16512) drivers/segger: define a macro using a configuration variable
|
||||
* [#16805](https://github.com/apache/nuttx/pull/16805) drivers/sensor: Add flags for GNSS satellite
|
||||
* [#16764](https://github.com/apache/nuttx/pull/16764) drivers/sensors/l86xxx: Fix driver registration crashes
|
||||
* [#16701](https://github.com/apache/nuttx/pull/16701) drivers/sensors/l86xxx: Fix Kconfig options and dependencies
|
||||
* [#16821](https://github.com/apache/nuttx/pull/16821) drivers/sensors/l86xxx: Mutex fixes & performance improvements
|
||||
* [#16778](https://github.com/apache/nuttx/pull/16778) drivers/sensors/l86xxx: Use uORB GNSS lower-half
|
||||
* [#16717](https://github.com/apache/nuttx/pull/16717) drivers/sensors/nau7802: Added frequency control
|
||||
* [#16466](https://github.com/apache/nuttx/pull/16466) drivers/serial: fix race conditions
|
||||
* [#16573](https://github.com/apache/nuttx/pull/16573) drivers/serial: fix race conditions
|
||||
* [#16820](https://github.com/apache/nuttx/pull/16820) drivers/syslog/syslog_channel.c: fix incompatible-pointer-types compile errors
|
||||
* [#16677](https://github.com/apache/nuttx/pull/16677) drivers/touchscreen: Add support for mirror/swap
|
||||
* [#16788](https://github.com/apache/nuttx/pull/16788) drivers/video: add sched_note_mark at fb_remove_paninfo and fb_notify_vsync
|
||||
|
||||
Board Support
|
||||
New Board Support
|
||||
* [#16443](https://github.com/apache/nuttx/pull/16443) boards/avr/atmega: Added Elegoo Mega2560r3 board
|
||||
* [#16781](https://github.com/apache/nuttx/pull/16781) boards/imxrt: Add support to ARCX Socket Grid board
|
||||
* [#16558](https://github.com/apache/nuttx/pull/16558) boards/xtensa/esp32s3: add new esp32s3-8048S043 board
|
||||
Improvements
|
||||
* [#16792](https://github.com/apache/nuttx/pull/16792) boards/arm: Fix Kconfig style
|
||||
* [#16663](https://github.com/apache/nuttx/pull/16663) boards/arm/lpc17xx_40xx/lincoln60: Correct defconfig for THTTPD_CGIINBUFFERSIZ spelling
|
||||
* [#16833](https://github.com/apache/nuttx/pull/16833) boards/arm/qemu: Change config name of input tool
|
||||
* [#16931](https://github.com/apache/nuttx/pull/16931) boards/arm/rp23xx/common: update board reset via BOOTROM functions
|
||||
* [#16707](https://github.com/apache/nuttx/pull/16707) boards/arm/stm32f401rc-rs485: Add support to HX711 ADC
|
||||
* [#16779](https://github.com/apache/nuttx/pull/16779) boards/arm/stm32f401rc-rs485: Add support to MAX31855 and MAX6675
|
||||
* [#16780](https://github.com/apache/nuttx/pull/16780) boards/arm/stm32f4discovery: Add support to HX711 ADC
|
||||
* [#16857](https://github.com/apache/nuttx/pull/16857) board/esp: Revert mtdblock registeration
|
||||
* [#16866](https://github.com/apache/nuttx/pull/16866) boards/esp32s3: Add SPI slave device support
|
||||
* [#16725](https://github.com/apache/nuttx/pull/16725) boards/espressif: add support for SDMMC over SPI for ESP32-C3|C6|H2
|
||||
* [#16812](https://github.com/apache/nuttx/pull/16812) boards/imxrt: Fix issues and add USBHOST support to arcx-socket-grid
|
||||
* [#16824](https://github.com/apache/nuttx/pull/16824) boards/imxrt/arcx-socket-grid: Remove debug symbols
|
||||
* [#16535](https://github.com/apache/nuttx/pull/16535) boards/nucleo-f446re: fix adc example
|
||||
* [#16592](https://github.com/apache/nuttx/pull/16592) boards/nucleo-f446re: fix adc example
|
||||
* [#16665](https://github.com/apache/nuttx/pull/16665) boards/qemu-armv8a: Add `xedge` example program and documentation
|
||||
* [#16659](https://github.com/apache/nuttx/pull/16659) boards/qemu-intel64/qemu.ld: add .lbss, .ldata and .lrodata
|
||||
* [#16848](https://github.com/apache/nuttx/pull/16848) boards/risc-v/rp23xx-rv/common: update board reset via BOOTROM functions
|
||||
* [#16646](https://github.com/apache/nuttx/pull/16646) boards/riscv-v/esp32c6: Add the NCV7410 10BASE-T1S SPI MAC-PHY support
|
||||
* [#16898](https://github.com/apache/nuttx/pull/16898) boards/tricore: rename tc397 chip board name
|
||||
* [#16505](https://github.com/apache/nuttx/pull/16505) boards/xtensa/esp32: Add BLE config to esp32-sparrow
|
||||
* [#16602](https://github.com/apache/nuttx/pull/16602) boards/xtensa: support SDMMC over SPI on ESP32|S2|S3
|
||||
* [#16638](https://github.com/apache/nuttx/pull/16638) boards/xtensa/esp32s3/esp32s3-box: Fix ILI9342C color inversion
|
||||
* [#16681](https://github.com/apache/nuttx/pull/16681) boards/weact-stm32h743 Add sdcard support
|
||||
* [#16785](https://github.com/apache/nuttx/pull/16785) boards/weact-stm32h743: Add support to ST7735 display
|
||||
|
||||
File System
|
||||
Improvements
|
||||
* [#16722](https://github.com/apache/nuttx/pull/16722) fs/block_proxy: fix the issue of the refs count for filep being zeroed out by utilizing dup2
|
||||
* [#16938](https://github.com/apache/nuttx/pull/16938) fs/fat: Fix wrong alloc used in fat_zero_cluster()
|
||||
* [#16536](https://github.com/apache/nuttx/pull/16536) fs/fcntl: using ioctl to implement FIOGCLEX/FIOCLEX/FIONCLEX
|
||||
* [#16832](https://github.com/apache/nuttx/pull/16832) fs/lock: Allow driver lock
|
||||
* [#16598](https://github.com/apache/nuttx/pull/16598) fs/procfs: fix output format of fd info
|
||||
* [#16518](https://github.com/apache/nuttx/pull/16518) fs/smartfs: Fix a fatal bug about sector writing after seek
|
||||
* [#16590](https://github.com/apache/nuttx/pull/16590) fs/smartfs: Fix a fatal bug about sector writing after seek
|
||||
* [#16490](https://github.com/apache/nuttx/pull/16490) fs/vfs: check if all `iov_base` are accessible
|
||||
* [#16584](https://github.com/apache/nuttx/pull/16584) fs/vfs: check if all iov_base are accessible
|
||||
* [#16609](https://github.com/apache/nuttx/pull/16609) fs/vfs: clear filep when call file_open/file_mq_open to avoid random value[bug fix]
|
||||
* [#16538](https://github.com/apache/nuttx/pull/16538) fs/vfs/fs_close.c: avoid double free if CONFIG_FS_NOTIFY is set
|
||||
* [#16455](https://github.com/apache/nuttx/pull/16455) fs/vfs/fs_rename: fix directory move operation.
|
||||
|
||||
Networking
|
||||
Improvements
|
||||
* [#16926](https://github.com/apache/nuttx/pull/16926) include/net/if.h: Add mechanism for MMD access with SIOCxMIIREG ioctls
|
||||
* [#16628](https://github.com/apache/nuttx/pull/16628) net: Enable TCP/IP backlog by default
|
||||
* [#16684](https://github.com/apache/nuttx/pull/16684) net/arp: avoid unnecessary ARP requests
|
||||
* [#16905](https://github.com/apache/nuttx/pull/16905) net/can: fixes and cleanups
|
||||
* [#16682](https://github.com/apache/nuttx/pull/16682) net/local: correct shutdown state when use UDP mode (To fix issue: https://github.com/apache/nuttx/issues/16555)
|
||||
* [#16494](https://github.com/apache/nuttx/pull/16494) net/utils: avoid unalign access g_tcp_connections_buffer
|
||||
* [#16585](https://github.com/apache/nuttx/pull/16585) net/utils: avoid unalign access g_tcp_connections_buffer
|
||||
* [#16599](https://github.com/apache/nuttx/pull/16599) netdb/lib_dnsquery.c: prevent file descriptor leakage
|
||||
* [#16606](https://github.com/apache/nuttx/pull/16606) netdb/lib_dnsquery.c: In the IPv6 or IPv4 dns_query_callback() block,…
|
||||
|
||||
Unsorted contributions
|
||||
* [#16644](https://github.com/apache/nuttx/pull/16644) espressif: update lower-half drivers
|
||||
* [#16467](https://github.com/apache/nuttx/pull/16467) audio/comp: fix build warning caused by invalid return value
|
||||
* [#16469](https://github.com/apache/nuttx/pull/16469) mcx-nxxx: Add LPI2C driver for mcx-nxxx architecture
|
||||
* [#16474](https://github.com/apache/nuttx/pull/16474) syslog/rpmsg: disable force put char to lower putc
|
||||
* [#16479](https://github.com/apache/nuttx/pull/16479) sensors/nau7802: Fix format warning
|
||||
* [#16482](https://github.com/apache/nuttx/pull/16482) Fix i.MX93 ENET1 (EMAC) TXC muxing and RGMII-ID setting
|
||||
* [#16483](https://github.com/apache/nuttx/pull/16483) Segger sysview improvements
|
||||
* [#16486](https://github.com/apache/nuttx/pull/16486) add spin_lock_irqsave_nopreempt rspin_lock_irqsave_noprempt implement.
|
||||
* [#16487](https://github.com/apache/nuttx/pull/16487) Fix arch perf events ifdef in alarm
|
||||
* [#16489](https://github.com/apache/nuttx/pull/16489) Added support obtaining the unique id for the stm32f0l0g0 family
|
||||
* [#16491](https://github.com/apache/nuttx/pull/16491) espressif[risc-v|xtensa]: Check events when reading PCNT counter value
|
||||
* [#16492](https://github.com/apache/nuttx/pull/16492) add FDCAN support for STM32C0
|
||||
* [#16493](https://github.com/apache/nuttx/pull/16493) RFC 5424 implementation for SYSLOG
|
||||
* [#16495](https://github.com/apache/nuttx/pull/16495) minor stream improvement
|
||||
* [#16496](https://github.com/apache/nuttx/pull/16496) improve libc/stream subsystem
|
||||
* [#16500](https://github.com/apache/nuttx/pull/16500) Add ADC support for STM32G0 (along with oversampling)
|
||||
* [#16508](https://github.com/apache/nuttx/pull/16508) riscv qemu-rv: fix kernel mapping by enabling CONFIG_MM_KMAP in knsh
|
||||
* [#16509](https://github.com/apache/nuttx/pull/16509) Update the ELF guides
|
||||
* [#16511](https://github.com/apache/nuttx/pull/16511) nuttx/spinlock: Define empty macro for spin_unlock
|
||||
* [#16519](https://github.com/apache/nuttx/pull/16519) imx9/smp: Add SMP support for imx93
|
||||
* [#16527](https://github.com/apache/nuttx/pull/16527) nxgdb/fs: fix exception when failed to parse symbol
|
||||
* [#16533](https://github.com/apache/nuttx/pull/16533) Update MCUBoot build process for Espressif devices
|
||||
* [#16540](https://github.com/apache/nuttx/pull/16540) qemu/armv8a: fastboot tcp defconfig + documentation.
|
||||
* [#16549](https://github.com/apache/nuttx/pull/16549) Minor improve to stream
|
||||
* [#16550](https://github.com/apache/nuttx/pull/16550) gitignore: add more vim swap files
|
||||
* [#16552](https://github.com/apache/nuttx/pull/16552) spinlock: Better recursive spinlock implementation.
|
||||
* [#16556](https://github.com/apache/nuttx/pull/16556) risc-v/mmu: Fix map_region() for incorrect page table setup when vadd…
|
||||
* [#16562](https://github.com/apache/nuttx/pull/16562) esp32s3: update config and doc for fastboot
|
||||
* [#16567](https://github.com/apache/nuttx/pull/16567) Move assemble soure files out off gnu folder
|
||||
* [#16569](https://github.com/apache/nuttx/pull/16569) Refine vfs source file layout
|
||||
* [#16571](https://github.com/apache/nuttx/pull/16571) remove warnings
|
||||
* [#16574](https://github.com/apache/nuttx/pull/16574) audio/comp: fix build warning caused by invalid return value
|
||||
* [#16578](https://github.com/apache/nuttx/pull/16578) syslog/rpmsg: disable force put char to lower putc
|
||||
* [#16580](https://github.com/apache/nuttx/pull/16580) mcx-nxxx: Add LPI2C driver for mcx-nxxx architecture
|
||||
* [#16582](https://github.com/apache/nuttx/pull/16582) sensors/nau7802: Fix format warning
|
||||
* [#16583](https://github.com/apache/nuttx/pull/16583) Fix i.MX93 ENET1 (EMAC) TXC muxing and RGMII-ID setting
|
||||
* [#16588](https://github.com/apache/nuttx/pull/16588) riscv qemu-rv: fix kernel mapping by enabling CONFIG_MM_KMAP in knsh …
|
||||
* [#16591](https://github.com/apache/nuttx/pull/16591) Update MCUBoot build process for Espressif devices
|
||||
* [#16595](https://github.com/apache/nuttx/pull/16595) risc-v/mmu: Fix map_region() for incorrect page table setup when vadd…
|
||||
* [#16596](https://github.com/apache/nuttx/pull/16596) Fix arch perf events ifdef in alarm
|
||||
* [#16597](https://github.com/apache/nuttx/pull/16597) fix framebuffer config resolution.
|
||||
* [#16604](https://github.com/apache/nuttx/pull/16604) [ESP32S3] Add LCD defconfig
|
||||
* [#16615](https://github.com/apache/nuttx/pull/16615) debug/0 address: Add 0 address access panic configuration
|
||||
* [#16618](https://github.com/apache/nuttx/pull/16618) Enhanced Kasan
|
||||
* [#16619](https://github.com/apache/nuttx/pull/16619) arm64/v8r: support clang compilation
|
||||
* [#16629](https://github.com/apache/nuttx/pull/16629) bugfix: share kernel thread group should not dup files from caller group
|
||||
* [#16635](https://github.com/apache/nuttx/pull/16635) Add a header file as a dependency
|
||||
* [#16651](https://github.com/apache/nuttx/pull/16651) Refactored the btuart_rxwork function to improve data reception stability.
|
||||
* [#16654](https://github.com/apache/nuttx/pull/16654) imx9/lpuart: Fix race condition / regression in imx9_txint
|
||||
* [#16671](https://github.com/apache/nuttx/pull/16671) sem/trywait/atomic: Fix the try wait abort by interrupted caused false failure report.
|
||||
* [#16674](https://github.com/apache/nuttx/pull/16674) xtensa/espressif: Change LEDC implementation to common one
|
||||
* [#16690](https://github.com/apache/nuttx/pull/16690) coredump: Fix missing loglevel to logmask conversion
|
||||
* [#16700](https://github.com/apache/nuttx/pull/16700) sensors/bmi160,270: Fix a bug sensor_time is truncated
|
||||
* [#16718](https://github.com/apache/nuttx/pull/16718) arm64/qemu: decouple qemu board from chip
|
||||
* [#16735](https://github.com/apache/nuttx/pull/16735) espressif: fix MCUBoot OTA on Espressif devices.
|
||||
* [#16754](https://github.com/apache/nuttx/pull/16754) espressif: PCNT: add high and low limit Kconfig options
|
||||
* [#16765](https://github.com/apache/nuttx/pull/16765) nucleo-h743zi: Add ADC2 support and expand ADC channel list
|
||||
* [#16769](https://github.com/apache/nuttx/pull/16769) esp32s3_extraheaps.c: add a missing include for xtensa_imm_initialize
|
||||
* [#16771](https://github.com/apache/nuttx/pull/16771) crypto/cryptosoft: fix aadlen used uninitialized warning
|
||||
* [#16773](https://github.com/apache/nuttx/pull/16773) add esp32s3-devkit:mbedtls kconfig
|
||||
* [#16798](https://github.com/apache/nuttx/pull/16798) arm64: porting mu drv and scmi from arm imx9
|
||||
* [#16807](https://github.com/apache/nuttx/pull/16807) bugix/risc-v/esp32c6: Fix build error of LP_I2C
|
||||
* [#16813](https://github.com/apache/nuttx/pull/16813) Fix compilation errors with c++
|
||||
* [#16819](https://github.com/apache/nuttx/pull/16819) Increase buffer sizes for uORB devices
|
||||
* [#16830](https://github.com/apache/nuttx/pull/16830) h743zi/capture: add doc, defconfig & update make pipeline
|
||||
* [#16839](https://github.com/apache/nuttx/pull/16839) crypto/hmac: Fix typo in function implementation names
|
||||
* [#16843](https://github.com/apache/nuttx/pull/16843) pci: epf test default a function
|
||||
* [#16845](https://github.com/apache/nuttx/pull/16845) sys/socket.h: wrap the outer layer of struct sockaddr_storage with aligned(SS_ALIGNSIZE)
|
||||
* [#16852](https://github.com/apache/nuttx/pull/16852) risc-v/mpfs: usb: don't try nonexistent ep int flags
|
||||
* [#16853](https://github.com/apache/nuttx/pull/16853) Mpfs map mtime in userspace
|
||||
* [#16874](https://github.com/apache/nuttx/pull/16874) Add missing PSE52 interfaces
|
||||
* [#16879](https://github.com/apache/nuttx/pull/16879) include/nuttx/compiler.h:
|
||||
|
||||
Compatibility Concerns
|
||||
* [#16499](https://github.com/apache/nuttx/pull/16499) [BREAKING] fs/vfs: Separate file descriptors from file descriptions
|
||||
|
||||
This PR is a rework of the NuttX file descriptor implementation. The goal is two-fold:
|
||||
|
||||
Improve POSIX compliance. The old implementation tied file description
|
||||
to inode only, not the file struct. POSIX however dictates otherwise.
|
||||
Fix a bug with descriptor duplication (dup2() and dup3()). There is
|
||||
an existing race condition with this POSIX API that currently results
|
||||
in a kernel side crash.
|
||||
The crash occurs when a partially open / closed file descriptor is
|
||||
duplicated. The reason for the crash is that even if the descriptor is
|
||||
closed, the file might still be in use by the kernel (due to e.g. ongoing
|
||||
write to file). The open file data is changed by file_dup3() and this
|
||||
causes a crash in the device / drivers themselves as they lose access to
|
||||
the inode and private data.
|
||||
|
||||
The fix is done by separating struct file into file and file descriptor
|
||||
structs. The file struct can live on even if the descriptor is closed,
|
||||
fixing the crash. This also fixes the POSIX issue, as two descriptors
|
||||
can now point to the same file.
|
||||
|
||||
The implementation of this PR is based on the modifications made in #16361.
|
||||
Thank you @pussuw
|
||||
|
||||
DEPENDS ON: apache/nuttx-apps#3091
|
||||
|
||||
IMPACT
|
||||
|
||||
Remove the FS_REFCOUNT config because reference counting is a very necessary feature
|
||||
that is required in many scenarios to ensure stability.
|
||||
Rename the functions fs_getfilep, fs_putfilep, and fs_reffilep to file_get, file_put,
|
||||
and file_ref respectively, to unify the naming convention to file_xxx, such as file_open,
|
||||
file_ioctl, etc.
|
||||
Introduce a new fd (file descriptor) structure. If multiple file descriptors (fds) are in
|
||||
a dup relationship, they can share the same file entity to implement the dup functionality.
|
||||
Modify the functions nx_close_from_tcb, nx_open_from_tcb, nx_dup2_from_tcb,
|
||||
and nx_dup3_from_tcb to fdlist_open, fdlist_close, fdlist_dup2, and fdlist_dup3 respectively,
|
||||
to uniformly operate on file descriptors using fdlist.
|
||||
|
|
@ -2,174 +2,5 @@
|
|||
``ntpclient`` NTP client
|
||||
========================
|
||||
|
||||
The NTP (Network Time Protocol) client is a network utility that synchronizes
|
||||
the system clock with time servers over the Internet. This implementation
|
||||
provides a minimal but functional NTP client for NuttX.
|
||||
|
||||
What is NTP?
|
||||
============
|
||||
|
||||
The Network Time Protocol (NTP) is a networking protocol designed to
|
||||
synchronize clocks of computer systems over packet-switched, variable-latency
|
||||
data networks. NTP is one of the oldest Internet protocols still in use,
|
||||
originally designed by David L. Mills of the University of Delaware.
|
||||
|
||||
Key features of NTP:
|
||||
|
||||
- **High Precision**: NTP can achieve sub-millisecond accuracy on local area
|
||||
networks and typically 10-100 millisecond accuracy over the Internet
|
||||
- **Robust Algorithm**: Uses sophisticated algorithms to filter out network
|
||||
jitter and select the best time sources
|
||||
- **Hierarchical Structure**: Uses a stratum system where stratum 0 devices
|
||||
are atomic clocks, stratum 1 servers sync with stratum 0, and so on
|
||||
- **Fault Tolerance**: Can handle multiple time sources and automatically
|
||||
switch between them
|
||||
|
||||
NTP Protocol Overview
|
||||
=====================
|
||||
|
||||
NTP uses UDP port 123 and follows a client-server model. The protocol
|
||||
exchanges timestamps to calculate:
|
||||
|
||||
- **Offset**: The difference between the client's clock and the server's clock
|
||||
- **Delay**: The round-trip network delay
|
||||
- **Dispersion**: The maximum error due to clock frequency tolerance
|
||||
|
||||
The NTP packet format (version 3) includes:
|
||||
|
||||
- **Leap Indicator**: Warns of an impending leap second
|
||||
- **Version Number**: NTP version (3 in this implementation)
|
||||
- **Mode**: Client, server, broadcast, etc.
|
||||
- **Stratum**: Clock level (0-15)
|
||||
- **Poll Interval**: Maximum interval between successive messages
|
||||
- **Precision**: Clock precision
|
||||
- **Root Delay/Dispersion**: Total delay and dispersion to the reference clock
|
||||
- **Reference Identifier**: Identifies the reference source
|
||||
- **Reference Timestamp**: Time when the system clock was last set
|
||||
- **Originate Timestamp**: Time when the request departed the client
|
||||
- **Receive Timestamp**: Time when the request arrived at the server
|
||||
- **Transmit Timestamp**: Time when the reply departed the server
|
||||
|
||||
Implementation Details
|
||||
======================
|
||||
|
||||
The NuttX NTP client implementation consists of several key components:
|
||||
|
||||
Source Code Structure
|
||||
---------------------
|
||||
|
||||
**ntpclient.c** - Main implementation file containing:
|
||||
|
||||
- **Daemon Management**: Functions to start, stop, and manage the NTP daemon
|
||||
- **Time Synchronization**: Core algorithms for calculating clock offset and delay
|
||||
- **Network Communication**: UDP socket handling and NTP packet exchange
|
||||
- **Sample Collection**: Gathering multiple time samples for statistical filtering
|
||||
|
||||
**ntpv3.h** - NTP version 3 packet format definitions:
|
||||
|
||||
- **ntp_datagram_s**: Complete NTP packet structure
|
||||
- **ntp_timestamp_s**: 64-bit NTP timestamp format
|
||||
- **Protocol Constants**: NTP version, modes, and stratum definitions
|
||||
|
||||
Key Functions
|
||||
-------------
|
||||
|
||||
- **ntpc_start_with_list()**: Starts the NTP daemon with a list of servers
|
||||
- **ntpc_start()**: Starts the NTP daemon with default configuration
|
||||
- **ntpc_stop()**: Stops the running NTP daemon
|
||||
- **ntpc_status()**: Retrieves current synchronization status and samples
|
||||
- **ntpc_daemon()**: Main daemon loop that:
|
||||
|
||||
- Connects to configured NTP servers
|
||||
- Sends NTP requests and processes responses
|
||||
- Calculates clock offset and delay
|
||||
- Applies time corrections to the system clock
|
||||
- Continues polling at configured intervals
|
||||
|
||||
- **ntpc_get_ntp_sample()**: Performs a single NTP transaction:
|
||||
|
||||
- Creates UDP socket to NTP server
|
||||
- Sends NTP request packet with current timestamp
|
||||
- Receives and validates NTP response
|
||||
- Calculates offset and delay using NTP algorithms
|
||||
|
||||
- **ntpc_calculate_offset()**: Implements the NTP clock filter algorithm
|
||||
|
||||
- Uses four timestamps, calculates offset and delay
|
||||
- Applies statistical filtering to reduce jitter
|
||||
|
||||
- **ntpc_settime()**: Applies time correction to system clock:
|
||||
|
||||
- Uses calculated offset to adjust system time
|
||||
- Handles both positive and negative time adjustments
|
||||
- Maintains monotonic clock consistency
|
||||
|
||||
Configuration Options
|
||||
=====================
|
||||
|
||||
The NTP client can be configured through Kconfig options:
|
||||
|
||||
- **CONFIG_NETUTILS_NTPCLIENT_SERVER**: List of NTP server hostnames
|
||||
- **CONFIG_NETUTILS_NTPCLIENT_PORTNO**: NTP server port (default: 123)
|
||||
- **CONFIG_NETUTILS_NTPCLIENT_STACKSIZE**: Daemon task stack size
|
||||
- **CONFIG_NETUTILS_NTPCLIENT_SERVERPRIO**: Daemon task priority
|
||||
- **CONFIG_NETUTILS_NTPCLIENT_STAY_ON**: Keep polling continuously
|
||||
- **CONFIG_NETUTILS_NTPCLIENT_POLLDELAYSEC**: Polling interval in seconds
|
||||
- **CONFIG_NETUTILS_NTPCLIENT_NUM_SAMPLES**: Number of samples for filtering
|
||||
- **CONFIG_NETUTILS_NTPCLIENT_TIMEOUT_MS**: Network timeout in milliseconds
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
The NTP client is typically used through the system commands:
|
||||
|
||||
.. note:: The NTP client functionality requires enabling the :code:`SYSTEM_NTPC` option in your configuration.
|
||||
Make sure to select this option in menuconfig or your Kconfig fragment before building.
|
||||
|
||||
- **ntpcstart**: Start the NTP daemon
|
||||
- **ntpcstop**: Stop the NTP daemon
|
||||
- **ntpcstatus**: Display synchronization status
|
||||
|
||||
Example workflow:
|
||||
|
||||
1. Configure network connectivity
|
||||
2. Start NTP client: ``ntpcstart``
|
||||
3. Check status: ``ntpcstatus``
|
||||
4. Verify time: ``date`` command
|
||||
5. Stop when needed: ``ntpcstop``
|
||||
|
||||
The client will automatically:
|
||||
- Connect to configured NTP servers
|
||||
- Exchange time information
|
||||
- Calculate and apply clock corrections
|
||||
- Continue periodic synchronization
|
||||
|
||||
Limitations
|
||||
===========
|
||||
|
||||
This is a minimal NTP client implementation with some limitations:
|
||||
|
||||
- **No Authentication**: Does not support NTP authentication (MD5/SHA1)
|
||||
- **Basic Filtering**: Uses simple statistical filtering, not full NTP algorithms
|
||||
- **Single Reference**: Does not implement full NTP reference clock selection
|
||||
- **No Leap Seconds**: Does not handle leap second announcements
|
||||
- **Limited Error Handling**: Basic error recovery and retry mechanisms
|
||||
|
||||
Despite these limitations, the implementation provides sufficient accuracy
|
||||
for most embedded applications requiring network time synchronization.
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
The NTP client requires:
|
||||
|
||||
- **CONFIG_NET**: Network support
|
||||
- **CONFIG_NET_UDP**: UDP protocol support
|
||||
- **CONFIG_NET_SOCKOPTS**: Socket options support
|
||||
- **CONFIG_LIBC_NETDB**: DNS resolution (recommended)
|
||||
- **CONFIG_HAVE_LONG_LONG**: 64-bit integer support
|
||||
|
||||
For best results, ensure:
|
||||
- Stable network connectivity
|
||||
- Access to reliable NTP servers
|
||||
- Sufficient system resources for daemon operation
|
||||
This is a fragmentary NTP client. It neither well-tested nor
|
||||
mature nor complete at this point in time.
|
||||
|
|
|
|||
|
|
@ -1,106 +1,3 @@
|
|||
============================
|
||||
``ntpc`` NTP Daemon Commands
|
||||
============================
|
||||
|
||||
This example demonstrates how to use the NTP client to synchronize system time
|
||||
and retrieve the current time and date. It uses the Network Time Protocol (NTP)
|
||||
to provide accurate time synchronization.
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The ntpc example:
|
||||
|
||||
- Uses the NTP client library to synchronize system time
|
||||
|
||||
- Connects to NTP servers (default: pool.ntp.org)
|
||||
|
||||
- Starts the NTP client in the background for continuous synchronization
|
||||
|
||||
- Provides commands to check status and stop the NTP client
|
||||
|
||||
- Allows management of the NTP client through command line options
|
||||
|
||||
Note: This example assumes that network connectivity is already established.
|
||||
|
||||
The NTP (Network Time Protocol) is a sophisticated protocol that provides
|
||||
high-precision time synchronization and is the standard for network time services.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
This example requires the following NuttX configuration options:
|
||||
|
||||
- CONFIG_NET: Enable networking support
|
||||
- CONFIG_NET_UDP: Enable UDP support
|
||||
- CONFIG_NETUTILS_NTPCLIENT: Enable NTP client support
|
||||
- CONFIG_SYSTEM_NTPC: Enable this example
|
||||
|
||||
Additional configuration options:
|
||||
- CONFIG_NETUTILS_NTPCLIENT_SERVER: NTP server hostname (default: "pool.ntp.org")
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
1. Configure your NuttX build with networking support
|
||||
2. Ensure network connectivity is established (e.g., via NSH network commands)
|
||||
3. Build and flash the image to your target board
|
||||
4. Run the commands:
|
||||
- ``ntpcstart``, ``ntpcstop``, ``ntpcstatus``
|
||||
|
||||
**Available Commands:**
|
||||
|
||||
- ``ntpcstart`` - Start NTP client in background
|
||||
|
||||
- ``ntpcstop`` - Stop the NTP client
|
||||
|
||||
- ``ntpcstatus`` - Display NTP client status information
|
||||
|
||||
Expected Output
|
||||
---------------
|
||||
|
||||
**Start NTP client (ntpcstart):**
|
||||
::
|
||||
|
||||
Starting NTP client...
|
||||
Using NTP servers: pool.ntp.org
|
||||
NTP client started successfully (task ID: 123)
|
||||
NTP client is now running in the background
|
||||
|
||||
**Stop NTP client (ntpcstop):**
|
||||
::
|
||||
|
||||
Stopping NTP client...
|
||||
Stopped the NTP daemon
|
||||
|
||||
**Show NTP status (ntpcstatus):**
|
||||
::
|
||||
|
||||
The number of last samples: 3
|
||||
[0] srv <ip> offset -0.033502142 delay 0.249973549
|
||||
[1] srv <ip> offset -0.020698070 delay 0.029928000
|
||||
[2] srv <ip> offset -0.015448935 delay 0.019815119
|
||||
|
||||
**Verify using date command:**
|
||||
|
||||
Given network connectivity is available, executing `date` should
|
||||
give the proper time and date.
|
||||
::
|
||||
|
||||
nsh> ntpcstart
|
||||
Starting NTP client...
|
||||
Using NTP servers: 0.pool.ntp.org;1.pool.ntp.org;2.pool.ntp.org
|
||||
NTP client started successfully (task ID: 10)
|
||||
NTP client is now running in the background
|
||||
nsh> date
|
||||
Fri, Sep 05 18:49:37 2025
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
- This example requires internet connectivity
|
||||
- Network must be configured and connected before running this example
|
||||
- NTP servers must be accessible (default: pool.ntp.org)
|
||||
- UDP port 123 (NTP) must not be blocked by firewalls
|
||||
- The example includes error handling for network failures
|
||||
- NTP provides more accurate time synchronization than simple time protocols
|
||||
|
|
|
|||
|
|
@ -265,21 +265,6 @@ squash before submitting the Pull Request:
|
|||
happy, they may suggest squashing and merging again to make a single commit. In this case you would repeat steps
|
||||
1 through 6.
|
||||
|
||||
.. note::
|
||||
|
||||
NuttX uses a ``CODEOWNERS`` file to help track which users are "experts"
|
||||
on certain NuttX subsystems. Sometimes, this will result in certain
|
||||
reviewers being automatically requested to review your PR if you have
|
||||
modified a file they are marked as a "code owner" for. This is just to
|
||||
help contributors get more relevant reviews from someone who knows the
|
||||
subject area.
|
||||
|
||||
If you've created a new file, let's say for a driver, you can add yourself
|
||||
as a code owner for that file by modifying ``.github/CODEOWNERS``. Read
|
||||
the `GitHub documentation for CODEOWNERS
|
||||
<https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners>`_
|
||||
for more information.
|
||||
|
||||
How to Include the Suggestions on Your Pull Request?
|
||||
====================================================
|
||||
|
||||
|
|
|
|||
|
|
@ -90,14 +90,3 @@ Configures the NuttShell (nsh) located at examples/nsh. This NSH
|
|||
configuration is focused on low level, command-line driver testing.
|
||||
Built-in applications are supported, but none are enabled. This
|
||||
configuration does not support a network.
|
||||
|
||||
usbdisk
|
||||
-------
|
||||
|
||||
This board profile allows to use USB Thumb driver connected to USB port.
|
||||
Typically the device will be recognized and created at /dev/sda. The
|
||||
user could mount it this way::
|
||||
|
||||
nsh> mount -t vfat /dev/sda /mnt
|
||||
|
||||
Note: It is assumed that the USB Flash drive was formatted as FAT32.
|
||||
|
|
|
|||
|
|
@ -153,6 +153,21 @@ You can check that the sensor is working by using the ``bmp180`` application::
|
|||
Pressure value = 91526
|
||||
Pressure value = 91525
|
||||
|
||||
buttons
|
||||
-------
|
||||
|
||||
This configuration shows the use of the buttons subsystem. It can be used by executing
|
||||
the ``buttons`` application and pressing the ``BOOT`` button on the board::
|
||||
|
||||
nsh> buttons
|
||||
buttons_main: Starting the button_daemon
|
||||
buttons_main: button_daemon started
|
||||
button_daemon: Running
|
||||
button_daemon: Opening /dev/buttons
|
||||
button_daemon: Supported BUTTONs 0x01
|
||||
nsh> Sample = 1
|
||||
Sample = 0
|
||||
|
||||
coremark
|
||||
--------
|
||||
|
||||
|
|
|
|||
|
|
@ -600,115 +600,6 @@ to ``Application image secondary slot``.
|
|||
**After disabling UART Download Mode you will not be able to flash other images through UART.**
|
||||
|
||||
|
||||
Flash Allocation for MCUBoot
|
||||
----------------------------
|
||||
|
||||
When MCUBoot is enabled on ESP32-C3, the flash memory is organized as follows
|
||||
based on the default KConfig values:
|
||||
|
||||
**Flash Layout (MCUBoot Enabled)**
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 40 20 20
|
||||
:align: left
|
||||
|
||||
* - Region
|
||||
- Offset
|
||||
- Size
|
||||
* - Bootloader
|
||||
- 0x000000
|
||||
- 64KB
|
||||
* - E-Fuse Virtual (see Note)
|
||||
- 0x010000
|
||||
- 64KB
|
||||
* - Primary Application Slot (/dev/ota0)
|
||||
- 0x020000
|
||||
- 1MB
|
||||
* - Secondary Application Slot (/dev/ota1)
|
||||
- 0x120000
|
||||
- 1MB
|
||||
* - Scratch Partition (/dev/otascratch)
|
||||
- 0x220000
|
||||
- 256KB
|
||||
* - Storage MTD (optional)
|
||||
- 0x260000
|
||||
- 1MB
|
||||
* - Available Flash
|
||||
- 0x360000+
|
||||
- Remaining
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<div style="clear: both"></div>
|
||||
|
||||
|
||||
**Note**: The E-Fuse Virtual region is optional and only used when
|
||||
``ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH`` is enabled. However, this 64KB
|
||||
location is always allocated in the memory layout to prevent accidental
|
||||
erasure during board flashing operations, ensuring data preservation if
|
||||
virtual E-Fuses are later enabled.
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
Memory Map (Addresses in hex):
|
||||
|
||||
0x000000 ┌─────────────────────────────┐
|
||||
│ │
|
||||
│ MCUBoot Bootloader │
|
||||
│ (64KB) │
|
||||
│ │
|
||||
0x010000 ├─────────────────────────────┤
|
||||
│ E-Fuse Virtual │
|
||||
│ (64KB) │
|
||||
0x020000 ├─────────────────────────────┤
|
||||
│ │
|
||||
│ Primary App Slot │
|
||||
│ (1MB) │
|
||||
│ /dev/ota0 │
|
||||
│ │
|
||||
0x120000 ├─────────────────────────────┤
|
||||
│ │
|
||||
│ Secondary App Slot │
|
||||
│ (1MB) │
|
||||
│ /dev/ota1 │
|
||||
│ │
|
||||
0x220000 ├─────────────────────────────┤
|
||||
│ │
|
||||
│ Scratch Partition │
|
||||
│ (256KB) │
|
||||
│ /dev/otascratch │
|
||||
│ │
|
||||
0x260000 ├─────────────────────────────┤
|
||||
│ │
|
||||
│ Storage MTD (optional) │
|
||||
│ (1MB) │
|
||||
│ │
|
||||
0x360000 ├─────────────────────────────┤
|
||||
│ │
|
||||
│ Available Flash │
|
||||
│ (Remaining) │
|
||||
│ │
|
||||
└─────────────────────────────┘
|
||||
|
||||
The key KConfig options that control this layout:
|
||||
|
||||
- ``ESPRESSIF_OTA_PRIMARY_SLOT_OFFSET`` (default: 0x20000)
|
||||
- ``ESPRESSIF_OTA_SECONDARY_SLOT_OFFSET`` (default: 0x120000)
|
||||
- ``ESPRESSIF_OTA_SLOT_SIZE`` (default: 0x100000)
|
||||
- ``ESPRESSIF_OTA_SCRATCH_OFFSET`` (default: 0x220000)
|
||||
- ``ESPRESSIF_OTA_SCRATCH_SIZE`` (default: 0x40000)
|
||||
- ``ESPRESSIF_STORAGE_MTD_OFFSET`` (default: 0x260000 when MCUBoot enabled)
|
||||
- ``ESPRESSIF_STORAGE_MTD_SIZE`` (default: 0x100000)
|
||||
|
||||
For MCUBoot operation:
|
||||
|
||||
- The **Primary Slot** contains the currently running application
|
||||
- The **Secondary Slot** receives OTA updates
|
||||
- The **Scratch Partition** is used by MCUBoot for image swapping during updates
|
||||
- MCUBoot manages image validation, confirmation, and rollback functionality
|
||||
|
||||
|
||||
_`Managing esptool on virtual environment`
|
||||
==========================================
|
||||
|
||||
|
|
|
|||
|
|
@ -120,6 +120,21 @@ You can check that the sensor is working by using the ``bmp180`` application::
|
|||
Pressure value = 91526
|
||||
Pressure value = 91525
|
||||
|
||||
buttons
|
||||
-------
|
||||
|
||||
This configuration shows the use of the buttons subsystem. It can be used by executing
|
||||
the ``buttons`` application and pressing the ``BOOT`` button on the board::
|
||||
|
||||
nsh> buttons
|
||||
buttons_main: Starting the button_daemon
|
||||
buttons_main: button_daemon started
|
||||
button_daemon: Running
|
||||
button_daemon: Opening /dev/buttons
|
||||
button_daemon: Supported BUTTONs 0x01
|
||||
nsh> Sample = 1
|
||||
Sample = 0
|
||||
|
||||
capture
|
||||
--------
|
||||
|
||||
|
|
|
|||
|
|
@ -99,6 +99,21 @@ You can check that the sensor is working by using the ``bmp180`` application::
|
|||
Pressure value = 91526
|
||||
Pressure value = 91525
|
||||
|
||||
buttons
|
||||
-------
|
||||
|
||||
This configuration shows the use of the buttons subsystem. It can be used by executing
|
||||
the ``buttons`` application and pressing the ``BOOT`` button on the board::
|
||||
|
||||
nsh> buttons
|
||||
buttons_main: Starting the button_daemon
|
||||
buttons_main: button_daemon started
|
||||
button_daemon: Running
|
||||
button_daemon: Opening /dev/buttons
|
||||
button_daemon: Supported BUTTONs 0x01
|
||||
nsh> Sample = 1
|
||||
Sample = 0
|
||||
|
||||
coremark
|
||||
--------
|
||||
|
||||
|
|
|
|||
|
|
@ -486,114 +486,6 @@ Finally, the image is loaded but not confirmed.
|
|||
To make sure it won't rollback to the previous image, you must confirm with ``mcuboot_confirm`` and reboot the board.
|
||||
The OTA is now complete.
|
||||
|
||||
Flash Allocation for MCUBoot
|
||||
----------------------------
|
||||
|
||||
When MCUBoot is enabled on ESP32-C6, the flash memory is organized as follows
|
||||
based on the default KConfig values:
|
||||
|
||||
**Flash Layout (MCUBoot Enabled)**
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 40 20 20
|
||||
:align: left
|
||||
|
||||
* - Region
|
||||
- Offset
|
||||
- Size
|
||||
* - Bootloader
|
||||
- 0x000000
|
||||
- 64KB
|
||||
* - E-Fuse Virtual (see Note)
|
||||
- 0x010000
|
||||
- 64KB
|
||||
* - Primary Application Slot (/dev/ota0)
|
||||
- 0x020000
|
||||
- 1MB
|
||||
* - Secondary Application Slot (/dev/ota1)
|
||||
- 0x120000
|
||||
- 1MB
|
||||
* - Scratch Partition (/dev/otascratch)
|
||||
- 0x220000
|
||||
- 256KB
|
||||
* - Storage MTD (optional)
|
||||
- 0x260000
|
||||
- 1MB
|
||||
* - Available Flash
|
||||
- 0x360000+
|
||||
- Remaining
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<div style="clear: both"></div>
|
||||
|
||||
|
||||
**Note**: The E-Fuse Virtual region is optional and only used when
|
||||
``ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH`` is enabled. However, this 64KB
|
||||
location is always allocated in the memory layout to prevent accidental
|
||||
erasure during board flashing operations, ensuring data preservation if
|
||||
virtual E-Fuses are later enabled.
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
Memory Map (Addresses in hex):
|
||||
|
||||
0x000000 ┌─────────────────────────────┐
|
||||
│ │
|
||||
│ MCUBoot Bootloader │
|
||||
│ (64KB) │
|
||||
│ │
|
||||
0x010000 ├─────────────────────────────┤
|
||||
│ E-Fuse Virtual │
|
||||
│ (64KB) │
|
||||
0x020000 ├─────────────────────────────┤
|
||||
│ │
|
||||
│ Primary App Slot │
|
||||
│ (1MB) │
|
||||
│ /dev/ota0 │
|
||||
│ │
|
||||
0x120000 ├─────────────────────────────┤
|
||||
│ │
|
||||
│ Secondary App Slot │
|
||||
│ (1MB) │
|
||||
│ /dev/ota1 │
|
||||
│ │
|
||||
0x220000 ├─────────────────────────────┤
|
||||
│ │
|
||||
│ Scratch Partition │
|
||||
│ (256KB) │
|
||||
│ /dev/otascratch │
|
||||
│ │
|
||||
0x260000 ├─────────────────────────────┤
|
||||
│ │
|
||||
│ Storage MTD (optional) │
|
||||
│ (1MB) │
|
||||
│ │
|
||||
0x360000 ├─────────────────────────────┤
|
||||
│ │
|
||||
│ Available Flash │
|
||||
│ (Remaining) │
|
||||
│ │
|
||||
└─────────────────────────────┘
|
||||
|
||||
The key KConfig options that control this layout:
|
||||
|
||||
- ``ESPRESSIF_OTA_PRIMARY_SLOT_OFFSET`` (default: 0x20000)
|
||||
- ``ESPRESSIF_OTA_SECONDARY_SLOT_OFFSET`` (default: 0x120000)
|
||||
- ``ESPRESSIF_OTA_SLOT_SIZE`` (default: 0x100000)
|
||||
- ``ESPRESSIF_OTA_SCRATCH_OFFSET`` (default: 0x220000)
|
||||
- ``ESPRESSIF_OTA_SCRATCH_SIZE`` (default: 0x40000)
|
||||
- ``ESPRESSIF_STORAGE_MTD_OFFSET`` (default: 0x260000 when MCUBoot enabled)
|
||||
- ``ESPRESSIF_STORAGE_MTD_SIZE`` (default: 0x100000)
|
||||
|
||||
For MCUBoot operation:
|
||||
|
||||
- The **Primary Slot** contains the currently running application
|
||||
- The **Secondary Slot** receives OTA updates
|
||||
- The **Scratch Partition** is used by MCUBoot for image swapping during updates
|
||||
- MCUBoot manages image validation, confirmation, and rollback functionality
|
||||
|
||||
_`Managing esptool on virtual environment`
|
||||
==========================================
|
||||
|
||||
|
|
|
|||
|
|
@ -119,6 +119,21 @@ You can check that the sensor is working by using the ``bmp180`` application::
|
|||
Pressure value = 91526
|
||||
Pressure value = 91525
|
||||
|
||||
buttons
|
||||
-------
|
||||
|
||||
This configuration shows the use of the buttons subsystem. It can be used by executing
|
||||
the ``buttons`` application and pressing the ``BOOT`` button on the board::
|
||||
|
||||
nsh> buttons
|
||||
buttons_main: Starting the button_daemon
|
||||
buttons_main: button_daemon started
|
||||
button_daemon: Running
|
||||
button_daemon: Opening /dev/buttons
|
||||
button_daemon: Supported BUTTONs 0x01
|
||||
nsh> Sample = 1
|
||||
Sample = 0
|
||||
|
||||
coremark
|
||||
--------
|
||||
|
||||
|
|
|
|||
|
|
@ -116,37 +116,6 @@ Notifier Chain Interfaces
|
|||
:param events: Set of events to wait, 0 will indicate wait from any events
|
||||
:param eflags: Events flags
|
||||
|
||||
.. c:function:: nxevent_mask_t nxevent_clear(FAR nxevent_t *event, nxevent_mask_t mask)
|
||||
|
||||
This function is used to clear specific bits from the event mask of the given event object.
|
||||
|
||||
:param event: Address of the event object
|
||||
:param mask: Bit mask specifying which event flags should be cleared
|
||||
|
||||
.. c:function:: nxevent_mask_t nxevent_tickwait_wait(FAR nxevent_t *event, FAR nxevent_wait_t *wait, nxevent_mask_t events, nxevent_flags_t eflags, uint32_t delay);
|
||||
|
||||
Wait for all of the specified events for the specified tick time.
|
||||
|
||||
This routine is functionally identical to nxevent_tickwait, except that the wait object is explicitly provided by the user.
|
||||
In nxevent_tickwait, the wait object is allocated as a temporary variable on the event-wait thread's stack, and the user has no visibility or control over it.
|
||||
Because this object is accessed by both the event-wait thread and the event-post thread, such an arrangement may lead to safety concerns.
|
||||
To address this, the new function allows the user to supply the wait object directly, providing greater control and improving safety.
|
||||
|
||||
:param event: Address of the event object
|
||||
:param wait: Address of the event wait object
|
||||
:param events: Set of events to wait, 0 will indicate wait from any events
|
||||
:param eflags: Events flags
|
||||
:param delay: Ticks to wait from the start time until the event is posted,
|
||||
If ticks is zero, then this function is equivalent to nxevent_trywait().
|
||||
|
||||
.. c:function:: nxevent_mask_t nxevent_getmask(FAR nxevent_t *event)
|
||||
|
||||
This function returns the event mask value of the current event object.
|
||||
|
||||
:param event: Location to return the event group reference.
|
||||
|
||||
:return: The event mask value of the current event object.
|
||||
|
||||
.. c:function:: int nxevent_open(FAR nxevent_t **event, FAR const char *name, int oflags, ...)
|
||||
|
||||
This function establishes a connection between named event groups and a
|
||||
|
|
|
|||
|
|
@ -108,11 +108,6 @@ result.
|
|||
Semaphore does not support priority inheritance by default. If you need to
|
||||
use a semaphore as a mutex you need to change its default behavior.
|
||||
|
||||
Each semaphore is assigned a default maximum value defined by SEM_VALUE_MAX.
|
||||
If ``CONFIG_CUSTOM_SEMAPHORE_MAXVALUE`` is enabled, applications may override this limit.
|
||||
In such cases, the function ``nxsem_setmaxvalue()`` can be used to specify a custom maximum value
|
||||
for an individual semaphore.
|
||||
|
||||
In user space, it is recommended to use pthread_mutex instead of
|
||||
semaphore for resource protection
|
||||
|
||||
|
|
|
|||
1917
Kconfig.debug
Normal file
1917
Kconfig.debug
Normal file
File diff suppressed because it is too large
Load diff
72
Kconfig.license
Normal file
72
Kconfig.license
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
|
||||
|
||||
config ALLOW_BSD_COMPONENTS
|
||||
bool "Use components that have BSD licenses"
|
||||
default n
|
||||
---help---
|
||||
When this option is enabled the project will allow the use
|
||||
of components that have BSD licenses.
|
||||
|
||||
NOTE: Please check that the license for each enabled
|
||||
component matches your project license.
|
||||
|
||||
NOTE: If this option is not set the following components
|
||||
are not included in the setup menu:
|
||||
Crypto
|
||||
AES cypher support
|
||||
FS
|
||||
NFS client file system
|
||||
SPIFFS File System
|
||||
Wireless
|
||||
Bluetooth LE support
|
||||
|
||||
config ALLOW_GPL_COMPONENTS
|
||||
bool "Use components that have GPL/LGPL licenses"
|
||||
default n
|
||||
---help---
|
||||
When this option is enabled the project will allow the use
|
||||
of components that have GPL/LGPL licenses.
|
||||
|
||||
NOTE: Please check that the license for each enabled
|
||||
component matches your project license.
|
||||
|
||||
config ALLOW_MIT_COMPONENTS
|
||||
bool "Use components that have MIT licenses"
|
||||
default n
|
||||
---help---
|
||||
When this option is enabled the project will allow the use
|
||||
of components that have MIT licenses.
|
||||
|
||||
NOTE: Please check that the license for each enabled
|
||||
component matches your project license.
|
||||
|
||||
config ALLOW_BSDNORDIC_COMPONENTS
|
||||
bool "Use components that have 5-Clause Nordic licenses"
|
||||
depends on ARCH_CHIP_NRF52 || ARCH_CHIP_NRF53 || ARCH_CHIP_NRF91
|
||||
default n
|
||||
---help---
|
||||
When this option is enabled the project will allow the use
|
||||
of components that have 5-Clause Nordic licenses.
|
||||
|
||||
NOTE: Please check that the license for each enabled
|
||||
component matches your project license.
|
||||
|
||||
config ALLOW_ECLIPSE_COMPONENTS
|
||||
bool "Use components that have Eclipse Public Licenses"
|
||||
default n
|
||||
---help---
|
||||
When this option is enabled the project will allow the use
|
||||
of components that have EPL licenses.
|
||||
|
||||
NOTE: Please check that the license for each enabled
|
||||
component matches your project license.
|
||||
|
||||
config ALLOW_ICS_COMPONENTS
|
||||
bool "Use components that have ICS license"
|
||||
default n
|
||||
---help---
|
||||
When this option is enabled the project will allow the use
|
||||
of components that have ICS licenses.
|
||||
|
||||
NOTE: Please check that the license for each enabled
|
||||
component matches your project license.
|
||||
506
Kconfig.setup
Normal file
506
Kconfig.setup
Normal file
|
|
@ -0,0 +1,506 @@
|
|||
menu "Build Setup"
|
||||
|
||||
config EXPERIMENTAL
|
||||
bool "Show experimental options"
|
||||
---help---
|
||||
Some features and drivers are considered "experimental" or
|
||||
development/work-in-progress status. By default, these options are
|
||||
hidden in the Kconfig menus. Enabling "Show experimental options"
|
||||
makes these options visible and makes it possible to enable them.
|
||||
|
||||
config DEFAULT_SMALL
|
||||
bool "Default to smallest size"
|
||||
default n
|
||||
---help---
|
||||
When options are present, the default value for certain options will
|
||||
be the one the results in the smallest size (at a loss of features).
|
||||
The default is a fuller feature set at a larger size.
|
||||
|
||||
NOTE: This option does not prevent you from overriding the default
|
||||
to select another alternative. Nor does it affect the settings that
|
||||
have already been selected in your configuration file. This applies
|
||||
only to new settings that require a default value.
|
||||
|
||||
choice
|
||||
prompt "Build Host Platform"
|
||||
default HOST_LINUX
|
||||
|
||||
config HOST_LINUX
|
||||
bool "Linux"
|
||||
|
||||
config HOST_MACOS
|
||||
bool "macOS"
|
||||
|
||||
endchoice # Build Host Platform
|
||||
|
||||
choice
|
||||
prompt "Windows Build Environment"
|
||||
default WINDOWS_MSYS
|
||||
depends on HOST_WINDOWS
|
||||
|
||||
config WINDOWS_MSYS
|
||||
bool "MSYS or MSYS2"
|
||||
select TOOLCHAIN_WINDOWS
|
||||
---help---
|
||||
Build natively in a Cygwin environment with POSIX style paths (like
|
||||
/cygdrive/c/cygwin/home)
|
||||
|
||||
endchoice # Windows Build Environment
|
||||
|
||||
menu "Build Configuration"
|
||||
|
||||
config BASE_DEFCONFIG
|
||||
string "Base Configuration"
|
||||
default ""
|
||||
---help---
|
||||
This will be automatically be updated by the configuration
|
||||
script. This is the base configuration file that was used to create the
|
||||
current configuration. It is useful for getting the current configuration
|
||||
on runtime.
|
||||
|
||||
config MODULES
|
||||
bool
|
||||
option modules
|
||||
---help---
|
||||
Automatically selected if KERNEL build is selected.
|
||||
This selection marks the implementation of Kconfig
|
||||
to enable the module build function, and is used to
|
||||
enable 'm' in the triate state. Its semantics are
|
||||
consistent with Kernel. This selection also effects
|
||||
the behavior of the 'make export' target and currently
|
||||
has no effect unless you wish to build loadable applications
|
||||
in a FLAT build.
|
||||
|
||||
choice
|
||||
prompt "Memory organization"
|
||||
default BUILD_FLAT
|
||||
|
||||
config BUILD_FLAT
|
||||
bool "Flat address space"
|
||||
---help---
|
||||
Build NuttX as one large, executable "blob". All of the code
|
||||
within the blob can interrupt with all of the other code within
|
||||
the blob. There are no special privileges, protections, or
|
||||
restraints.
|
||||
|
||||
config BUILD_PROTECTED
|
||||
bool "NuttX protected build"
|
||||
depends on ARCH_USE_MPU
|
||||
select LIB_SYSCALL
|
||||
select BUILD_2PASS
|
||||
---help---
|
||||
Builds NuttX and selected applications as two "blobs": A protected,
|
||||
privileged kernel blob and a separate unprivileged, user blob. This
|
||||
requires use of the two pass build with each blob being build on
|
||||
each pass.
|
||||
|
||||
NOTE: This build configuration requires that the platform support
|
||||
a memory protection unit (MPU). Support, however, may not be
|
||||
implemented on all platforms.
|
||||
|
||||
config BUILD_KERNEL
|
||||
bool "NuttX kernel build"
|
||||
depends on ARCH_USE_MMU && ARCH_ADDRENV
|
||||
select LIB_SYSCALL
|
||||
select MODULES
|
||||
---help---
|
||||
Builds NuttX as a separately compiled kernel. No applications are
|
||||
built. All user applications must reside in a file system where
|
||||
they can be loaded into memory for execution.
|
||||
|
||||
NOTE: This build configuration requires that the platform support
|
||||
a memory management unit (MMU) and address environments. Support,
|
||||
however, may not be implemented on all platforms.
|
||||
|
||||
endchoice # Build configuration
|
||||
|
||||
config BUILD_PIC
|
||||
bool "NuttX PIC build"
|
||||
default n
|
||||
---help---
|
||||
Builds NuttX with position-independent code (PIC). This will allow
|
||||
load NuttX into memory at any address and run it.
|
||||
|
||||
endmenu # Build Setup
|
||||
|
||||
menu "Customize Header Files"
|
||||
|
||||
config ARCH_HAVE_STDINT_H
|
||||
bool
|
||||
default n
|
||||
---help---
|
||||
Selected by architecture specific logic if the architecture provides
|
||||
a stdint.h header file.
|
||||
|
||||
config ARCH_STDINT_H
|
||||
bool "stdint.h"
|
||||
default n
|
||||
depends on ARCH_HAVE_STDINT_H
|
||||
---help---
|
||||
The stdint.h header file can be found at nuttx/include/stdint.h.
|
||||
However, that header includes logic to redirect the inclusion of an
|
||||
architecture specific header file like:
|
||||
|
||||
#ifdef CONFIG_ARCH_STDINT_H
|
||||
# include <arch/stdint.h>
|
||||
#else
|
||||
...
|
||||
#endif
|
||||
|
||||
Recall that that include path, include/arch, is a symbolic link and
|
||||
will refer to a version of stdint.h at nuttx/arch/<architecture>/include/stdint.h.
|
||||
|
||||
config ARCH_HAVE_STDBOOL_H
|
||||
bool
|
||||
default n
|
||||
---help---
|
||||
Selected by architecture specific logic if the architecture provides
|
||||
a stdbool.h header file.
|
||||
|
||||
config ARCH_STDBOOL_H
|
||||
bool "stdbool.h"
|
||||
default n
|
||||
depends on ARCH_HAVE_STDBOOL_H
|
||||
---help---
|
||||
The stdbool.h header file can be found at nuttx/include/stdbool.h.
|
||||
However, that header includes logic to redirect the inclusion of an
|
||||
architecture specific header file like:
|
||||
|
||||
#ifdef CONFIG_ARCH_STDBOOL_H
|
||||
# include <arch/stdbool.h>
|
||||
#else
|
||||
...
|
||||
#endif
|
||||
|
||||
Recall that that include path, include/arch, is a symbolic link and
|
||||
will refer to a version of stdbool.h at nuttx/arch/<architecture>/include/stdbool.h.
|
||||
|
||||
config ARCH_HAVE_MATH_H
|
||||
bool
|
||||
default n
|
||||
---help---
|
||||
Selected by architecture specific logic if the architecture provides
|
||||
a math.h header file.
|
||||
|
||||
config ARCH_MATH_H
|
||||
bool "math.h"
|
||||
depends on ARCH_HAVE_MATH_H
|
||||
default n
|
||||
---help---
|
||||
There is also a re-directing version of math.h in the source tree.
|
||||
However, it resides out-of-the-way at include/nuttx/lib/math.h because it
|
||||
conflicts too often with the system math.h. If ARCH_MATH_H=y is
|
||||
defined, however, the top-level makefile will copy the redirecting
|
||||
math.h header file from include/nuttx/lib/math.h to include/math.h. math.h
|
||||
will then include the architecture-specific version of math.h that you
|
||||
must provide at nuttx/arch/>architecture</include/math.h.
|
||||
|
||||
#ifdef CONFIG_ARCH_MATH_H
|
||||
# include <arch/math.h>
|
||||
#endif
|
||||
|
||||
So for the architectures that define ARCH_MATH_H=y, include/math.h
|
||||
will be the redirecting math.h header file; for the architectures
|
||||
that don't select ARCH_MATH_H, the redirecting math.h header file
|
||||
will stay out-of-the-way in include/nuttx/.
|
||||
|
||||
config ARCH_FLOAT_H
|
||||
bool "float.h"
|
||||
default n
|
||||
---help---
|
||||
The float.h header file defines the properties of your floating
|
||||
point implementation. It would always be best to use your
|
||||
toolchain's float.h header file but if none is available, a default
|
||||
float.h header file will provided if this option is selected. However
|
||||
there is no assurance that the settings in this float.h are actually
|
||||
correct for your platform!
|
||||
|
||||
config DISABLE_FLOAT
|
||||
bool "Disable floating point"
|
||||
default n
|
||||
---help---
|
||||
Disable floating point support in the compiler. This will reduce
|
||||
code size and increase performance. This option is only available
|
||||
on some architectures.
|
||||
|
||||
config ARCH_HAVE_STDARG_H
|
||||
bool
|
||||
default n
|
||||
---help---
|
||||
Selected by architecture specific logic if the architecture provides
|
||||
a math.h header file.
|
||||
|
||||
config ARCH_STDARG_H
|
||||
bool "stdarg.h"
|
||||
depends on ARCH_HAVE_STDARG_H
|
||||
default n
|
||||
---help---
|
||||
There is a redirecting version of stdarg.h in the source tree. It
|
||||
resides out-of-the-way at include/nuttx/lib/stdarg.h. This is
|
||||
because you should normally use your toolchain's stdarg.h file. But
|
||||
sometimes, your toolchain's stdarg.h file may have other header
|
||||
file dependencies and so may not be usable in the NuttX build
|
||||
environment. In those cases, you may have to create a architecture-
|
||||
specific stdarg.h header file at nuttx/arch/<architecture>/include/stdarg.h
|
||||
|
||||
If ARCH_STDARG_H=y is defined, the top-level makefile will copy the
|
||||
re-directing stdarg.h header file from include/nuttx/lib/stdarg.h to
|
||||
include/stdarg.h. So for the architectures that cannot use their
|
||||
toolchain's stdarg.h file, they can use this alternative by defining
|
||||
ARCH_STDARG_H=y and providing. If ARCH_STDARG_H, is not defined, then
|
||||
the stdarg.h header file will stay out-of-the-way in include/nuttx/.
|
||||
|
||||
config ARCH_HAVE_SETJMP
|
||||
bool
|
||||
default n
|
||||
|
||||
config ARCH_SETJMP_H
|
||||
bool "setjmp.h"
|
||||
default n
|
||||
depends on ARCH_HAVE_SETJMP
|
||||
---help---
|
||||
There is a redirecting version of setjmp.h in the source tree. It
|
||||
resides out-of-the-way at include/nuttx/lib/setjmp.h. This is
|
||||
because you should normally use your toolchain's setjmp.h file. But
|
||||
sometimes, your toolchain's setjmp.h file may have other header
|
||||
file dependencies and so may not be usable in the NuttX build
|
||||
environment. In those cases, you may have to create a architecture-
|
||||
specific setjmp.h header file at nuttx/arch/<architecture>/include/setjmp.h
|
||||
|
||||
If ARCH_SETJMP_H=y is defined, the top-level makefile will copy the
|
||||
re-directing setjmp.h header file from include/nuttx/lib/setjmp.h to
|
||||
include/setjmp.h. So for the architectures that cannot use their
|
||||
toolchain's setjmp.h file, they can use this alternative by defining
|
||||
ARCH_SETJMP_H=y and providing. If ARCH_SETJMP_H, is not defined, then
|
||||
the setjmp.h header file will stay out-of-the-way in include/nuttx/.
|
||||
|
||||
choice
|
||||
prompt "debug.h selection"
|
||||
default ARCH_NONE_DEBUG_H
|
||||
|
||||
config ARCH_NONE_DEBUG_H
|
||||
bool "None"
|
||||
---help---
|
||||
No debug.h under include/arch/ and include/arch/chip.
|
||||
|
||||
config ARCH_DEBUG_H
|
||||
bool "debug.h"
|
||||
---help---
|
||||
The debug.h under include/arch contains architecture dependent debugging primitives
|
||||
|
||||
config ARCH_CHIP_DEBUG_H
|
||||
bool "chip debug.h"
|
||||
---help---
|
||||
The debug.h under include/arch/chip contains architecture dependent debugging primitives
|
||||
|
||||
config ARCH_BOARD_DEBUG_H
|
||||
bool "board debug.h"
|
||||
---help---
|
||||
The debug.h under include/arch/board contains board dependent debugging primitives
|
||||
|
||||
endchoice # debug.h selection
|
||||
|
||||
endmenu # Customize Header Files
|
||||
|
||||
source "Kconfig.debug"
|
||||
|
||||
menuconfig TRACE
|
||||
bool "Enable tracepoints"
|
||||
default n
|
||||
depends on SCHED_INSTRUMENTATION_DUMP
|
||||
---help---
|
||||
If this option is enabled, tracepoints at critical code in
|
||||
the kernel will be enabled.
|
||||
|
||||
if TRACE
|
||||
config TRACE_APP
|
||||
bool "Enable tracepoints in app"
|
||||
default n
|
||||
|
||||
config TRACE_ARCH
|
||||
bool "Enable tracepoints in arch"
|
||||
default n
|
||||
|
||||
config TRACE_AUDIO
|
||||
bool "Enable tracepoints in audio"
|
||||
default n
|
||||
|
||||
config TRACE_BOARDS
|
||||
bool "Enable tracepoints in boards"
|
||||
default n
|
||||
|
||||
config TRACE_CRYPTO
|
||||
bool "Enable tracepoints in crypto"
|
||||
default n
|
||||
|
||||
config TRACE_DRIVERS
|
||||
bool "Enable tracepoints in drivers"
|
||||
default n
|
||||
|
||||
config TRACE_FS
|
||||
bool "Enable tracepoints in fs"
|
||||
default n
|
||||
|
||||
if TRACE_FS
|
||||
menu "Trace Fs Support"
|
||||
|
||||
config TRACE_LITTLEFS_FS
|
||||
bool "Enable tracepoints in littlefs"
|
||||
default n
|
||||
|
||||
config TRACE_ROMFS_FS
|
||||
bool "Enable tracepoints in romfs"
|
||||
default n
|
||||
|
||||
config TRACE_RPMSGFS_FS
|
||||
bool "Enable tracepoints in rpmsgfs"
|
||||
default n
|
||||
|
||||
endmenu # Trace Fs Support
|
||||
endif
|
||||
|
||||
config TRACE_GRAPHICS
|
||||
bool "Enable tracepoints in graphics"
|
||||
default n
|
||||
|
||||
config TRACE_INPUT
|
||||
bool "Enable tracepoints in input"
|
||||
default n
|
||||
|
||||
config TRACE_LIBS
|
||||
bool "Enable tracepoints in libs"
|
||||
default n
|
||||
|
||||
config TRACE_MM
|
||||
bool "Enable tracepoints in mm"
|
||||
default n
|
||||
|
||||
config TRACE_NET
|
||||
bool "Enable tracepoints in net"
|
||||
default n
|
||||
|
||||
config TRACE_SCHED
|
||||
bool "Enable tracepoints in sched"
|
||||
default n
|
||||
|
||||
config TRACE_VIDEO
|
||||
bool "Enable tracepoints in video"
|
||||
default n
|
||||
|
||||
config TRACE_WIRELESS
|
||||
bool "Enable tracepoints in wireless"
|
||||
default n
|
||||
|
||||
endif #TRACE
|
||||
|
||||
choice
|
||||
prompt "Optimization Level"
|
||||
default DEBUG_NOOPT if DEBUG_SYMBOLS
|
||||
default DEBUG_FULLOPT if !DEBUG_SYMBOLS
|
||||
|
||||
config DEBUG_NOOPT
|
||||
bool "Suppress Optimization"
|
||||
---help---
|
||||
Build without optimization. This is often helpful when debugging code.
|
||||
|
||||
config DEBUG_CUSTOMOPT
|
||||
bool "Custom Optimization"
|
||||
depends on ARCH_HAVE_CUSTOMOPT
|
||||
---help---
|
||||
Select a custom debug level. This is often helpful if you suspect an
|
||||
optimization level error and want to lower the level of optimization.
|
||||
|
||||
config DEBUG_FULLOPT
|
||||
bool "Normal, Full optimization"
|
||||
---help---
|
||||
Build full optimization. This is the normal case for production
|
||||
firmware.
|
||||
|
||||
endchoice # Optimization Level
|
||||
|
||||
config DEBUG_OPTLEVEL
|
||||
string "Custom Optimization Level"
|
||||
default "/O2" if HOST_WINDOWS
|
||||
default "-O2"
|
||||
depends on DEBUG_CUSTOMOPT
|
||||
---help---
|
||||
This string represents the custom optimization level that will be
|
||||
used if DEBUG_CUSTOMOPT.
|
||||
|
||||
choice
|
||||
prompt "Link Time Optimization (LTO)"
|
||||
default LTO_NONE
|
||||
---help---
|
||||
This option enables Link Time Optimization (LTO), which allows the
|
||||
compiler to optimize binaries globally.
|
||||
|
||||
If unsure, select LTO_NONE. Note that LTO is very resource-intensive
|
||||
so it's disabled by default.
|
||||
|
||||
config LTO_NONE
|
||||
bool "None"
|
||||
---help---
|
||||
Build the kernel normally, without Link Time Optimization (LTO).
|
||||
|
||||
config LTO_FULL
|
||||
bool "GNU Full LTO (EXPERIMENTAL)"
|
||||
depends on ARCH_TOOLCHAIN_GNU
|
||||
---help---
|
||||
Link time optimization is implemented as a GCC front end for a bytecode
|
||||
bytecode representation of GIMPLE that is emitted in special sections
|
||||
of .o files. Currently, LTO support is enabled in most ELF-based systems,
|
||||
as well as darwin, cygwin and mingw systems.
|
||||
|
||||
config LTO_THIN
|
||||
bool "Clang ThinLTO (EXPERIMENTAL)"
|
||||
depends on ARCH_TOOLCHAIN_CLANG
|
||||
---help---
|
||||
This option enables Clang's ThinLTO, which allows for parallel
|
||||
optimization and faster incremental compiles compared to the
|
||||
CONFIG_LTO_FULL option. More information can be found
|
||||
from Clang's documentation:
|
||||
|
||||
https://clang.llvm.org/docs/ThinLTO.html
|
||||
|
||||
If unsure, say Y.
|
||||
endchoice
|
||||
|
||||
config DEBUG_OPT_UNUSED_SECTIONS
|
||||
bool "Optimization to eliminate the unused input sections"
|
||||
default y
|
||||
depends on ARCH_TOOLCHAIN_GNU
|
||||
---help---
|
||||
Use these options on systems where the linker can perform optimizations
|
||||
to improve locality of reference in the instruction space. Most systems
|
||||
using the ELF object format have linkers with such optimizations.
|
||||
|
||||
Enable this option to optimization the unused input sections with the
|
||||
linker by compiling with " -ffunction-sections -fdata-sections ", and
|
||||
linking with " --gc-sections ".
|
||||
|
||||
config DEBUG_LINK_WHOLE_ARCHIVE
|
||||
bool "Force every object to be included in the resulting shared library."
|
||||
default n
|
||||
depends on DEBUG_OPT_UNUSED_SECTIONS
|
||||
---help---
|
||||
Selecting this option will pass "--whole-archive" to ld
|
||||
when linking NuttX ELF.
|
||||
|
||||
config DEBUG_LINK_MAP
|
||||
bool "Generate link map file"
|
||||
default y
|
||||
---help---
|
||||
Selecting this option will pass "-Map=$(TOPDIR)$(DELIM)nuttx.map" to ld
|
||||
when linking NuttX ELF. That file can be useful for verifying
|
||||
and debugging magic section games, and for seeing which
|
||||
pieces of code get eliminated with DEBUG_OPT_UNUSED_SECTIONS.
|
||||
|
||||
config CCACHE
|
||||
bool "Use ccache"
|
||||
default n
|
||||
---help---
|
||||
If enabled, ccache will be used during the build.
|
||||
Build artifacts will be cached to a local storage, considerably
|
||||
reducing build times.
|
||||
|
||||
endmenu # Build Setup
|
||||
99
Makefile
99
Makefile
|
|
@ -20,23 +20,90 @@
|
|||
#
|
||||
############################################################################
|
||||
|
||||
# Check if the system has been configured
|
||||
# Handle the verbosity level first thing in the build process
|
||||
|
||||
ifeq ($(wildcard .config),)
|
||||
.DEFAULT default:
|
||||
@echo "NuttX has not been configured!"
|
||||
@echo "To configure the project:"
|
||||
@echo " tools/configure.sh <config>"
|
||||
@echo "For a list of available configurations:"
|
||||
@echo " tools/configure.sh -L"
|
||||
else
|
||||
include .config
|
||||
# Control build verbosity
|
||||
#
|
||||
# V=0: Exit silent mode
|
||||
# V=1,2: Enable echo of commands
|
||||
# V=2: Enable bug/verbose options in tools and scripts
|
||||
|
||||
# Include the correct Makefile for the selected architecture.
|
||||
|
||||
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
|
||||
include tools/Win.mk
|
||||
else
|
||||
include tools/Unix.mk
|
||||
ifeq ($(V),)
|
||||
MAKE := $(MAKE) -s --no-print-directory
|
||||
endif
|
||||
|
||||
ifeq ($(V),1)
|
||||
export Q :=
|
||||
else ifeq ($(V),2)
|
||||
export Q :=
|
||||
else
|
||||
export Q := @
|
||||
endif
|
||||
|
||||
# New Environment variable NXSPACE is checked first. If set, it will point
|
||||
# to NuttX workspace root.
|
||||
|
||||
NXSPACE ?= $(realpath $(CURDIR)/..)
|
||||
export NXSPACE
|
||||
|
||||
|
||||
NXBASE := $(realpath $(NXSPACE)/nuttx)
|
||||
|
||||
# New BDIR variable defines the board directory.
|
||||
# There are two ways to run NuttX build system:
|
||||
# 1) From the board directory (preferred)
|
||||
# 2) From the NuttX top directory
|
||||
# In the latter case, BDIR can be ommited as the
|
||||
# build entry-point will always be the NuttX top directory.
|
||||
|
||||
BDIR ?= ${NXBASE}
|
||||
|
||||
# New OUT variable will be used as the output directory.
|
||||
# All the defined target should refer to this variable for their output.
|
||||
# Preferably, this out variable should be externally provided, for
|
||||
# portability reasons. Rather than keep the output local to the NuttX
|
||||
# source tree, this mechanism allows to specify any out-of-tree dir.
|
||||
|
||||
# $(NXSPACE)/build is the default output directory, and it's reserved by the
|
||||
# NuttX build system.
|
||||
|
||||
OUT ?= $(realpath $(NXSPACE)/build)
|
||||
export OUT
|
||||
|
||||
# Force the BCFG to always be passed to build process.
|
||||
# This new Environment variable defines the board:config to be used.
|
||||
|
||||
ifndef BCFG
|
||||
$(info ERROR: Board configuration is not set)
|
||||
$(info )
|
||||
$(info Usage:)
|
||||
$(info make BCFG=<config>)
|
||||
$(info )
|
||||
$(info Examples:)
|
||||
$(info make BCFG=nsh)
|
||||
|
||||
$(error Build stopped, BCFG required.)
|
||||
endif
|
||||
|
||||
# External code support
|
||||
# EXTLIB variable to can be passed to the build system.
|
||||
# EXTLIB should be the end library that is passed to the nuttx build system
|
||||
|
||||
ifdef EXTLIB
|
||||
TARGETS += ${EXTLIB}
|
||||
endif
|
||||
|
||||
# Support for ROMFS image creation
|
||||
|
||||
ifeq (${CONFIG_FS_ROMFS},y)
|
||||
|
||||
ifdef ROMFSIMG
|
||||
TARGETS += ${ROMFSIMG}
|
||||
else
|
||||
$(error ROMFSIMG is not defined by the board Makefile)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
menuconfig:
|
||||
menuconfig
|
||||
4
VERSION
Normal file
4
VERSION
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
VERSION_MAJOR = 12
|
||||
VERSION_MINOR = 10
|
||||
PATCH = 0
|
||||
EXTRAVERSION =
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
# ##############################################################################
|
||||
# arch/CMakeLists.txt
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
|
||||
# license agreements. See the NOTICE file distributed with this work for
|
||||
# additional information regarding copyright ownership. The ASF licenses this
|
||||
# file to you under the Apache License, Version 2.0 (the "License"); you may not
|
||||
# use this file except in compliance with the License. You may obtain a copy of
|
||||
# the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations under
|
||||
# the License.
|
||||
#
|
||||
# ##############################################################################
|
||||
# Declare arch library. In contrast to other user/kernel pairs built in KERNEL
|
||||
# mode, on arch/ the "user" portion uses a different set of sources than the
|
||||
# kernel portion. To keep things simple the naming k<lib> is not used. Instead,
|
||||
# the "user" portion is named "arch_interface".
|
||||
|
||||
nuttx_add_kernel_library(arch)
|
||||
target_include_directories(arch PRIVATE ${CMAKE_SOURCE_DIR}/sched)
|
||||
|
||||
if(CONFIG_BUILD_PROTECTED)
|
||||
nuttx_add_system_library(arch_interface)
|
||||
file(TOUCH "${CMAKE_CURRENT_BINARY_DIR}/empty.c")
|
||||
target_sources(arch_interface PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/empty.c")
|
||||
target_include_directories(arch_interface PRIVATE ${CMAKE_SOURCE_DIR}/sched)
|
||||
endif()
|
||||
|
||||
# TODO: move this higher up ifeq ($(CONFIG_SCHED_INSTRUMENTATION_SYSCALL),y)
|
||||
# EXTRALINKCMDS += @$(TOPDIR)/syscall/syscall_wraps.ldcmd endif
|
||||
|
||||
# include corresponding arch subdirectory
|
||||
add_subdirectory(${CONFIG_ARCH})
|
||||
61
arch/Kconfig
61
arch/Kconfig
|
|
@ -165,19 +165,7 @@ config ARCH_XTENSA
|
|||
select ARCH_HAVE_SYSCALL_HOOKS
|
||||
select ARCH_HAVE_PERF_EVENTS
|
||||
---help---
|
||||
Cadence® Tensilica® Xtensa® actictures.
|
||||
|
||||
config ARCH_Z16
|
||||
bool "ZNEO"
|
||||
select ARCH_HAVE_HEAP2
|
||||
---help---
|
||||
ZiLOG ZNEO 16-bit architectures (z16f).
|
||||
|
||||
config ARCH_Z80
|
||||
bool "z80"
|
||||
select ARCH_HAVE_HEAP2
|
||||
---help---
|
||||
ZiLOG 8-bit architectures (z80, ez80, z8).
|
||||
Cadence® Tensilica® Xtensa® architectures.
|
||||
|
||||
config ARCH_OR1K
|
||||
bool "OpenRISC"
|
||||
|
|
@ -217,8 +205,6 @@ config ARCH
|
|||
default "x86" if ARCH_X86
|
||||
default "x86_64" if ARCH_X86_64
|
||||
default "xtensa" if ARCH_XTENSA
|
||||
default "z16" if ARCH_Z16
|
||||
default "z80" if ARCH_Z80
|
||||
default "or1k" if ARCH_OR1K
|
||||
default "sparc" if ARCH_SPARC
|
||||
default "tricore" if ARCH_TRICORE
|
||||
|
|
@ -235,50 +221,17 @@ source "arch/sim/Kconfig"
|
|||
source "arch/x86/Kconfig"
|
||||
source "arch/x86_64/Kconfig"
|
||||
source "arch/xtensa/Kconfig"
|
||||
<<<<<<< HEAD
|
||||
source "arch/z16/Kconfig"
|
||||
source "arch/z80/Kconfig"
|
||||
=======
|
||||
endif
|
||||
if ARCH_OR1K
|
||||
>>>>>>> 753c7b2dd6 (walnux: moveout)
|
||||
source "arch/or1k/Kconfig"
|
||||
source "arch/sparc/Kconfig"
|
||||
source "arch/tricore/Kconfig"
|
||||
|
||||
config ARCH_CHIP_CUSTOM
|
||||
bool "Custom Chip Support"
|
||||
default n
|
||||
|
||||
if ARCH_CHIP_CUSTOM
|
||||
menu "Custom Chip Configuration"
|
||||
|
||||
config ARCH_CHIP_CUSTOM_NAME
|
||||
string "Custom chip name"
|
||||
default ""
|
||||
---help---
|
||||
This is a name for the chip. It is not used except to return the
|
||||
information via the NSH uname command.
|
||||
|
||||
config ARCH_CHIP_CUSTOM_DIR
|
||||
string "Custom chip directory"
|
||||
default ""
|
||||
---help---
|
||||
If the custom chip configuration is selected, then it is necessary
|
||||
to also tell the build system where it can find the chip directory
|
||||
for the custom chip.
|
||||
|
||||
In this case, the chip directory is assumed to lie outside the
|
||||
NuttX directory. The provided path must then be a full, absolute
|
||||
path to some location outside of the NuttX source tree (like
|
||||
"~/projects/mychip").
|
||||
|
||||
config ARCH_CHIP_CUSTOM_DIR_RELPATH
|
||||
bool "Relative custom chip directory"
|
||||
default y
|
||||
---help---
|
||||
Specifies that the chip directory is relative to the NuttX directory.
|
||||
|
||||
endmenu # Custom Chip Configuration
|
||||
endif #ARCH_CHIP_CUSTOM
|
||||
|
||||
source "$BINDIR/arch/dummy/Kconfig"
|
||||
|
||||
config ARCH_TOOLCHAIN_GNU
|
||||
bool
|
||||
default n
|
||||
|
|
@ -309,7 +262,7 @@ config ARCH_TOOLCHAIN_IAR
|
|||
|
||||
config ARCH_TOOLCHAIN_TASKING
|
||||
bool
|
||||
default n
|
||||
default n
|
||||
|
||||
config ARCH_GNU_NO_WEAKFUNCTIONS
|
||||
bool
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
# ##############################################################################
|
||||
# arch/arm/CMakeLists.txt
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
|
||||
# license agreements. See the NOTICE file distributed with this work for
|
||||
# additional information regarding copyright ownership. The ASF licenses this
|
||||
# file to you under the Apache License, Version 2.0 (the "License"); you may not
|
||||
# use this file except in compliance with the License. You may obtain a copy of
|
||||
# the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations under
|
||||
# the License.
|
||||
#
|
||||
# ##############################################################################
|
||||
|
||||
nuttx_add_subdirectory()
|
||||
1419
arch/arm/Kconfig
1419
arch/arm/Kconfig
File diff suppressed because it is too large
Load diff
345
arch/arm/Kconfig.arch
Normal file
345
arch/arm/Kconfig.arch
Normal file
|
|
@ -0,0 +1,345 @@
|
|||
|
||||
config ARCH_ARM7TDMI
|
||||
bool
|
||||
default n
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
---help---
|
||||
The Arm7TDMI-S is an excellent workhorse processor capable of a wide
|
||||
array of applications. Traditionally used in mobile handsets, the
|
||||
processor is now broadly in many non-mobile applications.
|
||||
|
||||
config ARCH_ARM920T
|
||||
bool
|
||||
default n
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MMU
|
||||
select ARCH_USE_MMU
|
||||
---help---
|
||||
The ARM9 processor family is built around the ARM9TDMI processor and
|
||||
incorporates the 16-bit Thumb instruction set. The ARM9 Thumb family
|
||||
includes the ARM920T and ARM922T cached processor macrocells:
|
||||
|
||||
- Dual 16k caches for applications running Symbian OS, Palm OS,
|
||||
Linux and Windows CE,
|
||||
- Dual 8k caches for applications running Symbian OS, Palm OS, Linux
|
||||
and Windows CE Applications
|
||||
|
||||
config ARCH_ARM926EJS
|
||||
bool
|
||||
default n
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MMU
|
||||
select ARCH_USE_MMU
|
||||
---help---
|
||||
Arm926EJ-S is the entry point processor capable of supporting full
|
||||
Operating Systems including Linux, WindowsCE, and Symbian.
|
||||
|
||||
The ARM9E processor family enables single processor solutions for
|
||||
microcontroller, DSP and Java applications. The ARM9E family of
|
||||
products are DSP-enhanced 32-bit RISC processors, for applications
|
||||
requiring a mix of DSP and microcontroller performance. The family
|
||||
includes the ARM926EJ-S, ARM946E-S, ARM966E-S, and ARM968E-S
|
||||
processor macrocells. They include signal processing extensions to
|
||||
enhance 16-bit fixed point performance using a single-cycle 32 x 16
|
||||
multiply-accumulate (MAC) unit, and implement the 16-bit Thumb
|
||||
instruction set. The ARM926EJ-S processor also includes ARM Jazelle
|
||||
technology which enables the direct execution of Java bytecodes in
|
||||
hardware.
|
||||
|
||||
config ARCH_ARM1136J
|
||||
bool
|
||||
default n
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MMU
|
||||
select ARCH_USE_MMU
|
||||
---help---
|
||||
Arm1136J(F)-S is very similar to Arm926EJ-S, but includes an
|
||||
extended pipeline, basic SIMD (Single Instruction Multiple Data)
|
||||
instructions, and improved frequency and performance.
|
||||
|
||||
config ARCH_ARM1156T2
|
||||
bool
|
||||
default n
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MMU
|
||||
select ARCH_USE_MMU
|
||||
---help---
|
||||
Arm1156T2(F)-S is the highest-performance processor in the real-time
|
||||
Classic Arm family.
|
||||
|
||||
config ARCH_ARM1176JZ
|
||||
bool
|
||||
default n
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MMU
|
||||
select ARCH_USE_MMU
|
||||
---help---
|
||||
Arm1176JZ(F)-S is the highest-performance single-core processor in
|
||||
the Classic Arm family. It also introduced TrustZone technology to
|
||||
enable secure execution outside of the reach of malicious code.
|
||||
|
||||
config ARCH_ARMV6M
|
||||
bool
|
||||
default n
|
||||
select ARCH_HAVE_CPUINFO
|
||||
|
||||
config ARCH_CORTEXM0
|
||||
bool
|
||||
default n
|
||||
select ARM_THUMB
|
||||
select ARCH_ARMV6M
|
||||
select ARCH_HAVE_IRQPRIO
|
||||
select ARCH_HAVE_IRQTRIGGER
|
||||
select ARCH_HAVE_RAMVECTORS
|
||||
select ARCH_HAVE_RESET
|
||||
select ARCH_HAVE_HARDFAULT_DEBUG
|
||||
|
||||
config ARCH_ARMV7M
|
||||
bool
|
||||
default n
|
||||
select ARCH_HAVE_CPUINFO
|
||||
select ARCH_HAVE_DEBUG
|
||||
select ARCH_HAVE_PERF_EVENTS
|
||||
|
||||
config ARCH_CORTEXM3
|
||||
bool
|
||||
default n
|
||||
select ARM_THUMB
|
||||
select ARCH_ARMV7M
|
||||
select ARCH_HAVE_IRQPRIO
|
||||
select ARCH_HAVE_IRQTRIGGER
|
||||
select ARCH_HAVE_RAMVECTORS
|
||||
select ARCH_HAVE_HIPRI_INTERRUPT
|
||||
select ARCH_HAVE_RESET
|
||||
select ARCH_HAVE_TESTSET
|
||||
select ARCH_HAVE_HARDFAULT_DEBUG
|
||||
select ARCH_HAVE_MEMFAULT_DEBUG
|
||||
select ARCH_HAVE_BUSFAULT_DEBUG
|
||||
select ARCH_HAVE_USAGEFAULT_DEBUG
|
||||
|
||||
config ARCH_CORTEXM4
|
||||
bool
|
||||
default n
|
||||
select ARM_THUMB
|
||||
select ARCH_ARMV7M
|
||||
select ARCH_HAVE_IRQPRIO
|
||||
select ARCH_HAVE_IRQTRIGGER
|
||||
select ARCH_HAVE_RAMVECTORS
|
||||
select ARCH_HAVE_HIPRI_INTERRUPT
|
||||
select ARCH_HAVE_RESET
|
||||
select ARCH_HAVE_TESTSET
|
||||
select ARCH_HAVE_HARDFAULT_DEBUG
|
||||
select ARCH_HAVE_MEMFAULT_DEBUG
|
||||
select ARCH_HAVE_BUSFAULT_DEBUG
|
||||
select ARCH_HAVE_USAGEFAULT_DEBUG
|
||||
|
||||
config ARCH_CORTEXM7
|
||||
bool
|
||||
default n
|
||||
select ARM_THUMB
|
||||
select ARCH_ARMV7M
|
||||
select ARCH_HAVE_FPU
|
||||
select ARCH_HAVE_IRQPRIO
|
||||
select ARCH_HAVE_IRQTRIGGER
|
||||
select ARCH_HAVE_RAMVECTORS
|
||||
select ARCH_HAVE_HIPRI_INTERRUPT
|
||||
select ARCH_HAVE_RESET
|
||||
select ARCH_HAVE_TESTSET
|
||||
select ARCH_HAVE_HARDFAULT_DEBUG
|
||||
select ARCH_HAVE_MEMFAULT_DEBUG
|
||||
select ARCH_HAVE_BUSFAULT_DEBUG
|
||||
select ARCH_HAVE_USAGEFAULT_DEBUG
|
||||
|
||||
config ARCH_ARMV7A
|
||||
bool
|
||||
default n
|
||||
select ARCH_HAVE_CPUINFO
|
||||
select ARCH_HAVE_DEBUG
|
||||
select ARCH_HAVE_PERF_EVENTS
|
||||
select ARM_HAVE_WFE_SEV
|
||||
|
||||
config ARCH_CORTEXA5
|
||||
bool
|
||||
default n
|
||||
select ARCH_ARMV7A
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MMU
|
||||
select ARCH_USE_MMU
|
||||
select ARCH_HAVE_TESTSET
|
||||
select ARM_HAVE_MPCORE
|
||||
|
||||
config ARCH_CORTEXA7
|
||||
bool
|
||||
default n
|
||||
select ARCH_ARMV7A
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MMU
|
||||
select ARCH_USE_MMU
|
||||
select ARCH_HAVE_TESTSET
|
||||
select ARCH_HAVE_FPU
|
||||
select ARM_HAVE_MPCORE
|
||||
|
||||
config ARCH_CORTEXA8
|
||||
bool
|
||||
default n
|
||||
select ARCH_ARMV7A
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MMU
|
||||
select ARCH_USE_MMU
|
||||
select ARCH_HAVE_TESTSET
|
||||
|
||||
config ARCH_CORTEXA9
|
||||
bool
|
||||
default n
|
||||
select ARCH_ARMV7A
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MMU
|
||||
select ARCH_USE_MMU
|
||||
select ARCH_HAVE_TESTSET
|
||||
select ARM_HAVE_MPCORE
|
||||
|
||||
config ARCH_ARMV7R
|
||||
bool
|
||||
default n
|
||||
select ARCH_HAVE_CPUINFO
|
||||
select ARCH_HAVE_PERF_EVENTS
|
||||
|
||||
config ARCH_CORTEXR4
|
||||
bool
|
||||
default n
|
||||
select ARCH_ARMV7R
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MPU
|
||||
select ARCH_HAVE_TESTSET
|
||||
|
||||
config ARCH_CORTEXR5
|
||||
bool
|
||||
default n
|
||||
select ARCH_ARMV7R
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MPU
|
||||
select ARCH_HAVE_TESTSET
|
||||
|
||||
config ARCH_CORTEXR7
|
||||
bool
|
||||
default n
|
||||
select ARCH_ARMV7R
|
||||
select ARCH_DCACHE
|
||||
select ARCH_ICACHE
|
||||
select ARCH_HAVE_MPU
|
||||
select ARCH_HAVE_TESTSET
|
||||
|
||||
config ARCH_CORTEXR52
|
||||
bool
|
||||
default n
|
||||
select ARCH_ARMV8R
|
||||
select ARCH_HAVE_MPU
|
||||
select ARCH_HAVE_TESTSET
|
||||
|
||||
config ARCH_ARMV8M
|
||||
bool
|
||||
default n
|
||||
select ARCH_HAVE_CPUINFO
|
||||
select ARCH_HAVE_DEBUG
|
||||
select ARCH_HAVE_PERF_EVENTS
|
||||
|
||||
config ARCH_CORTEXM23
|
||||
bool
|
||||
default n
|
||||
select ARM_THUMB
|
||||
select ARCH_ARMV8M
|
||||
select ARCH_HAVE_IRQPRIO
|
||||
select ARCH_HAVE_IRQTRIGGER
|
||||
select ARCH_HAVE_RAMVECTORS
|
||||
select ARCH_HAVE_HIPRI_INTERRUPT
|
||||
select ARCH_HAVE_RESET
|
||||
select ARCH_HAVE_TESTSET
|
||||
select ARCH_HAVE_HARDFAULT_DEBUG
|
||||
|
||||
config ARCH_CORTEXM33
|
||||
bool
|
||||
default n
|
||||
select ARM_THUMB
|
||||
select ARCH_ARMV8M
|
||||
select ARCH_HAVE_IRQPRIO
|
||||
select ARCH_HAVE_IRQTRIGGER
|
||||
select ARCH_HAVE_RAMVECTORS
|
||||
select ARCH_HAVE_HIPRI_INTERRUPT
|
||||
select ARCH_HAVE_RESET
|
||||
select ARCH_HAVE_TESTSET
|
||||
select ARCH_HAVE_HARDFAULT_DEBUG
|
||||
select ARCH_HAVE_MEMFAULT_DEBUG
|
||||
select ARCH_HAVE_BUSFAULT_DEBUG
|
||||
select ARCH_HAVE_USAGEFAULT_DEBUG
|
||||
select ARCH_HAVE_SECUREFAULT_DEBUG if ARCH_TRUSTZONE_SECURE
|
||||
|
||||
config ARCH_CORTEXM35P
|
||||
bool
|
||||
default n
|
||||
select ARM_THUMB
|
||||
select ARCH_ARMV8M
|
||||
select ARCH_HAVE_IRQPRIO
|
||||
select ARCH_HAVE_IRQTRIGGER
|
||||
select ARCH_HAVE_RAMVECTORS
|
||||
select ARCH_HAVE_HIPRI_INTERRUPT
|
||||
select ARCH_HAVE_RESET
|
||||
select ARCH_HAVE_TESTSET
|
||||
select ARCH_HAVE_HARDFAULT_DEBUG
|
||||
select ARCH_HAVE_MEMFAULT_DEBUG
|
||||
select ARCH_HAVE_BUSFAULT_DEBUG
|
||||
select ARCH_HAVE_USAGEFAULT_DEBUG
|
||||
select ARCH_HAVE_SECUREFAULT_DEBUG if ARCH_TRUSTZONE_SECURE
|
||||
|
||||
config ARCH_CORTEXM55
|
||||
bool
|
||||
default n
|
||||
select ARM_THUMB
|
||||
select ARCH_ARMV8M
|
||||
select ARCH_HAVE_IRQPRIO
|
||||
select ARCH_HAVE_IRQTRIGGER
|
||||
select ARCH_HAVE_RAMVECTORS
|
||||
select ARCH_HAVE_HIPRI_INTERRUPT
|
||||
select ARCH_HAVE_RESET
|
||||
select ARCH_HAVE_TESTSET
|
||||
select ARCH_HAVE_HARDFAULT_DEBUG
|
||||
select ARCH_HAVE_MEMFAULT_DEBUG
|
||||
select ARCH_HAVE_BUSFAULT_DEBUG
|
||||
select ARCH_HAVE_USAGEFAULT_DEBUG
|
||||
select ARCH_HAVE_SECUREFAULT_DEBUG if ARCH_TRUSTZONE_SECURE
|
||||
|
||||
config ARCH_CORTEXM85
|
||||
bool
|
||||
default n
|
||||
select ARM_THUMB
|
||||
select ARCH_ARMV8M
|
||||
select ARCH_HAVE_IRQPRIO
|
||||
select ARCH_HAVE_IRQTRIGGER
|
||||
select ARCH_HAVE_RAMVECTORS
|
||||
select ARCH_HAVE_HIPRI_INTERRUPT
|
||||
select ARCH_HAVE_RESET
|
||||
select ARCH_HAVE_TESTSET
|
||||
select ARCH_HAVE_HARDFAULT_DEBUG
|
||||
select ARCH_HAVE_MEMFAULT_DEBUG
|
||||
select ARCH_HAVE_BUSFAULT_DEBUG
|
||||
select ARCH_HAVE_USAGEFAULT_DEBUG
|
||||
select ARCH_HAVE_SECUREFAULT_DEBUG if ARCH_TRUSTZONE_SECURE
|
||||
|
||||
config ARCH_ARMV8R
|
||||
bool
|
||||
default n
|
||||
select ARCH_HAVE_CPUINFO
|
||||
select ARCH_HAVE_PERF_EVENTS
|
||||
select ONESHOT
|
||||
select ALARM_ARCH
|
||||
91
arch/arm/Makefile
Normal file
91
arch/arm/Makefile
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
############################################################################
|
||||
# arch/arm/src/Makefile
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership. The
|
||||
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance with the
|
||||
# License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
# NXBASE is mandatory
|
||||
# It should provided to each of the NuttX's subsys
|
||||
# either by environment variable or
|
||||
# by command-line variable assignment.
|
||||
|
||||
ifeq ($(realpath ${NXBASE}),)
|
||||
$(error "NXBASE is not defined or invalid path")
|
||||
endif
|
||||
|
||||
CONFIGMK := $(realpath ${NXBASE}/tools/Config.mk)
|
||||
ifeq (${CONFIGMK},)
|
||||
$(error "Invalid Config.mk path: ${NXBASE}/tools/Config.mk")
|
||||
else
|
||||
include ${CONFIGMK}
|
||||
endif
|
||||
|
||||
# NXOUT is mandatory
|
||||
# It should provided to each of the NuttX's subsys
|
||||
# either by environment variable or
|
||||
# by command-line variable assignment.
|
||||
|
||||
ifeq ($(realpath ${NXOUT}),)
|
||||
$(error "NXOUT is not defined or invalid path")
|
||||
endif
|
||||
|
||||
CFG := $(realpath ${NXOUT}/.config)
|
||||
ifeq (${CFG},)
|
||||
$(error "Invalid .config path: ${CFG}")
|
||||
else
|
||||
include ${CFG}
|
||||
endif
|
||||
|
||||
CFGH := $(realpath ${NXOUT}/nuttx/config.h)
|
||||
ifeq (${CFGH},)
|
||||
$(error "Invalid config.h path: ${CFGH}")
|
||||
endif
|
||||
|
||||
ARCH_SUBDIR := $(patsubst "%",%,${CONFIG_ARCH_FAMILY})
|
||||
ARCH_SRCDIR := ${CURDIR}
|
||||
|
||||
INCLUDES += -I${ARCH_SRCDIR}/include
|
||||
INCLUDES += -I${NXOUT}
|
||||
INCLUDES += -I${NXBASE}/include
|
||||
INCLUDES += -I${NXBASE}/soc/arm/include
|
||||
|
||||
VPATH += ${ARCH_SRCDIR}/common
|
||||
include ${ARCH_SRCDIR}/common/Make.defs
|
||||
|
||||
VPATH += ${ARCH_SRCDIR}/${ARCH_SUBDIR}
|
||||
include ${ARCH_SRCDIR}/${ARCH_SUBDIR}/Make.defs
|
||||
|
||||
CFLAGS += ${INCLUDES}
|
||||
AFLAGS += ${INCLUDES}
|
||||
|
||||
BIN = libarch.a
|
||||
|
||||
all: $(BIN)
|
||||
|
||||
STARTUP_OBJS = $(STARTUP_CSRC:.c=.o)
|
||||
HEAD_OBJ = $(HEAD_ASRC:.S=.o)
|
||||
|
||||
COBJS = $(CSRCS:.c=.o)
|
||||
AOBJS = $(ASRCS:.S=.o)
|
||||
|
||||
SRCS = ${ASRCS} ${CSRCS} ${STARTUP_CSRC} ${HEAD_ASRC}
|
||||
OBJS = ${AOBJS} ${COBJS} ${STARTUP_OBJS} ${HEAD_OBJ}
|
||||
|
||||
${STARTUP_OBJS}: %.o: %.c
|
||||
$(call COMPILE, $<, $@)
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
############################################################################
|
||||
# arch/z80/src/z8/Make.defs
|
||||
# arch/arm/src/arm/Make.defs
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
|
@ -20,19 +20,24 @@
|
|||
#
|
||||
############################################################################
|
||||
|
||||
HEAD_SSRC = z8_head.S
|
||||
HEAD_ASRC = arm_head.S
|
||||
|
||||
<<<<<<< HEAD:arch/z80/src/z8/Make.defs
|
||||
CMN_CSRCS = z80_allocateheap.c z80_createstack.c z80_doirq.c
|
||||
CMN_CSRCS += z80_exit.c z80_idle.c z80_interruptcontext.c
|
||||
CMN_CSRCS += z80_initialize.c z80_mdelay.c z80_nputs.c
|
||||
CMN_CSRCS += z80_releasestack.c z80_switchcontext.c
|
||||
CMN_CSRCS += z80_stackframe.c z80_udelay.c z80_usestack.c
|
||||
=======
|
||||
CSRCS += arm_dataabort.c arm_doirq.c arm_initialstate.c
|
||||
CSRCS += arm_prefetchabort.c arm_schedulesigaction.c
|
||||
CSRCS += arm_sigdeliver.c arm_syscall.c arm_tcbinfo.c
|
||||
CSRCS += arm_undefinedinsn.c
|
||||
>>>>>>> 753c7b2dd6 (walnux: moveout):arch/arm/arm/Make.defs
|
||||
|
||||
CHIP_SSRCS = z8_vector.S z8_saveusercontext.S z8_restorecontext.S
|
||||
CHIP_CSRCS = z8_initialstate.c z8_irq.c z8_saveirqcontext.c
|
||||
CHIP_CSRCS += z8_schedulesigaction.c z8_sigdeliver.c
|
||||
CHIP_CSRCS += z8_serial.c z8_i2c.c z8_registerdump.c
|
||||
ASRCS += arm_cache.S arm_vectors.S arm_vectortab.S
|
||||
ASRCS += arm_saveusercontext.S
|
||||
|
||||
ifneq ($(CONFIG_SCHED_TICKLESS),y)
|
||||
CHIP_CSRCS += z8_timerisr.c
|
||||
ifeq ($(CONFIG_LEGACY_PAGING),y)
|
||||
CSRCS += arm_pginitialize.c arm_checkmapping.c arm_allocpage.c arm_va2pte.c
|
||||
endif
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
#include <nuttx/config.h>
|
||||
|
||||
#include <nuttx/sched.h>
|
||||
#include <arch/irq.h>
|
||||
#include <irq.h>
|
||||
#include <sys/param.h>
|
||||
|
||||
/****************************************************************************
|
||||
|
|
@ -20,10 +20,6 @@
|
|||
#
|
||||
############################################################################
|
||||
|
||||
# Common ARM files
|
||||
|
||||
include common/Make.defs
|
||||
|
||||
CMN_ASRCS += arm_exception.S arm_saveusercontext.S
|
||||
|
||||
CMN_CSRCS += arm_cpuinfo.c arm_doirq.c arm_hardfault.c arm_initialstate.c
|
||||
|
|
@ -35,9 +31,17 @@ ifneq ($(CONFIG_ARCH_HAVE_CUSTOM_VECTORS),y)
|
|||
CMN_CSRCS += arm_vectors.c
|
||||
endif
|
||||
|
||||
<<<<<<< HEAD:arch/z80/src/z80/Make.defs
|
||||
CMN_CSRCS = z80_allocateheap.c z80_createstack.c z80_doirq.c
|
||||
CMN_CSRCS += z80_exit.c z80_initialize.c z80_interruptcontext.c
|
||||
CMN_CSRCS += z80_idle.c z80_mdelay.c z80_releasestack.c
|
||||
CMN_CSRCS += z80_switchcontext.c z80_stackframe.c
|
||||
CMN_CSRCS += z80_udelay.c z80_usestack.c
|
||||
=======
|
||||
ifneq ($(filter y,$(CONFIG_DEBUG_FEATURES)$(CONFIG_ARM_COREDUMP_REGION)),)
|
||||
CMN_CSRCS += arm_dumpnvic.c
|
||||
endif
|
||||
>>>>>>> 753c7b2dd6 (walnux: moveout):arch/arm/armv6-m/Make.defs
|
||||
|
||||
ifeq ($(CONFIG_ARCH_RAMVECTORS),y)
|
||||
CMN_CSRCS += arm_ramvec_initialize.c arm_ramvec_attach.c
|
||||
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <arch/irq.h>
|
||||
#include <irq.h>
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
# include "chip.h"
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
#include <assert.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include <arch/irq.h>
|
||||
#include <irq.h>
|
||||
|
||||
#include "nvic.h"
|
||||
#include "arm_internal.h"
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
#include <debug.h>
|
||||
#include <syscall.h>
|
||||
|
||||
#include <arch/irq.h>
|
||||
#include <irq.h>
|
||||
#include <nuttx/macro.h>
|
||||
#include <nuttx/sched.h>
|
||||
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
#include <nuttx/config.h>
|
||||
|
||||
#include <nuttx/sched.h>
|
||||
#include <arch/irq.h>
|
||||
#include <irq.h>
|
||||
#include <sys/param.h>
|
||||
|
||||
/****************************************************************************
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
#include <assert.h>
|
||||
|
||||
#include <nuttx/arch.h>
|
||||
#include <arch/irq.h>
|
||||
#include <irq.h>
|
||||
|
||||
#include "arm_internal.h"
|
||||
#include "nvic.h"
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <arch/irq.h>
|
||||
#include <irq.h>
|
||||
|
||||
#include "arm_internal.h"
|
||||
#include "chip.h"
|
||||
|
|
@ -62,6 +62,17 @@ config ARMV7A_HAVE_L2CC
|
|||
Selected by the configuration tool if the architecture supports any
|
||||
kind of L2 cache.
|
||||
|
||||
config ARMV7A_SMP_BUSY_WAIT
|
||||
bool "Busy wait when SMP boot"
|
||||
default n
|
||||
depends on SMP
|
||||
---help---
|
||||
Enables busy wait when SMP boot
|
||||
|
||||
config ARMV7A_SMP_BUSY_WAIT_FLAG_ADDR
|
||||
hex "Busy wait flag address"
|
||||
depends on ARMV7A_SMP_BUSY_WAIT
|
||||
|
||||
config ARMV7A_HAVE_L2CC_PL310
|
||||
bool
|
||||
default n
|
||||
|
|
@ -20,10 +20,6 @@
|
|||
#
|
||||
############################################################################
|
||||
|
||||
# Common ARM files
|
||||
|
||||
include common/Make.defs
|
||||
|
||||
# The vector table is the "head" object, i.e., the one that must forced into
|
||||
# the link in order to draw in all of the other components
|
||||
|
||||
|
|
@ -87,7 +87,7 @@
|
|||
#include <nuttx/sched.h>
|
||||
#include <nuttx/addrenv.h>
|
||||
|
||||
#include <arch/irq.h>
|
||||
#include <irq.h>
|
||||
|
||||
#include "mmu.h"
|
||||
#include "addrenv.h"
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
#include <debug.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <arch/irq.h>
|
||||
#include <irq.h>
|
||||
#include <arch/chip/chip.h>
|
||||
#include <nuttx/spinlock.h>
|
||||
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
* Included Files
|
||||
****************************************************************************/
|
||||
#include <nuttx/config.h>
|
||||
#include <arch/irq.h>
|
||||
#include <irq.h>
|
||||
#include <arch/chip/chip.h>
|
||||
#include <arch/syscall.h>
|
||||
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <arch/irq.h>
|
||||
#include <irq.h>
|
||||
|
||||
#include "arm.h"
|
||||
#include "sctlr.h"
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue