b746aec729
Add public_labels, test of labels
...
Now, a label declared with `public foo:` will be exported in the
`public_labels` property of `Program` objects.
Additionally, a test of this feature as well as the existing
duplicate label detection feature is added.
Change the return type of `assemble` so that it better reflects reality
Add docstrings for the public properties of Program objects
2024-09-19 22:13:14 -05:00
ce01b8c10f
add Program.from_file
2024-09-15 14:31:01 -05:00
679feb8e21
Fix assembly of irq & mov rxfifo[] instructions to match sdk pioasm
2024-09-13 16:32:12 -05:00
87bf9a7830
remove a debug print
2024-09-13 14:51:06 -05:00
bdc9fe8277
Update based on review comments
2024-09-13 14:44:11 -05:00
919d075f34
Fix checking fifo mode for mov rxfifo instructions
2024-09-13 09:55:26 -05:00
8a97f71b0c
More piov2 updates
...
* As an extension, ".fifo auto" may be specified to request CircuitPython's
auto fifo join behavior
* bounds check on `.set` directive improved
* redundant kwargs (e.g., out_count vs out_pin_count) fixed
2024-09-10 14:09:34 -05:00
b379f05b29
Merge mov_status_count & _param into mov_status_n
...
.. and correct .mov_status irq prev and range handling
2024-09-10 11:20:48 -05:00
86f02e8b83
Add wait jmppin & wait irq prev/next
2024-09-08 08:01:09 -05:00
7acebc63b0
Add mov pindirs
2024-09-07 08:50:25 -05:00
895f8eb056
add mov rxfifo
2024-09-07 08:43:56 -05:00
4f98480aeb
Add irq prev/next
2024-09-05 19:54:52 -05:00
e9858c3666
Add .set
2024-09-05 13:50:19 -05:00
ed74947440
Add .out directive
2024-09-05 13:46:47 -05:00
5659a2672a
Improve error handling of origin & mov_status directives
2024-09-05 13:18:49 -05:00
4deafa6c65
Add and test .in directive
2024-09-05 13:18:26 -05:00
ff1f57dfb1
Check directives that must come before an instruction
2024-09-05 13:13:20 -05:00
9874ce3f51
Start to consolidate argument range checking
2024-09-05 09:56:47 -05:00
cfa740077f
Improve line splitting
2024-09-05 09:55:08 -05:00
cfee88e040
Add .mov_status
2024-09-05 09:49:50 -05:00
3da0f6cea2
Add .fifo directive
2024-09-05 09:05:47 -05:00
a8fa218e45
Recognize .pio_version directive (integer arguments only)
2024-09-05 08:37:43 -05:00
be66c02eb3
Better diagnose the incorrect lines like "side 1" or "[5]"
...
Before this, the exception would be 'IndexError: list index out of range'.
Now it is 'Unknown instruction: side' or similar.
(These need an instruction, even if it's a `nop`: `nop side 1 [5]`)
2024-07-10 08:09:46 -05:00
KB Sriram
3e6a8bc392
Add type annotations for library and tests.
...
Verified that `mypy --strict adafruit_pioasm.py tests` runs without
errors.
Fixes: https://github.com/adafruit/Adafruit_CircuitPython_PIOASM/issues/24
2024-05-27 12:30:52 -07:00
KB Sriram
d87b4461ae
Add tests for "out" and "in".
...
Also added more descriptive errors for invalid
source/destination values.
Fixes https://github.com/adafruit/Adafruit_CircuitPython_PIOASM/issues/44
2024-04-25 22:50:39 -07:00
Gebhartj
6ac60b4554
repair inscorect directive .offset to .origin
...
.offset directive do not exist in pioasm
2024-01-24 08:09:03 +01:00
3bacee4ad2
support .offset pseudo-op
2023-08-05 15:57:13 -05:00
Alec Delaney
31fabd6150
Update version string
2022-08-16 18:09:15 -04:00
5429dc1f59
accept 0x, 0b, 0o literals in most places numbers can be used
...
Closes : #30 (though I don't know what octal syntax is accepted by
official pioasm, we will accept python-style 0o567 not C-style 0567)
2022-04-24 20:06:24 -05:00
7110473f04
Merge remote-tracking branch 'origin/main' into wrap
2022-04-06 08:42:07 -05:00
16adbe4464
The core doesn't like sideset_pin_count=0, so don't send it
2022-04-06 08:41:58 -05:00
Alec Delaney
5aa37e1a46
"Reformatted per new black version"
2022-03-29 18:19:18 -04:00
d16bd7e6a4
Add support for wrap/wrap_target
...
.. This also needs support in the core for specifying them in the
StateMachine constructor.
2022-02-13 13:22:03 -06:00
ac5290f6c7
Add pretty-printing of PIO programs (into C for now)
2022-02-01 11:04:47 -06:00
2722649975
Fix name of parameter in pio_kwargs
2022-02-01 11:00:45 -06:00
68a5881044
black
2022-01-12 08:43:33 -06:00
666f4ef2c9
Merge remote-tracking branch 'origin/main' into program-object
2022-01-12 08:38:43 -06:00
Danny Staple
df0662297d
make my exceptions more consistent, and add tests.
2022-01-02 16:07:07 +00:00
Danny Staple
b065422813
Black reformat
2022-01-02 13:22:11 +00:00
Danny Staple
fa2b8689ce
Typo spotted after tweeting... Doh
2022-01-02 13:02:33 +00:00
Danny Staple
0381b30119
Fix the pylint, add in one other I've been using
2022-01-02 12:56:55 +00:00
Danny Staple
ac1cb9937d
Copied incorrectly
2022-01-02 12:09:21 +00:00
Danny Staple
e1e5e2a3ee
Add some helpful exception wrappers
...
These make errors easier to fix.
2022-01-02 12:07:24 +00:00
Jeff Epler
9707333567
Add Program class, type information
...
An instance of the `Program` class has the `.assembled` property
as well as the `pio_kwargs` property. This allows passing information
from the assembler to the StateMachine constructor, in a way that can
be extended in future versions (e.g., for .wrap / .wrap_target)
This re-indents a lot of code so it may be better viewed with whitespace
changes hidden.
Tests are added for the limits of the side-set and delay values. An
off-by-one bug with the sideset_value limit was fixed.
2021-12-26 10:35:41 -06:00
Scott Shawcroft
6fd0518867
Fix tests and add one
2021-12-22 12:35:25 -08:00
Scott Shawcroft
9a1d5c6141
Add sideset assembly support.
...
You must also set `sideset_enable` when creating the rp2pio.StateMachine
object.
Fixes #16 and fixes #21 .
2021-12-22 12:10:14 -08:00
Scott Shawcroft
adc3ae56d9
Merge pull request #17 from gamblor21/mov_operators
...
Add all mov operators
2021-03-24 08:39:35 -07:00
gamblor21
bb7c5717ab
Add case of op and then space
2021-03-23 14:12:46 -05:00
55bee3f66c
fix an error while raising an invalid instruction error
2021-03-22 21:09:54 -05:00
gamblor21
f3d4b2ff4c
Black fix
2021-03-20 16:35:29 -05:00