Skip to content

Commit 4967b68

Browse files
committed
V3/README.md Move V2 porting guide to end.
1 parent 7f3ffe1 commit 4967b68

File tree

2 files changed

+29
-20
lines changed

2 files changed

+29
-20
lines changed

v3/README.md

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ This [lightweight scheduler](./docs/SCHEDULE.md) enables tasks to be scheduled
3131
at future times. These can be assigned in a flexible way: a task might run at
3232
4.10am on Monday and Friday if there's no "r" in the month.
3333

34+
### A monitor
35+
36+
This [monitor](./as_demos/monitor/README.md) enables a running `uasyncio`
37+
application to be monitored using a Pi Pico, ideally with a scope or logic
38+
analyser.
39+
3440
### Asynchronous device drivers
3541

3642
These device drivers are intended as examples of asynchronous code which are
@@ -80,6 +86,26 @@ supported.
8086
The `Future` class is not supported, nor are the `event_loop` methods
8187
`call_soon`, `call_later`, `call_at`.
8288

89+
## 2.1 Outstanding issues with V3
90+
91+
V3 is still a work in progress. The following is a list of issues which I hope
92+
will be addressed in due course.
93+
94+
### 2.1.1 Fast I/O scheduling
95+
96+
There is currently no support for this: I/O is scheduled in round robin fashion
97+
with other tasks. There are situations where this is too slow, for example in
98+
I2S applications and ones involving multiple fast I/O streams, e.g. from UARTs.
99+
In these applications there is still a use case for the `fast_io` V2 variant.
100+
101+
### 2.1.2 Synchronisation primitives
102+
103+
These CPython primitives are outstanding:
104+
* `Semaphore`.
105+
* `BoundedSemaphore`.
106+
* `Condition`.
107+
* `Queue`.
108+
83109
# 3. Porting applications from V2
84110

85111
Many applications using the coding style advocated in the V2 tutorial will work
@@ -182,23 +208,3 @@ New versions are provided in this repository. Classes:
182208
* `Delay_ms` Software retriggerable monostable (watchdog-like object).
183209
* `Switch` Debounced switch with close and open callbacks.
184210
* `Pushbutton` Pushbutton with double-click and long press callbacks.
185-
186-
# 4. Outstanding issues with V3
187-
188-
V3 is still a work in progress. The following is a list of issues which I hope
189-
will be addressed in due course.
190-
191-
## 4.1 Fast I/O scheduling
192-
193-
There is currently no support for this: I/O is scheduled in round robin fashion
194-
with other tasks. There are situations where this is too slow, for example in
195-
I2S applications and ones involving multiple fast I/O streams, e.g. from UARTs.
196-
In these applications there is still a use case for the `fast_io` V2 variant.
197-
198-
## 4.2 Synchronisation primitives
199-
200-
These CPython primitives are outstanding:
201-
* `Semaphore`.
202-
* `BoundedSemaphore`.
203-
* `Condition`.
204-
* `Queue`.

v3/as_demos/monitor/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,3 +207,6 @@ The baudrate of 1Mbps was chosen to minimise latency (10μs per character is
207207
fast in the context of uasyncio). It also ensures that tasks like `hog_detect`,
208208
which can be scheduled at a high rate, can't overflow the UART buffer. The
209209
1Mbps rate seems widely supported.
210+
211+
This project was inspired by
212+
[this GitHub thread](https://github.com/micropython/micropython/issues/7456).

0 commit comments

Comments
 (0)