CCS 4.1.2
F283x Simulator
I'm having major trouble trying to view a structure of a TSK_Obj from BIOS. My issues are similar to those described by other customers in the thread What does "cannot load from non-primitive location" mean ?.
Here's what I do. First I create a task in the BIOS GUI:
This in turn generates several files. The structure itself is declared in bioscfg.s28 (i.e. assembly):
bioscfg.s28 said:;; ======== TSK_Obj BradTSK ========
;; <add comments here>
;;
;; TSK_Obj BradTSK (iFXN, iARG0, iARG1, iARG2, iARG3, iARG4, iARG5, iARG6, iARG7, iAUTOSTK, iMANSTK, iSTKSZ, iSTKSEG, iPRI, iENV, iEXITFLAG, iUSETSKNAME, iSTATREG, Order, filter, maxformat, sumformat, avgformat, filtmaxmult, filtsummult, unittype)
.global BradTSK
.asg _my_task, _iFXN
.asg 00H, _iARG0
.asg 00H, _iARG1
.asg 00H, _iARG2
.asg 00H, _iARG3
.asg 00H, _iARG4
.asg 00H, _iARG5
.asg 00H, _iARG6
.asg 00H, _iARG7
.asg 01H, _iAUTOSTK
.asg null, _iMANSTK
.asg 0800H, _iSTKSZ
.asg LSARAM, _iSTKSEG
.asg 01H, _iPRI
.asg 00H, _iENV
.asg 01H, _iEXITFLAG
.asg 00H, _iUSETSKNAME
.asg 00H, _iSTATREG
.asg 01H, _Order
.asg 02H, _filter
.asg "%g inst", _maxformat
.asg "%g inst", _sumformat
.asg "%.2f inst", _avgformat
.asg 01H, _filtmaxmult
.asg 01H, _filtsummult
.asg 00H, _unittype
TSK_Obj 1, BradTSK, 0, _iFXN, _iARG0, _iARG1, _iARG2, _iARG3, _iARG4, _iARG5, _iARG6, _iARG7, _iAUTOSTK, _iMANSTK, _iSTKSZ, _iSTKSEG, _iPRI, _iENV, _iEXITFLAG, _iUSETSKNAME, _iSTATREG, _Order, _filter, _maxformat, _sumformat, _avgformat, _filtmaxmult, _filtsummult, _unittype
It also generates in the linker an assignment to give me access from C:
bioscfg.cmd said:_BradTSK = BradTSK;
Finally it generates a header file with the proper C extern:
bioscfg.h said:extern TSK_Obj BradTSK;
Since "BradTSK" is of type TSK_Obj I expected the watch window to utilize the structure definition from BIOS:
tsk.h said:typedef struct TSK_Obj {
KNL_Obj kobj; /* kernel object */
Ptr stack; /* used in TSK_delete() */
#ifdef _55_
Ptr sysstack; /* system stack for 55x */
/* Unused in _55Pb_ */
#endif
size_t stacksize; /* ditto */
#ifdef _55_
size_t sysstacksize; /* system stackszie for 55x */
/* Unused in _55Pb_ */
#endif
Int stackseg; /* segment to allocate stack from */
String name; /* printable name */
Ptr environ; /* environment pointer */
Int errno; /* TSK_seterr()/TSK_geterr() */
Bool exitflag; /* FALSE for server tasks */
} TSK_Obj, *TSK_Handle;
I haven't been able to figure out a way to view that object! Here's a screenshot of things I tried and the corresponding memory:
Any other ideas?
Thanks,
Brad