Open Disasm opened 5 years ago
As I understand it, you pull them out from SDK?
@burrbull SYSCTL
and FPIOA
were parsed from the SDK, but UARTHS
and GPIOHS
were taken from e310x
with minimal changes.
Попробую I2C набрать.
@burrbull You can modify my script for this purpose. Automation makes process less boring and error-prone.
DMAC has 64-bit registers. Is it normal? As I see, svd2rust doesn't support 64.
@burrbull I'll try to figure out what to do with this, but if there is no way to declare 64-bit register, you can use two 32-bit registers with _lo
and _hi
siffixes or something like that.
Are you sure that writing a half of register is safe? I'm not.
I'm not sure either. I see at least one major problem: such half-accesses may be forbidden in hardware, but this behavior can be checked.
DMAC has 64-bit registers. Is it normal? As I see, svd2rust doesn't support 64.
Ran into this too for the KPU (#14).
Are you sure that writing a half of register is safe? I'm not.
My experience is that it isn't. I don't know about 32 versus 64 bit but I ran into a problem where the C compiler would optimize accesses to 8-bit subfields of the FPIOA as byte writes which the hardware simply ignored (https://github.com/sipeed/LicheeDan_K210_examples/pull/3).
Edit: also, I expect this to interact badly with FIFO-like registers such as the layer argument FIFO for the KPU. Writing both halves separately, if not ignored completely, would likely fill two slots in the FIFO.
PRs exist for:
This leaves:
and (but this one is going to be problematic as (AFAIK) no public documentation exists for it):
I have some reverse-engineering results for OTP, but they are far from usable at the moment. Maybe some experiments with it can give more information.
I tried that for a bit but stopped short where I was afraid of bricking my chip :smile:
No problem, I have three of these :smile: