1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

149 Commits

Author SHA1 Message Date
chrysn
437fb43f12 doc: Move roadmap in from the wiki
This copies the version of 2020-05-29, with only the header line added.
2023-11-30 11:22:29 +01:00
bors[bot]
ddf1fe252d
Merge #19733 #19747 #19769 #19782
19733: cpu/msp430: reorganize code r=maribu a=maribu

### Contribution description

RIOT supports two distinct families of the MSP430: The [MSP430 x1xx] MCU family and the [MSP430 F2xx/G2xx] MCU family. For both incompatible MCU families the code was located in the msp430fxyz folder, resulting in case of the UART driver in particularly bizarre code looking roughly like this:

```C
#ifndef UART_USE_USCI
/* implementation of x1xx peripheral ... */
#else
/* implementation of F2xx/G2xx peripheral ... */
#endif
/* zero shared code between both variants */
```

This moves peripheral drivers shared between the two families to msp430_common and splits the SPI and UART driver into two MCU families.

In addition, it cleans up the `msp430_regs.h` by dropping most of it and using the macros and symbols provided by the vendor header files. There is little reason for us to maintain constants when TI is already doing that.

[MSP430 x1xx]: https://www.ti.com/lit/ug/slau049f/slau049f.pdf
[MSP430 F2xx/G2xx]: https://www.ti.com/lit/ug/slau144k/slau144k.pdf


19747: gnrc/ipv6/nib: reset rs_sent counter also for not-6LN interfaces r=maribu a=fabian18



19769: cpu/nrf53: add initial support with nRF5340DK-APP board r=maribu a=dylad

### Contribution description

This PR adds support for nRF5340 MCU and its associated Nordic development board, nRF5340DK.
This MCU provides a dual Cortex-M33, one application core running at up to 128MHz, and one network core running at up to 64MHz.
Peripherals are inherited from others Nordic MCUs families so it shouldn't be hard to add more of them in followup PRs.

For now, only the minimal set of peripherals is supported:
- GPIO / GPIO_IRQ
- UART
- TIMER

### Testing procedure
Build the usual test application for the supported peripherals and flash the board.
nRF5340DK provides two serial ports on its embedded debugger. RIOT's shell should be available on the first one (/dev/ttyACM0)


### Issues/PRs references
#18576
#19267 


19782: cpu/msp430: fix for ti's msp430-gcc-opensource package ld version r=maribu a=hugueslarrive

