Aug 17, 2018
11:45 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 17, 2018
11:45 AM
I'm trying to figure out a clock issue we're having. The register I want to read is ANAOSCHPCTRL (analog oscillator high precision control).
Two issues, seemingly related.
1. When I use the register viewer in Keil, I see all the registers as options using the pull down to select a register. Some registers in that viewer window work well (CANNode, SCU_Clock, etc). Some peripherals show registers and locations, but no values, just always show zero value.
I can manually read or write the values in code, so the headers are correct. I cannot read or set them using Keil's register window.
The base address for SCU 0x4001'0000, I can see SCU_CLOCK registers in the peripheral register window at 0x4001'0314 and the values of it, but no values for 0x4000'1090 SCU_ANALOG for example.
2. The MEMORY VIEWER window in Keil will not show anything in the 0x4000'0000 range. Instead of zeros or 0xFF or proper values I see "??" for each byte. I think these problems are related. Other memory access like 0x1000'0000 works.
It's very difficult to debug without register values. I'm trying to figure out who is at fault here. Infineon or Keil. I'm guessing the XML-like config files defined for Keil are incorrect.
Two issues, seemingly related.
1. When I use the register viewer in Keil, I see all the registers as options using the pull down to select a register. Some registers in that viewer window work well (CANNode, SCU_Clock, etc). Some peripherals show registers and locations, but no values, just always show zero value.
I can manually read or write the values in code, so the headers are correct. I cannot read or set them using Keil's register window.
The base address for SCU 0x4001'0000, I can see SCU_CLOCK registers in the peripheral register window at 0x4001'0314 and the values of it, but no values for 0x4000'1090 SCU_ANALOG for example.
2. The MEMORY VIEWER window in Keil will not show anything in the 0x4000'0000 range. Instead of zeros or 0xFF or proper values I see "??" for each byte. I think these problems are related. Other memory access like 0x1000'0000 works.
It's very difficult to debug without register values. I'm trying to figure out who is at fault here. Infineon or Keil. I'm guessing the XML-like config files defined for Keil are incorrect.
8 Replies
Aug 17, 2018
03:32 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 17, 2018
03:32 PM
Added development.
It seems when using SEGGER JLINK (the one on the board) that memory outside of certain regions does not READ.
Reading 4000'0300 (SCU_CLK or something around it) for 20 bytes OK and has data. Read same for 21 bytes: NO. No error description other than Could Not Read Memory.
Reading 4001'1000 (SCU_ANALOG) for anything more than 2 bytes fails. 2 bytes shows the correct default value.
IT SEEMS TO ME... that for some reason JLINK (not Keil) is only able to read specifc bytes from the chip. When Keil asks JLINK to show memory data it probably asks for 16+ bytes at a time, meaning the JLINK is probably telling Keil "could not read memory" and Keil shows this to me as "??". If I could somehow get Keil to read only 2 bytes, it seems that would work.
Seems like default behavior should be that when memory can't be read by Segger that it still reports the things in can read. Could this be some memory protection that isn't being disabled in the startup file?
It seems when using SEGGER JLINK (the one on the board) that memory outside of certain regions does not READ.
Reading 4000'0300 (SCU_CLK or something around it) for 20 bytes OK and has data. Read same for 21 bytes: NO. No error description other than Could Not Read Memory.
Reading 4001'1000 (SCU_ANALOG) for anything more than 2 bytes fails. 2 bytes shows the correct default value.
IT SEEMS TO ME... that for some reason JLINK (not Keil) is only able to read specifc bytes from the chip. When Keil asks JLINK to show memory data it probably asks for 16+ bytes at a time, meaning the JLINK is probably telling Keil "could not read memory" and Keil shows this to me as "??". If I could somehow get Keil to read only 2 bytes, it seems that would work.
Seems like default behavior should be that when memory can't be read by Segger that it still reports the things in can read. Could this be some memory protection that isn't being disabled in the startup file?
Aug 24, 2018
12:56 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 24, 2018
12:56 PM
Nothing?
About the same I've gotten back from Infineon on the official support emails too 😕
About the same I've gotten back from Infineon on the official support emails too 😕
Aug 30, 2018
03:03 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 30, 2018
03:03 AM
Hi,
I was able to reproduce your issue. Although only in Keil MDK, using Ozone from Segger (which uses the same SVD file) the correct content of the registers is displayed.

It seems that Keil MDK is having some issues when accessing 16bit registers (???)
We will contact Keil and inform you as soon as a solution is available.
Regards,
Jesus
I was able to reproduce your issue. Although only in Keil MDK, using Ozone from Segger (which uses the same SVD file) the correct content of the registers is displayed.
It seems that Keil MDK is having some issues when accessing 16bit registers (???)
We will contact Keil and inform you as soon as a solution is available.
Regards,
Jesus
Sep 21, 2018
04:11 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sep 21, 2018
04:11 PM
Any update from Keil on this?
Sep 25, 2018
12:42 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sep 25, 2018
12:42 AM
Hi S R,
Segger and Keil are informend and are working on an bugfix.
We expect an answer soon.
Regards,
Eric
Segger and Keil are informend and are working on an bugfix.
We expect an answer soon.
Regards,
Eric
Nov 27, 2018
03:36 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Nov 27, 2018
03:36 PM
Eric,
Any update to this? We're working on something and Sleep Mode registers are not readable because they are 16bit.
Any update to this? We're working on something and Sleep Mode registers are not readable because they are 16bit.
Dec 20, 2018
05:11 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dec 20, 2018
05:11 PM
Should I open a ticket for this on the DAVE/Debugger support side?
Jan 08, 2019
02:14 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan 08, 2019
02:14 AM
Hi,
The pre-release of Keil MDK v5.27, http://www2.keil.com/mdk5/527pre, solves the issue.
Regards,
Jesus
The pre-release of Keil MDK v5.27, http://www2.keil.com/mdk5/527pre, solves the issue.
Regards,
Jesus