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.

TMS570LS1224: SafeTI Diagnostic Library - start-up

Part Number: TMS570LS1224
Other Parts Discussed in Thread: LAUNCHXL2-TMS57012, TMS570LS1227, , HALCOGEN

Dear Experts,
I need your help with SafeTI Diagnostic Library, ver 2.4.0. I went through the documentaion and partially throught the code and I have some thoughts and several questions. Please clarify if I missundersood and give me some answers.

1. Could I use SafeTI Diagnostic Library in my commercial project (.lib files)?

2. In CCS I opened project (build_safeTILib folder). There are few build configurations (depending on the target) but this project is empty... so I do not understad what can I do here. What is the difference between these configurations?

3. In CCS I imported demo application (SL_TMS570LS1227_NoOS. Can I use this demo with TMS570LS1224 with the LAUNCHXL2-TMS57012?

4. Stack size. In the sl_config.h file there are defined variables for stack size (~6kB).
On the other hand i my project preferences stack size = 0x800 (2kB). Should I increase this value in project settings or it is no need to do that (linker / compiler will do it automatilally).

5. In the sys_startup.c there are possibility to make some changes (range of safety diagnostic). The question is should we make safety diaganostic for peripherials which we do not want to use in our project? Or should it be turned off (peripheria, clocks etc) and it does not need diagnostic (even on the start-up)

6. In the sys_startup.c, line 1104 there is __TI_auto_init();
After that there are some tests, and in the line 1176 there is __TI_auto_init() one more time. Is it correct o mistake?

7. In app_main_NoOS.c (main) there are some diagnostic feature which we can use periodically. What does it accually mean?
E.g. if main loop in app = 10ms, should we perform some diagnostic every 10ms?
If not, how often should it be done?

8. I would like to debug DEMO project on the LAUNCHXL2-TMS57012. But there is a problem during building. Could you please help me?

  • Hi Michal,

    I will try to answer some of your questions, and defer to the software team for the rest. See my commetns embedded below.

    1. Could I use SafeTI Diagnostic Library in my commercial project (.lib files)?

    >> The usage of the SafeTI Diagnostic Library (SDL) is bound to the software license agreement and the safeTI NDA. You can find the software licensing agreement under the C:\ti\Hercules\SafeTI Diagnostic Library\2.4.0\docs folder if you installed the SDL under the default "C:\ti" folder.

    2. In CCS I opened project (build_safeTILib folder). There are few build configurations (depending on the target) but this project is empty... so I do not understad what can I do here. What is the difference between these configurations?

    >> The CCS projects under the build_* folders are for building the libraries for use with a chosen target device.

    3. In CCS I imported demo application (SL_TMS570LS1227_NoOS. Can I use this demo with TMS570LS1224 with the LAUNCHXL2-TMS57012?

    >> Yes, you can use this demo application on the TMS570LS12x launchpad.

    4. Stack size. In the sl_config.h file there are defined variables for stack size (~6kB).
    On the other hand i my project preferences stack size = 0x800 (2kB). Should I increase this value in project settings or it is no need to do that (linker / compiler will do it automatilally).

    >> Stack sizes for your own code projects need to be defined by you depending on how many local variables, arrays, etc you plan to use in your C code.

    5. In the sys_startup.c there are possibility to make some changes (range of safety diagnostic). The question is should we make safety diaganostic for peripherials which we do not want to use in our project? Or should it be turned off (peripheria, clocks etc) and it does not need diagnostic (even on the start-up)

    >> You don't have to enable diagnostics for modules that you don't plan to use in your application.

    6. In the sys_startup.c, line 1104 there is __TI_auto_init();
    After that there are some tests, and in the line 1176 there is __TI_auto_init() one more time. Is it correct o mistake?

    >> Deferred to software team.

    7. In app_main_NoOS.c (main) there are some diagnostic feature which we can use periodically. What does it accually mean?
    E.g. if main loop in app = 10ms, should we perform some diagnostic every 10ms?
    If not, how often should it be done?

    >> That depends on the safety integrity desired for your application. The TMS570LS12x safety manual describes the software diagnostic tests that should be run periodically.

    8. I would like to debug DEMO project on the LAUNCHXL2-TMS57012. But there is a problem during building. Could you please help me?

    >> It appears that you have not included the correct linker command file. These symbols are all defined in the sys_link.cmd file under the C:\ti\Hercules\SafeTI Diagnostic Library\2.4.0\demo_app\HALCoGen\TMS570LS1227_NoOS\source folder.

    Regards,
    Sunil
  • Sunil, 

    Thank you for reply. I have got some remaks/ additional questions.

    ad.6 >> I am still waiting for answer.

    ad.7 >> I know that safety manual describes the software diagnostic tests that should be run periodically. My question was what does it mean 'periodically'? Is it good to make diagnostic tests every loop (e.g. 100ms) or every hour / day? I mean, are there any restrictions for periodically diagnostic tests according to compliance with e.g. ISO26262?

    ad.8 >> You was right, linker file was excluded from build :)
    Currently I've got another issue. Firstly, I would like to debug _c_int00 (Is it possible?)
    I had changed 'run to symbol' (in project preferences -> debug -> auto run and launch options -> run to symbol = c_int00), then I started Debug session and sys_startup.c was opend. But unfortunetally, it was not file I was expected. I marked the path (red rectangle) for this file in the screen below. In project explorer everything looks good. How can I fix it?

  • ad.6 >> I am still waiting for answer.

    This is a mistake and only one call to __TI_auto_init should be needed, prior to the use of global variables.

    ad.7 >> I know that safety manual describes the software diagnostic tests that should be run periodically. My question was what does it mean 'periodically'? Is it good to make diagnostic tests every loop (e.g. 100ms) or every hour / day? I mean, are there any restrictions for periodically diagnostic tests according to compliance with e.g. ISO26262?

    I'll defer this to Sunil.

    ad.8 >> You was right, linker file was excluded from build :)
    Currently I've got another issue. Firstly, I would like to debug _c_int00 (Is it possible?)
    I had changed 'run to symbol' (in project preferences -> debug -> auto run and launch options -> run to symbol = c_int00), then I started Debug session and sys_startup.c was opend. But unfortunetally, it was not file I was expected. I marked the path (red rectangle) for this file in the screen below. In project explorer everything looks good. How can I fix it?

    I have seen this issue before but don't know how to fix it. Could you try to install the safety diagnostic library with support only for your specific device?

    Thanks,
    Girish

  • Girish, thank you.

    ad. 6 To be honest I am little disapointed that in demo app there are mistakes :)
    ad. 7 Sunil, can you answer, please?
    ad. 8 I had reinstalled lib (this time only for my device) and still was a problem. I had to leave only one HallCoGen folder (TMS570LS1227_NoOS) and manually delete other folders (for IAR, etc). Now I can debug the correct sys_startup.c file.

    One more thing according to question 5. Should I use pmmInit() function to turn off unused power domains, before or after safety diagnostics which is performed in sys_startup.c source file?
  • Michal,

    ad.7 >> I know that safety manual describes the software diagnostic tests that should be run periodically. My question was what does it mean 'periodically'? Is it good to make diagnostic tests every loop (e.g. 100ms) or every hour / day? I mean, are there any restrictions for periodically diagnostic tests according to compliance with e.g. ISO26262?

    >> The functional safety standards define specific timing parameters related to detection of faults that can cause the system to get to an unsafe state.

    These timings are completely determined by the application designer (or end user). The safety manual identifies all software-based diagnostics that are required to detect faults that do not have an online diagnostic during "normal operation".

    Regards, Sunil