### Contribution description
My msp430 toolchain (https://www.ti.com/tool/MSP430-GCC-OPENSOURCE) was broken by #19484:
```
hugues@p700:~/github/cpu_msp430_common/RIOT$ BOARD=msb-430 make -j64 -C examples/hello-world
make : on entre dans le répertoire « /home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world »
Building application "hello-world" for "msb-430" with MCU "msp430fxyz".

"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/common/init
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/msb-430
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/core
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/core/lib
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430fxyz
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/drivers
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/common/msb-430
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/drivers/periph_common
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/auto_init
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/div
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/libc
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/malloc_thread_safe
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430_common
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/newlib_syscalls_default
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430fxyz/periph
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/preprocessor
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/stdio_uart
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430_common/periph
/opt/ti/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: .rodata not found for insert
collect2: error: ld returned 1 exit status
make: *** [/home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world/../../Makefile.include:761 : /home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world/bin/msb-430/hello-world.elf] Erreur 1
make : on quitte le répertoire « /home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world »
hugues@p700:~/github/cpu_msp430_common/RIOT$ /opt/ti/msp430-gcc/msp430-elf/bin/ld --version
GNU ld (Mitto Systems Limited - msp430-gcc 9.3.1.11) 2.34
Copyright (C) 2020 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
hugues@p700:~/github/cpu_msp430_common/RIOT$ /opt/ti/msp430-gcc/msp430-elf/bin/ld --version | grep -Eo '[0-9]\.[0-9]+'
9.3
1.11
2.34
hugues@p700:~/github/cpu_msp430_common/RIOT$ /opt/ti/msp430-gcc/msp430-elf/bin/ld --version | grep -Eo '[0-9]\.[0-9]+$'
2.34
```


### Testing procedure
```
hugues@p700:~/github/cpu_msp430_common/RIOT$ BOARD=msb-430 make -j64 -C examples/hello-world
make : on entre dans le répertoire « /home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world »
Building application "hello-world" for "msb-430" with MCU "msp430fxyz".

"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/common/init
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/msb-430
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/core
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/core/lib
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430fxyz
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/drivers
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/common/msb-430
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/drivers/periph_common
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/auto_init
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/div
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/libc
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/malloc_thread_safe
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/newlib_syscalls_default
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/preprocessor
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430_common
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/stdio_uart
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430fxyz/periph
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430_common/periph
   text	   data	    bss	    dec	    hex	filename
   8612	    722	    866	  10200	   27d8	/home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world/bin/msb-430/hello-world.elf
make : on quitte le répertoire « /home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world »
```


### Issues/PRs references
Introduced by #19484, highlighted in #16727.


Co-authored-by: Marian Buschsieweke <marian.buschsieweke@posteo.net>
Co-authored-by: Fabian Hüßler <fabian.huessler@ml-pa.com>
Co-authored-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
Co-authored-by: Hugues Larrive <hlarrive@pm.me>
2023-07-04 18:43:26 +00:00
Marian Buschsieweke
043e8cc88e
boards,sys/arduino: major clean up
- Rename all `arduino_pinmap.h` to `arduino_iomap.h`
    - An empty `arduino_pinmap.h` that just includes `arduino_iomap.h`
      is provided for backward compatibility
    - Move all info from `arduino_board.h` into the new file as trivial
      macros, so that they can also be used outside of sketches
    - The new name reflects the fact not just pin mappings, but also
      other I/O features such as PWMs are mapped
- Drop all `arduino_board.h`
    - `arduino_board.h` and `arduino_iomap.h` now provide the exact
      same information, just in a different format
    - a generic `arduino_board.h` is provided instead that just
      uses the info in `arduinio_iomap.h` and provides them in the
      format the code in `sys/arduino` expects it
- Add fine grained features to indicate for mappings
    - availability of mappings for analog pins, DAC pins, PWM pins,
      UART devices, SPI/I2C buses to the corresponding RIOT
      identification can now be expressed:
        - `arduino_pins`: `ARDUINO_PIN_0` etc. are available
        - `arduino_analog`: `ARDUINO_A0` etc. are available
        - `arduino_pwm`: `ARDUINO_PIN_13_PWM_DEV` etc. are available
        - `arduino_dac`: `ARDUINO_DAC0` etc. are available
        - `arduino_uart`: `ARDUINO_UART_D0D1` or similar are available
        - `arduino_spi`: `ARDUINO_SPI_ISP` or similar are available
        - `arduino_i2c`: `ARDUINO_I2C_UNO` or similar are available
    - mechanical/electrical compatibility with specific form factors
      can now be expressed as features:
        - `aruino_shield_nano`: Arduino NANO compatible headers
        - `aruino_shield_uno`: Arduino UNO compatible headers
        - `aruino_shield_mega`: Arduino MEGA compatible headers
        - `aruino_shield_isp`: ISP header is available

This provides the groundwork to implement shield support as modules
that can rely on the I/O mappings, rather than having to provide a
configuration per board.
2023-06-26 17:24:07 +02:00
Marian Buschsieweke
ff7f8ae2f0
cpu/msp430: reorganize code
RIOT supports two distinct families of the MSP430: The [MSP430 x1xx]
MCU family and the [MSP430 F2xx/G2xx] MCU family. For both incompatible
MCU families the code was located in the msp430fxyz folder, resulting
in case of the UART driver in particularly bizarre code looking roughly
like this:

    #ifndef UART_USE_USCI
    /* implementation of x1xx peripheral ... */
    #else
    /* implementation of F2xx/G2xx peripheral ... */
    #endif
    /* zero shared code between both variants */

This splits the peripheral drivers for USCI and USART serial IP blocks
into separate files and relocates everything in cpu/msp430, similar to
how cpu/stm32 is organized.

[MSP430 x1xx]: https://www.ti.com/lit/ug/slau049f/slau049f.pdf
[MSP430 F2xx/G2xx]: https://www.ti.com/lit/ug/slau144k/slau144k.pdf
2023-06-19 17:14:57 +02:00
96e37a4f41
blobs: include documentation in doxygen 2023-01-26 09:27:47 +01:00
Marian Buschsieweke
81c2f05fa9
doc: Add high level documentation on flashing
This is mostly intended as a place to add available configuration
options for each `<foo>` in `PROGRAMMER=<foo>`.
2022-08-15 16:18:16 +02:00
Benjamin Valentin
d4a3521501 doc/doxygen: add gnrc_ipv6_auto_subnets.c to INPUT 2022-07-15 11:47:01 +02:00
Francisco Molina
822bef48da doc/doxygen: add BUILD_IN_DOCKER extended doc 2022-03-18 07:57:50 +01:00
Karl Fessel
52116e1070
Merge pull request #17572 from kfessel/p-set-doxygen-example-path
doc: add RIOT root to doxygen example path
2022-02-28 15:42:25 +01:00
aaa2a7939d doc: introduce debugging-aids.md, start with ubsan 2022-02-16 12:20:45 +01:00
chrysn
f7dfa2f84d
Merge pull request #17133 from chrysn-pull-requests/doc-develhelp-stackoverflow-precision
doc: Start documenting pseudomodules
2022-01-27 15:09:22 +01:00
chrysn
68d0c291a9 doc: Initial documentation of pseudomodules
Co-authored-by: Francisco <femolina@uc.cl>
2022-01-27 13:49:14 +01:00
Karl Fessel
fb9bd122b3 doc: set example path to RIOT root 2022-01-25 17:26:38 +01:00
Leandro Lanzieri
6257442e4e
doc: Add project name 2022-01-19 10:17:52 +01:00
chrysn
9b66bd59e1 rust: Add overview documentation 2021-12-19 11:15:04 +01:00
Martine Lenders
77f7db1e0d
Merge pull request #15981 from miri64/doc/enh/porting-graph
doc/porting-boards.md: improve with porting graph and reference section
2021-09-16 18:53:40 +02:00
Martine Lenders
aaa9512d50
doc/porting-boards.md: improve with porting graph and reference section 2021-09-16 16:54:42 +02:00
Martine Lenders
1bf18b3239
doc/doxygen/riot.doxyfile: remove obsolete and fix wrong options 2021-08-31 19:20:37 +02:00
dylad
c488f96971 doc/doxygen: increase DOT_GRAPH_MAX_NODES to 275 2021-07-27 21:20:34 +02:00
Martine Lenders
af7152eeca
doxygen: add release cycle page 2021-05-04 11:54:15 +02:00
chrysn
204a608c24 doc: Make bootloaders visible in modules 2021-02-18 14:56:20 +01:00
Akshai M
b9d84e0b3e
doc/porting-cpus.md: initial import of a CPU porting guide 2021-02-10 15:45:59 +01:00
c9e0604612
doc: add emulator documentation 2021-01-13 17:14:39 +01:00
Karl Fessel
2e9bdf0635 doc: add jquerry.scrollTo for less timers in html doc
see #15503

add jquerry.scrollTo
add the code to copy and load scrollTo
2020-11-24 20:28:47 +01:00
Gilles DOFFE
f07f93fec9
doxygen: increase DOT_GRAPH_MAX_NODES
Signed-off-by: Gilles DOFFE <gilles.doffe@savoirfairelinux.com>
2020-09-02 11:11:29 +02:00
Marian Buschsieweke
cf482c5d46
build system: Add libstdcpp feature and doc
- Add libstdcpp feature to indicate a platform is providing a libstdc++
  implementation ready for use
- The existing cpp feature now only indicates a working C++ toolchain without
  libstdc++. (E.g. still useful for the Arduino compatibility layer.)
- Added libstdcpp as required feature were needed
- Added some documentation on C++ on RIOT
2020-07-15 11:45:22 +02:00
Chamaeleon-
f76b88177c
doc/doxygen: enable svg output
changed DOT_IMAGE_FORMAT to svg to get searchable dependency and call graphs
2020-04-30 12:55:31 +02:00
8069c8e5a1
doxygen: increase DOT_GRAPH_MAX_NODES 2020-03-03 14:09:37 +01:00
ab9c67e621
Merge pull request #13257 from fjmolinas/pr_creating_boards_md
doc/doxygen: add creating boards doc
2020-02-12 08:40:53 +01:00
Francisco Molina
a348f1db48
doc/doxygen: add creating boards doc 2020-02-11 16:50:50 +01:00
Leandro Lanzieri
3416205de0 doc: Move Kconfig next to build system section 2020-02-05 13:32:12 +01:00
Leandro Lanzieri
ab3cea197f doc: Add Kconfig documentation section
This adds information regarding the usage of Kconfig from an user
perspective and in-depth information on how Kconfig is currently
integrated to RIOT's build system.
2020-01-17 09:49:38 +01:00
c68470fc3d
Merge pull request #12783 from maribu/driver_guide
doc: move device driver guide to a doxygen page
2019-11-28 19:00:27 +01:00
Marian Buschsieweke
7108394172
doc/driver-guide.md: Doxygen integration
- Added the file to `riot.doxyfile`
- Shortened the header to display properly
- Added `[TOC]` to let doxygen create a table of contents
- Added manual anchors to the headers for consistency with other doc files
- Use @code and @endcode for code blocks (using fenced blocks doesn't parse
  with the Doxygen version used by the CI)
- Changed a numbered list containing code blocks to regular text, as the code
  blocks as list items are not parsed correctly
2019-11-28 13:58:26 +01:00
Francisco Molina
5212e86226 doc/doxygen: add build-system-basics.md 2019-11-27 17:32:03 +01:00
Francois Berder
4a31f94cfc many typo fixes
Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com>
2019-11-23 22:39:07 +01:00
Benjamin Valentin
0ea2cbf1eb boards: remove RTT_NUMOF/RTC_NUMOF
Those macros are defined but never used.
2019-11-08 14:20:33 +01:00
Martine S. Lenders
0a2945164c lwip: improve and fix documentation 2019-10-09 14:45:30 +02:00
Martine S. Lenders
0d8511616a emb6: fix documentation 2019-10-09 11:27:52 +02:00
MrKevinWeiss
7bd633a8b2 tests/doc: Add intial how to test doc
This commit adds a README.md to the testing folder.
It explains the basic about how to run a test with testrunner.
It adds a reference so it will be displayed on the doxygen docs.
There currently is not obvious documentation for running tests.
2019-03-24 15:15:35 +01:00
Gunar Schorcht
e7b153cf80 doc: remove *_params.h from EXCLUDE_PATTERNS 2019-02-08 18:05:21 +01:00
Gunar Schorcht
b18d312ef5 doc: set STRIP_FROM_PATH
Set STRIP_FROM_PATH=../../ avoids having the output depend on the location of the RIOT repo in the user's fs.
2019-02-08 18:05:21 +01:00
Gunar Schorcht
20d5f30ad4 doc: set FULL_PATH to yes
Using FULL_PATH=yes avoids that paths in documentation seem to be arbitrary.
2019-02-08 18:05:21 +01:00
Gunar Schorcht
cdcf503adf doc: remove STRIP_FROM_INC_PATH
To be able to include *_params.h in docuementation, STRIP_FROM_INC_PATH has to be empty. Otherwise, a number of warnings are thrown if *_params.h files with same names exist in different directories.
2019-02-08 18:05:21 +01:00
Gaëtan Harter
e47fea7bf5
doc/advanced-build-system-tricks.md: add a doc for new variables
Add a documentation page for advanced low level tricks.
Document the `RIOT_MAKEFILES_GLOBAL_PRE` and
`RIOT_MAKEFILES_GLOBAL_POST`.

I could not work around to have `$(RIOTBASE)/Makefile.include` in the
doc as the `$()` part was removed, so I kept with `$RIOTBASE` for now.
2018-12-07 17:05:51 +01:00
Jose Alamos
7d286ec3f3 doc: set SUBGROUPING to NO in riot.doxyfile 2018-08-29 17:57:13 +02:00
Cenk Gündoğan
dc3c49ea88
Merge pull request #8948 from miri64/doc/enh/experimental-command
doc: doxygen: add command
2018-06-26 22:33:33 +02:00
Bas Stottelaar
6464e12713 doc: exclude fortuna sources 2018-05-29 18:40:59 +02:00
Martine Lenders
8e5e2061e9 doc: doxygen: add command 2018-04-13 17:55:15 +02:00
e5bce7af82 doc/doxygen: enable doc on openthread package 2018-03-07 11:10:32 +01:00