I may add a few bits & pieces for your writing, which may be in the document or forum at other places.:
1. When supplying a pointer to an array object to an assembler function, not type checking is performed. For instance, a bytes object and a bytearray object can both be accessed in the same manner, at least for reading. That may help sometimes, but obviously is risky.
2. Barrier instructions are not implemented. When doing fast accesses to I/O ports, you may see unexpected signal shapes at the port for instance when you toggle a GPIO pin on/off very fast. The 'off' may happen before the 'on' in completed. As a preliminary cure, I coded the DSB instruction manually.
Code: Select all
data(1, 0xbf, 0xf3, 0x4f, 0x8f) # DSB instruction