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

26 Commits

Author SHA1 Message Date
MrKevinWeiss
b8c4617768
sys/*: expose periph/pm.h
I guess to reduce clutter we can always have the headers exposed since they are always included
even when we are not using them.
2024-04-08 11:20:14 +02:00
MrKevinWeiss
bead59e9d1
sys/newlib_syscalls_default: guard pm_off 2024-04-02 11:46:50 +02:00
Marian Buschsieweke
375aed13e6
sys/newlib_syscalls_default: fix race condition in __sinit()
This eagerly calls `__sinit()` instead of lazy initialization upon the
first call to stdio (e.g. `puts()`, `printf()`). The issue is that
without locking (as is currently the case for all RIOT platforms but
ESP) two concurrent "first calls" may result in concurrent
initialization of the same structure and data corruption.

Fixes https://github.com/RIOT-OS/RIOT/issues/20067
2024-02-16 07:21:28 +01: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
MrKevinWeiss
6cad5d2477
cpu/mips: Remove all mips 2022-09-27 13:42:37 +02:00
Benjamin Valentin
d635004a62 sys/syscalls: fix coding style 2022-09-05 14:56:51 +02:00
Benjamin Valentin
fb387ca83a sys/syscalls: drop outdated comment on _sbrk_r() 2022-09-05 14:23:10 +02:00
Francisco Molina
0819660303 sys/syscalls: add libc_gettimeofday
Conditionally implement gettimeofday() if module is included, this
avoids including ztimer64 even when not needed
2022-03-24 11:36:49 +01:00
Leandro Lanzieri
81cb769cad
makefiles: avoid building archives when compiling 2020-09-04 15:01:10 +02:00
Marian Buschsieweke
3b6fa61829
sys: Cleanup access to internal variables
Replace direct accesses to sched_active_thread and sched_active_pid with
the helper functions thread_getpid() and thread_get_active(). This serves
two purposes:

1. It makes accidental writes to those variable from outside core less likely.
2. Casting off the volatile qualifier is now well contained to those two
   functions
2020-08-24 20:28:11 +02:00
e4bb06227f sys/newlib_syscalls_default: don't use static msp430 heap size 2020-08-05 14:32:58 +02:00
e09383d343 sys/newlib_syscalls_default: mark _exit as used 2020-08-05 14:32:58 +02:00
23efdcc786 sys/newlib: explicitly define heap for msp430 2020-08-05 14:29:07 +02:00
83f13b8b22 sys/newlib: provide msp430 specific linker symbol names 2020-08-05 14:29:07 +02:00
Gunar Schorcht
fd1052bc9a sys/newlib: update heap_stats for multiple heaps 2020-02-29 12:24:39 +01:00
Benjamin Valentin
2ed0dd7405 sys/newlib: enable multiple heaps in _sbrk_r
Some MCUs have non-continuous memory regions.
To support those, iterate over all available memory regions
and allocate the first region that fits.
2020-02-20 17:11:25 +01:00
Kevin "Tristate Tom" Weiss
4b7c5915ec
Merge pull request #10953 from gschorcht/sys/shell/heap_cmd/pr
sys/shell: add heap command
2019-10-04 13:49:57 +02:00
Marian Buschsieweke
df27dbef7a
cpu: Moved stdio_init() into cpu_init()
- Removed stdio_init() from newlib's _init(), as this is too late in the boot
  process to allow DEBUG()ing during periph_init()
- Added stdio_init() to the various cpu_init() routines of the ARM CPUs just
  before periph_init()
2019-09-06 16:54:23 +02:00
Gunar Schorcht
140987fc3a sys/shell: cleanup the heap command approach
Replaces the special heap command approach of the lpc_common module with a more general heap command approach. Module lpc_common was already removed with PR #2118. PR #2118 integrated cpu/lpc_common code in cpu/lpc2387. With PR #3530 special heap handling for cpu/lpc2387 was replaced by newlib memory management which uses _sbrk_r to allocate chunks from the heap. _sbrk_r uses _sheap and _eheap symbols that are defined in lpc2387.ld and can be used together with mallinfo function for heap statistics.
2019-09-05 09:18:46 +02:00
Hauke Petersen
c2184f3454 boards/cpu/drivers/sys: use generic stdio_ if 2018-08-22 10:54:25 +02:00
danpetry
ce37449dd5
Merge pull request #9090 from jcarrano/newlib-missing-functions
sys/newlib: Bugfix, add missing syscalls (only stubs)
2018-06-21 13:55:38 +02:00
7d013eb2b6 sys: fix doxygen grouping 2018-06-11 19:12:02 +02:00
Juan Carrano
cce83b4443 sys/newlib: Add missing syscalls (stubs).
Add small stubs for _times_r and _link_r so that code using times()
or link() can still compile. The functions are marked as not implemented
and return invalid codes.
2018-06-11 14:54:47 +02:00
Joakim Nohlgård
01970e9644 sys/newlib_syscalls_default: Add _gettimeofday_r stub 2018-03-18 10:04:51 +01:00
Neil Jones
7b824fe7fe sys/newlib: Allow building default syscall implementation for mips
We can either use the UHI syscall implementation or the RIOT default
one (targeted at VFS, uart-stdio will be added once uart rx is added
to pic32).
2017-06-28 12:56:53 +01:00
Joakim Nohlgård
b81b66672e newlib: Split newlib into one generic part and one default syscalls part 2017-04-05 13:55:38 +02:00