indicate in UI whether IDE overrode attempted memory access
Attached is a simple project that demonstrates a problem that I encountered when bringing up a STM32F429 Discovery evaluation board. Rowley's project files didn't come with SDRAM support libraries, so I integrated some.
However, when I used the View->Other Windows->Memory and View->Option Windows->Watch options to access memory ranges associated with the SDRAM controller, they returned cryptic values like 0xFE and attempts to write new values to that space via the UI failed.
The project files as uploaded include a "Memory Map Macros" property of "SDRAM2_SIZE=8388608", which if defined allow the 0xD000_0000 to 0xD07F_FFFF range to become accessible in the UI. Clear that property to show the described behavior.
I don't dispute Rowley's decision to protect the user from accessing memory ranges outside those it knows. However, it would be nice if the UI gave some sort of alternate coloring or other indication that the IDE is deliberately overriding what the user is asking it to do, rather than imply to the user that the values shown are genuine.
Otherwise, the user is left pulling their hair out wondering why the code runs and tests the memory successfully but yet the Crossworks IDE seems to suggest there is a problem with that memory range.
stm32f429sdram.zip
-
Another annoyance with this cryptic behavior of returning 0xFE for memory outside the project's Memory Map is the Dissembler window. Rather than erroneously disassemble all 0xFE (and then FAIL when single-stepping because the instructions being executed are not 0xFEFEFEFE and CrossStudio's breakpoints for single stepping are in the wrong places), it would be desirable if CrossStudio said something helpful like "this memory range is outside the Memory Map".
Please sign in to leave a comment.
Comments
1 comment