Write a file into memory
ngultra_memory_programmer.py --write_file <your_file> --address <start_address>
Writing a random file of 256B into the eRAM
dd if=/dev/urandom of=random.bin bs=256 count=1 ngultra_memory_programmer.py --write_file random.bin --address 0x3000000
Dump memory into a file into memory
ngultra_memory_programmer.py --dump <your_file> --address <start_address> --count <number of 32bits block>
Reading first 256B of the eRAM
ngultra_memory_programmer.py --dump random.bin --address 0x3000000 --count 64
Read a single 32bits register
ngultra_memory_programmer.py --read_register --address <start_address>
Reading status of the BitStream Manager
ngultra_memory_programmer.py --read_register --address 0xD701014 Result should be 0x0001000e
Writing a single 32bits register
ngultra_memory_programmer.py --write_register <value> --address <start_address>
Writing first 32bits of the eRAM with 0XA5A5A5A5
ngultra_memory_programmer.py --write_register 0XA5A5A5A5 --address 0x3000000
Register could be read to check the correct execution of the command.
Choosing the accessor for the memory access
All these commands could access the memory via:
-
the DAP APB (for Coresight registers);
-
the DAP AXI;
-
any of the 4 cores.
This could be done via adding respectively:
-
--coresight
; -
--axi
; -
--core N
(where N is the idx of the core [0-3]).
The default accessor is: core 0.