diff options
| author | Damien George <damien.p.george@gmail.com> | 2019-08-05 16:32:10 +1000 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2019-08-06 15:58:23 +1000 |
| commit | cd35dd9d9a29836906acdce60c931f6352b536d0 (patch) | |
| tree | 7fe4f06cceb784bafb26794c847babd34e90d162 /tests/micropython/viper_addr.py | |
| parent | 2d3d4f74830eddaba8e13ca9a860a5cb7fb2f163 (diff) | |
py: Allow to pass in read-only buffers to viper and inline-asm funcs.
Fixes #4936.
Diffstat (limited to 'tests/micropython/viper_addr.py')
| -rw-r--r-- | tests/micropython/viper_addr.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/micropython/viper_addr.py b/tests/micropython/viper_addr.py index cd953ce07..0d8efb90b 100644 --- a/tests/micropython/viper_addr.py +++ b/tests/micropython/viper_addr.py @@ -9,6 +9,13 @@ def memset(dest:ptr8, c:int, n:int): for i in range(n): dest[i] = c +@micropython.viper +def memsum(src:ptr8, n:int) -> int: + s = 0 + for i in range(n): + s += src[i] + return s + # create array and get its address ar = bytearray('0000') addr = get_addr(ar) @@ -27,3 +34,6 @@ print(ar) # pass direct pointer to array buffer, with offset memset(addr + 2, ord('3'), len(ar) - 2) print(ar) + +# pass a read-only bytes object in +print(memsum(b'\x01\x02\x03\x04', 4)) |
