This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

(STM32F100) System Viewer only shows some parts of the peripherals

Hello there.
Currently working on a Project around the STM32F100R6 Processor. I am using the newest (fully licenced) uVision MDK 4.22 and ST-Peripherals Library 3.5.0.

My problem is now that the System Viewer in Keils Debugger only shows me some parts of the actual peripherals the processor has. Most important to me would be to get a view of all the used timers, but the system viewer only gives me access to TIM2, TIM3 and TIM_G (TIM_G seems to represent TIM1 according to the address-values and memory map in the F100x datasheet).
Using the memory view to get the timer config and counter values extracted would be possible, but it's not really pratical to pull out all the addresses all the time. (The F100 value line devices have TIM1-3, TIM6-7 and TIM15-17 included according to the datasheet...)

As far as i can tell, the system-viewer pulls its information about the registers out of the SFR-Files found in the install-directory of Keil. By choosing the processor-type in the project-options you get an entry in the .uvproj xml-file that points to that particular file for your processor. (Something like <SFDFile>SFD\ST\STM32F10xx\STM32F10xx4.sfr</SFDFile> in my case.)

Now, my question is, can i trick my Keil-Tools to use another SFR that maybe has a bit more peripherals defined in it? (just by editing that line in the project file?) From what i can see STM32F10xx4.sfr is by far the smallest SFR file, so it seems like the other files in that same folder (Ending in B, G, and E) would be a much better choice as they probably have a lot more definitions in it. The memory map is the same for the entire F100xx family, so the information/addresses should actually be correct, with the only problem that i could see peripherals in the system viewer that my particular processor would not have in reality, right?
So, if this actually works, what else is the SFR-File used for? Is it involved in any other essential task, like during compiling/linking process, and could the wrong filename in the .uvproj lead to serious problems there?

The other way around would be to rewrite an SFR file that fits to the processor i am actually using. (I would take one of the bigger files and strip out the information about peripherals the 100x6 does not provide.) But when i look at the .SFR file with a normal txt-editor, i can't really make much sense of how its structure works, and uVision even refuses to display the files contents when opening. Maybe there is an editor out there that can help to visualize the SFR structure for easyer editing?