10000 RingIO is limited to 64kB · Issue #16560 · micropython/micropython · GitHub
[go: up one dir, main page]

Skip to content
RingIO is limited to 64kB #16560
Open
Open
@ma261065

Description

@ma261065

Description

Discussion: #9458 (comment)

Currently RingIO is limited to creating ring buffers of 64kB by the use of the following uint16_t variables in ringbuf.h:

typedef struct _ringbuf_t {
    uint8_t *buf;
    uint16_t size;
    uint16_t iget;
    uint16_t iput;
} ringbuf_t;

The suggestion is to change these to uint32_t to allow for >64kB ringbuffers. This would only be useful in ports with more than 64kB of heap available, so it may be worthwhile having different versions for different ports.

Or maybe the extra 6 bytes is acceptable across all ports for the sake of simplicity/consistency?

I note that other structures (like bytearray) don't have a 64kB limit, so this would seem to be some sort of precedent for changing the limit.

Code Size

This change would add 6 bytes to RAM usage whenever RingIO is invoked

Implementation

I hope the MicroPython maintainers or community will implement this feature

Code of Conduct

Yes, I agree

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementFeature requests, new feature implementations

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0