I am working with the Tasking compiler in the Tricore Eclipse IDE. I am using iLLD, specifically trying to initialize the RIF module. Currently. I am running the code in the Instruction Set Simulator configuration while waiting for HW.
I am able to compile my code, but while debugging and stepping through, it runs into error when writing to a register. There is a mismatch between the function call and the function definition arguments.
For example, the IfxRif_Rif_initModule calls IfxRif_setClockPolarity(rifSFR, config->deserializer.clockPolarity); where rifSFR is 0xaaf40000 and clockPolarity is default 0.
However, when I enter the function definition IFX_INLINE void IfxRif_setClockPolarity(Ifx_RIF *rif, IfxRif_ClockPolarity polarity), rif=0x9004009c and it cannot read the variable polarity. The variable rif here does not have access to registers and the line rif->ESI.B.CP = polarity; throws an error.
This error appears - No source available for "0xa00f6080() " and debugger stops.
Any ideas on how to resolve this?
Thank you in advance,
so you just did define the prototype IFX_INLINE void IfxRif_setClockPolarity(...) and expect rif to be set correctly?
Maybe, it would be better to just use this function rather than redefine it. The definition itself does not call the function.
I have not defined the prototype - the function and prototype are both defined in the given iLLD libraries. I am calling IfxRif_Rif_initModule from my main code which in turn calls setClockPolarity.
unfortunately I am currently unable to look inside the library. Is there also a function available with a "getter" rather than a "setter"? IFX_INLINE void IfxRif_setClockPolarity(...) just sets the polarity. You know, if you take your rif pointer into it, you don't have necessarily a connection to the target register. Where did you get your rif pointer from? That could also be a reason why this is not working. If the setter does only take the target pointer and the new register content to copy it, you surly need the right ref pointer. Ok, another possibility could be the arguments. Your init module calls IfxRif_setClockPolarity(rifSFR, config->deserializer.clockPolarity); How does your function call look like? Which arguments did you use. Another possibility could be that this register is only accessible at a certain device state (maybe not during debug). For this please just define a global variable, read your SFR right after setting it back to that variable and watch it. So that's from the far and hopefully helps.