aboutsummaryrefslogtreecommitdiff
path: root/tests/extmod
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-07-06 00:08:33 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-07-08 11:37:23 +0300
commit354d17523f599746a84e5b22fa670c9910137947 (patch)
treebfea06b4d85306803cd9a9bb0a3ec6bcdfd25d6c /tests/extmod
parenta0a3de60becb0147be209ab5a32139ea9cec3d2e (diff)
modmachine: Implement physical memory access using /dev/mem (Linux, etc).
This requires root access. And on recent Linux kernels, with CONFIG_STRICT_DEVMEM option enabled, only address ranges listed in /proc/iomem can be accessed. The above compiled-time option can be however overriden with boot-time option "iomem=relaxed". This also removed separate read/write paths - there unlikely would be a case when they're different.
Diffstat (limited to 'tests/extmod')
-rw-r--r--tests/extmod/machine1.py14
-rw-r--r--tests/extmod/machine1.py.exp3
-rw-r--r--tests/extmod/machine_mem.py16
-rw-r--r--tests/extmod/machine_mem.py.exp1
4 files changed, 17 insertions, 17 deletions
diff --git a/tests/extmod/machine1.py b/tests/extmod/machine1.py
index e7fd40d4d..af4dacd03 100644
--- a/tests/extmod/machine1.py
+++ b/tests/extmod/machine1.py
@@ -7,22 +7,8 @@ except ImportError:
import sys
sys.exit()
-import uctypes
-
print(machine.mem8)
-buf = bytearray(8)
-addr = uctypes.addressof(buf)
-
-machine.mem8[addr] = 123
-print(machine.mem8[addr])
-
-machine.mem16[addr] = 12345
-print(machine.mem16[addr])
-
-machine.mem32[addr] = 123456789
-print(machine.mem32[addr])
-
try:
machine.mem16[1]
except ValueError:
diff --git a/tests/extmod/machine1.py.exp b/tests/extmod/machine1.py.exp
index e46afc752..bb421ea5c 100644
--- a/tests/extmod/machine1.py.exp
+++ b/tests/extmod/machine1.py.exp
@@ -1,7 +1,4 @@
<8-bit memory>
-123
-12345
-123456789
ValueError
ValueError
TypeError
diff --git a/tests/extmod/machine_mem.py b/tests/extmod/machine_mem.py
new file mode 100644
index 000000000..7d8a9ac01
--- /dev/null
+++ b/tests/extmod/machine_mem.py
@@ -0,0 +1,16 @@
+# This test requires root privilege, so is usually skipped
+# It also assumes x86 legacy hardware (with Video BIOS present).
+
+try:
+ import machine
+except ImportError:
+ print("SKIP")
+ import sys
+ sys.exit()
+
+try:
+ print(hex(machine.mem16[0xc0000]))
+except OSError:
+ print("SKIP")
+ import sys
+ sys.exit()
diff --git a/tests/extmod/machine_mem.py.exp b/tests/extmod/machine_mem.py.exp
new file mode 100644
index 000000000..371f8fa44
--- /dev/null
+++ b/tests/extmod/machine_mem.py.exp
@@ -0,0 +1 @@
+0xaa55