Occasionally, we want to fill a certain amount of memory with different values
for each byte.
If the memory that we want to fill is not larger than the
maximum display size (8B), we can do this by utilizing the
Fill operation in winIDEA Memory window.
For example, we can fill 8B from the location 0xFFFF'FF60 with the pattern 0x123456789ABCDEF, by right clicking the Memory view and then selecting Fill.
This pattern can be repeated an arbitrary number of times (within the limit of the target memory), by changing the Size parameter in the Fill dialogue.
However, if the size of the memory that we want to fill with arbitrary content
(not repeated pattern) is larger, e.g. 256B, the Fill operation is
no longer usable.
1. Write a short Python script, where you define (hard code) an array of bytes which represent the desired pattern.
2. Use the appropriate API calls to write this array to the memory (e.g. CDataController) starting at the required memory address.
1. Prepare a dummy file, in a format supported by winIDEA, which contains the
required pattern (e.g. .s19, .hex, .abs). Make sure it is linked to the start address where you want to write your
Alternatively write the desired pattern manually, through the Memory window only ONCE, and then use Right-click / Save, to dump the contents of the memory to the dummy file.
2. In winIDEA, go to Debug / Configure Session / SoC, select the SoC and click Edit.
3. Select Target Files page, and add the dummyFile created previously.
4. Now, whenever we want to write the pattern, we can do that by clicking Debug menu / Target Download / dummyFile.
Sorry this article didn't answer your question, we'd love to hear how we can improve it.
Note: This form won't submit a case. We'll just use it to make this article better.