Write a file into memory
ngultra_memory_programmer.py –write_file <your_file> –address <start_address>
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>
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>
/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>
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