This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TMS320F28069: DCL Version Update and Warning #10462

Part Number: TMS320F28069
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

Tool/software: Code Composer Studio

Hello all


Previously I have been using DCL V1.0 provided in the ControlSuite and didn't get any warnings or errors, and PI Controller worked well, Now I change the DCL Library to V3.3 provided in C2000Ware+SDK;

I am using the library for CLA and came across couple of problems;

1.) When I try to use "DCL_runPI_L1" function I get unresolved symbol error eventhough  file with '.cla' extension has access to 'DCLCLA.h'

2.) When I try to use "DCL_runPI_L3" I don't get any errors but this time ı Get the warning below; 

#10462-D Symbol, "CLA_Shared", referenced in "./System/Tasks/SM/source/ActiveState.obj", assumes that data is blocked but is accessing non-blocked data in "./System/Initialization/source/CLA_Compiler_Init.obj". Runtime failures may result.

Here I should mention that the data structure  "CLA_Shared" was also present in the code that uses previously installed library, and working fine without any warning or error.

3.) I don't exactly understand the difference between DCL functions runPI_L1 & runPI_L3, it seems one of them is inlined-c whereas other one is pure assembly, But can ı conclude that ı can use either of them ?

I appreciate any help, İlker.

  • Ilker,

    1. The unresolved symbol error is probably because you have not added the assembly source file "DCL_PI_L1.asm" to your project. The L1 controller is an assembly module, so you'll need the assembly source file.

    2. I can't see that this error has anything to do with the DCL. In the DCL examples there is a file "CLA_shared.h", but there is no data structure by that name. I suggest looking at where that data structure is referenced in your code, that may give you a clue as to what is wrong.  

    3. Correct, that is the only difference. The PI_L1 and PI_L3 controllers are functionally equivalent, and you can use either one of them.

    That there is a code example of the PI controller running on the F28069 CLA in the DCL package. If you installed the latest C2000Ware at the default location, the example will be at:
    C:\ti\c2000\C2000Ware_3_01_00_00\libraries\control\DCL\c28\examples\F28069_PI_CLA

    I think this could be a useful reference for you.

    Regards,

    Richard

  • Richard


    1.) From "Project Properties - Linked Resources" I added the Path to the Library Location as Root, and from "Project Properties-  C200 Linker - File Search Paths", I include the path to source and header directories as library search paths. You can see that assembly files are included to the project. 



    2.) I don't use the TI Provided "CLA_Shared.h" , unfortunately back when I started forming the project I didn't know that there exist such files, I formed my own "CLA_Shared.h" , I will compare mine with the one you provided, but still, can you tell me more about this warning;

    #10462-D Symbol, "CLA_Shared", referenced in "./System/Tasks/SM/source/ActiveState.obj", assumes that data is blocked but is accessing non-blocked data in "./System/Initialization/source/CLA_Compiler_Init.obj". Runtime failures may result.

    Thank you for the previous quick Response, Have a nice day, İlker.

  • Ilker,

    Adding that path to your project include options is only telling the compiler where it can find your include files.  It's not looking there for source.  You need to add that assembly file to your source directory.  You can just copy it into the same directory as your other source files.

    I don't know any more about the error but I will ask someone else to comment.

    Regards,

    Richard

  • İlker,

    The warning you encountered is a new diagnostic originally added for detecting C code accesses to definitions in CLA code where the C code is expecting the data to be blocked, and CLA code only supports unblocked data.

    For more background please see below 20.2.x.LTS README.html entry for the new diagnostic which
    includes a link to a good article on blocked vs non-blocked data:
    http://software-dl.ti.com/codegen/esd/cgt_public_sw/C2000/20.2.1.LTS/README.html#new-diagnostic-checks 

    Non-blocked data always requires the DP register to be loaded prior to the access. However, for blocked data, the compiler ensures that all blocked accesses will fit on the same data page. This then allows for DP-load optimizations where we remove DP-loads that are no longer needed because an earlier DP load will allow accessing all the items that the compiler ensured will fit on a data page.

    That said, however, there is a possibility of false positives for the warning though we tried to eliminate most.

    You can safely ignore this warning if you can confirm that the C code data access of the CLA defined data are both accessing the same memory location.

    If you need more assistance with this then please submit a reproducible test case so we can help review.

    Regards,
    Greg