Hi All,
So I am looking for an explanation here more than anything. When the hardware layer for the hercules is set up, all of the memory mapped system registers are given a macro symbol in the following fashion:
#define systemREG1 ((systemBASE1_t *)0xFFFFFF00U)
Now, whenever I need to access this register I can use it like a pointer and deallocate it anywhere in my application code like this:
systemREG1 -> MSINENA = 0x1U;
In reality, what the compiler doing is this:
((systemBASE1_t *)0xFFFFFF00U) -> MSINENA = 0x1U;
My question is: at run time, how is ((systemBASE1_t *)0xFFFFFF00U) stored and used? What does the compiler do to that symbol?
The reason I am asking this is because I am using the PBIST, and after I execute the March13N algorithm whenever I dereference systemREG1 I get a garbage value. BTW, I already have a fix for this that was answered in this post: e2e.ti.com/.../1730430. I am looking for an explanation as to what exactly happens to systemREG1 after the March13N algorithm is used, and how does the compiler treat a Macro such as systemREG1.
Thanks!
- Warren