reverse_engineering:ghidra:memory_map
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
reverse_engineering:ghidra:memory_map [2022/03/13 15:50] – kitor | reverse_engineering:ghidra:memory_map [2022/03/13 19:47] (current) – [QEMU] kitor | ||
---|---|---|---|
Line 14: | Line 14: | ||
Visual explanation may make more sense. Image below contains a complete memory map for EOS R 1.8.0 (7.3.9) ROM. | Visual explanation may make more sense. Image below contains a complete memory map for EOS R 1.8.0 (7.3.9) ROM. | ||
- | Cacheable | + | Uncacheable |
Because DryOS loads some chunks into locations inside that region (see '' | Because DryOS loads some chunks into locations inside that region (see '' | ||
Line 54: | Line 54: | ||
* '' | * '' | ||
- | Thus in this example, | + | Thus in this example, '' |
=== Extracting chunks === | === Extracting chunks === | ||
Line 99: | Line 99: | ||
| - | < | | - | < | ||
+ | ===== Adding ROMCOPY regions to Memory Map ===== | ||
+ | As mentioned before, there are two methods to add a ROMCOPY region to memory map. | ||
+ | |||
+ | Both methods are equally good, so select which one is easier for you. | ||
+ | |||
+ | You will need to repeat this step for each ROMCOPY region. | ||
+ | |||
+ | ==== via Memory map: ==== | ||
+ | |||
+ | In '' | ||
+ | |||
+ | * Block Types: select "Byte mapped" | ||
+ | * Source address: self explanatory | ||
+ | * Start address: start of " | ||
+ | * Length: length of a block (note: it will accept input as decimal if you don't use '' | ||
+ | * Block name: Something meaningful, like a memory address | ||
+ | * Select Read, | ||
+ | |||
+ | ==== via "Add to program": | ||
+ | |||
+ | Go to '' | ||
+ | |||
+ | ===== Defining rest of the memory map ===== | ||
+ | |||
+ | As explained before, ther regions (notably: RAM) will overlap with ROMCOPY regions defined in previous steps. | ||
+ | |||
+ | ==== Source of data ==== | ||
+ | |||
+ | As a rule of thumb: | ||
+ | * RAM starts at '' | ||
+ | * There' | ||
+ | * Size of RAM depends on model. | ||
+ | * '' | ||
+ | |||
+ | Memory map for [[https:// | ||
+ | |||
+ | ==== Adding regions ==== | ||
+ | |||
+ | As a reminder: Regions (mostly RAM) will overlap with ROMCOPY regions defined earlier. Unfortunately that is not possible (" | ||
+ | |||
+ | In '' | ||
+ | |||
+ | * Block Types: leave " | ||
+ | * Start address: start of memory block | ||
+ | * Length: length of a block (note: it will accept input as decimal if you don't use '' | ||
+ | * Block name: Something meaningful, like a memory address | ||
+ | * Select Read,Write flags | ||
+ | * Leave " | ||
reverse_engineering/ghidra/memory_map.1647183014.txt.gz · Last modified: 2022/03/13 15:50 by kitor