I/O Registers
Hello Leyonardo,
I agree with you, and I had the same issue as yours and answers are not solving them for me neither.
It seems I could get around that problem by applying the following procedure:
- At the root of your project directory on your hard drive, you should have a file named “ Debug.cfg”. Try to find it in subdirs if it is not located at the root. Also make sure that you ran the debugger once at least so that it is properly created.
- Do a backup of this file first
- Then open this file and look for the following line (depends on your target):
set CHIPNAME STM32F429ZITx
And replace it with this file name (remove the capital letters between the number and the ‘x’):
set CHIPNAME STM32F429x
The replacement text should be only one or two “x” after the number (e.g. 429 here). It must match the file names located in this directory (or close to that, check exact directory on your computer):
C:\Ac6\SystemWorkbench\plugins\fr.ac6.mcu.ide_2.0.0.201705091103\resources\cmsis\STMicroelectronics_CMSIS_SVD
The reason why we can do this is because the debugger does normally not need to know about the pin numbers (first letter), nor about the flash size (second letter) of the MCU.
Another way to do it would be to copy-paste the STM32F429x.svd to the STM32F429ZITx.svd file in the same directory as mentioned above.
Once the registers have been found, it seems to keep a cache of it in the program.
I don’t know if this is related only to the J-Link debugger mode (using the “GDB SEGGER J-Link” debug configuration) or also for the ST-Link configuration (using “Ac6 STM32” Debug Configuration), as the registers remain present if they have successfully been read once by the application.
At least it seems to properly solve the issue and for both configurations.
Please some people test this and report the result so Ac6 can include the appropriate fixes in the next release. Make sure the registers you are looking for do really show the proper values.
Hope this helps.
Dulan