Last active
July 19, 2017 13:20
-
-
Save carlosperate/e54c7a0fe432615dab73ae7778df914d to your computer and use it in GitHub Desktop.
micro:bit MicroPython register access
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FICR_BASE_ADDRESS = 0x10000000 | |
CODE_PAGE_SIZE = FICR_BASE_ADDRESS + 0x010 | |
CODE_SIZE = FICR_BASE_ADDRESS + 0x014 | |
@micropython.asm_thumb | |
def reg_read(r0): | |
ldr(r0, [r0, 0]) | |
@micropython.asm_thumb | |
def reg_write(r0, r1): | |
str(r1, [r0, 0]) | |
@micropython.asm_thumb | |
def reg_and(r0, r1): | |
ldr(r2, [r0, 0]) | |
and_(r2, r1) | |
str(r2, [r0, 0]) | |
@micropython.asm_thumb | |
def reg_or(r0, r1): | |
ldr(r2, [r0, 0]) | |
orr(r2, r1) | |
str(r2, [r0, 0]) | |
@micropython.asm_thumb | |
def reg_bit_clear(r0, r1): | |
ldr(r2, [r0, 0]) | |
bic(r2, r1) | |
str(r2, [r0, 0]) | |
while True: | |
print("Should be 1024: {}".format(reg_read(CODE_PAGE_SIZE))) | |
print("Should be 256: {}".format(reg_read(CODE_SIZE))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment