Other Parts Discussed in Thread: CONTROLSUITE
I have some
typedef struct {
something mydata1;
somethingelse mydata2;
etc.
} SomeName;
typedef struct {
...
} SomeName2;
Then I have
typedef struct {
SomeName * var1;
SomeName2 * var2;
} SomeName3;
Now in file1.cla I have
SomeName3 * somePtr;
Now in file2.c I have
SomeName3 * SomeOtherPtr;
now in the file2.c for example I declare a real creation of the3rd struct
SomeName3 RealOccrenceOfStruct;
Through the linker cmd file etc. I place the above variable in LS ram So it's available to both CPU and CLA.
I similarily create the objects it points to in file2.c scope... but place in LS ram so its available to CPU and CLA.
All initialization is done by the CPU in some INIT function in file2.c.
I declare the ptr in file1.cla as external in file2.c
so
extern SomeName3 * somePtr;
in the INIT function in file2.c I set the ptr accessible to the CLA to the actual variable
someOtherPtr = &RealOccurenceOfStruct;
somePtr = someOtherPtr;
now when I try and set the ptrs contained in through somePtr I notice the following:
the var1 and var2 are spaced 2 words apart in the CPU ptr(someOtherPtr), and are spaced 1 word apart in the CLA ptr (somePtr)
so I have issues because the code generated on the CPU side trying to use the somePtr-> places it in the wrong place because of the offset...
So the question is:
Why are two pointers to the same format of structure having different spacing's on the CLA vs CPU?
Do I just need to somehow align them? if So where do I do this? Why is it having this default behavior?
Thanks.
