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.

What are Tirtos includes and libraries for Simplelink

Other Parts Discussed in Thread: CC3200

I have been testing Simplelink with CCS now some time. I am still stuck with the examples, although I have made some extensions.

I have a long background in realtime operating system, mainframes and Windows, so I started immediately with Tirtos. Doing all according to the manuals, Getting started and others, and trying to build gives only all kinds of mysterious error messages from linker, missing this and missing that. I tried to find some solution from internet. I noticed, that also others have had the same problem. Suggested solution were mainly as mysterious as the problem. Some referred to some Linux stuff, some found salvation uninstalling a competitive framework. All seemed a little far fetched. Just for sure I uninstalled and reinstalled CCS, but no help. After struggling a round I found a solution, when I could build the project without errors. In linker file search path I removed libc.a and added rtsv7M3_T_le_eabi.lib. All seem to work fluently. Only thing is, that I do not know, if this library is the right one. First of all M3 referes to M3 prosessort and CC3200 has M4. Trying to use some of those xxxM4xx libraries does not work, they seem to suppose, that the prosessor has a FPU, but CC3200 does not have. So,

- what are the right includes (minimum), I need to be able to compile the projects without errors

- what are the libraries I need to be able to link Tirtos for CC3200 projects. (Manuals are outdated.)

- where can I find information, what these libraries, e.g. mentioned above, are for.

After being able to build the project, it also seems to work, pretty well. I started with Tirtos I2C example and added there a SPI driver to add a LCD display. Writing to SPI is done using DMA in separate task. Communication is done based on the instructions in the manuals. Longer data strings is served to the DMA in 1024 blocks. All goes fine, initialisation of the LCD and also drawing, but after that there is a wait, Task_sleep(1000). When the program comes here, it jumps to loader_exit and prints to the console some register(?) values. I could not find in internet any good information about these.

This kind of problem seems to be quite common, what comes to embedded systems and realtime operating system, although I have experience only in some others, most (although not much) in FreeRTOS. Mainly the problem lies in the stack size. There are no good means to estimate the proper size, nor good means to track it's use, at least I do not know.

Are there any good instructions, how to estimate stack and heap sizes for Tirtos?

Ti is not a small player, I know it from the late 70's. In those days my hobby was building electronics, in work I used Intel prosessors and RMX, they were good. Also nowadays TI is not small, so it seemed safe to buy Simplelink board. TI has own framework, own operating system, own components, own boards, own examples... Have to say, I am little bit disappointed this far.

Is it possible to make examples, which work off the shelf, at least in Windows, Windows is still the main operating system in developing programs.

  • Pauli,

    Sorry to hear you are disappointed so far.

    You have several questions here and I think it will be best to post individual forum threads for some of them.  It will be much easier to track and resolve them.  For example, “When the program comes here, it jumps to loader_exit and prints to the console some register(?) values.” – this should be a different thread, and if you provide more details of the registers and call stack, we can then attack that issue.  

    Starting with what seems the main issue of examples not building out of the box, and needing to modify path and library settings in the examples…

    What version of TI-RTOS are you using?  I don’t know of any issues building examples out of the box in recent releases.   There may have been some issues with early versions, but I don’t know that.     

    Which version of CCS?

    Which examples are you having issues with?  Can you provide specific details of the steps you followed, and what the errors were?

    Thanks,
    Scott

  • Hello Scott,
    thank you for your reply. I managed to find the problem, the library rtsv7M4_T_le_eabi.lib was missing, why, I do not know.
    My CCS is version 6.1.0.00104. I installed a new CCS (6.1.2.00015) to a virtual machine, and there all worked. I copied the file from there and no errors any more.
    I have been working with C part time now about a year and do not like it very much. Earlier, last some 30 years, I used pascal, last 20 years Delpi, and pascal and Delphi are a lot better. Compared to c pascal compiler is from another world. If something is missing or wrong, pascal compiler/linker gives a clear error message and points with a finger, where the error is, but c, a lot of mysterious error messages, as in this case.

    I found the reason for these mysterious error messages by chance. I was waiting the building process and watching the console messages. Suddenly I saw a glimpse of a warning and something, that resembled a xxeabixxx library name. When the building process was ready, I scrolled back the console messages and found the message, warning, library was not found. Library is missing, ok, it is already in the target machine e.g. in rom, but why these error messages. The warning could have been also in the warnings in Description, but who reads those. The warnings there a "always" something, that some variable was defined, but not referenced, although it is referenced.

    I do not remember, when I installed first time CCS, but I bought Simplelink board last autumn or so. I got these same errors then, and in the internet someone told to reinstall CCS, and so I did. The errors did not dissapper, but as I told, I found a solution, although not an optimal one.

    If the error messages were better, experts could immediately help the new poor programmers. One learns fast the most common errors. If PLM gave you more than 187 errors, there were an apostrophe missing in a literal statement, pascal tells everybody clearly, what is wrong. If you get a totally incomprehensible error in the middle your c code, there is something wrong in one of the 472 define statements in some of your 22 include files.
    So the problem was not in the examples, they seem to work fine now, I tested some.

    I put the mysterious error messages below hoping, that someone, who is getting the same errors, find this and also help here.

    unresolved symbol __aeabi_lmul
    unresolved symbol __TI_decompress_none
    unresolved symbol __TI_decompress_rle24
    unresolved symbol __TI_zero_init

    Now there is left this crash now, I open a new thread for it.
  • Pauli,

    OK, thanks for the update and feedback. I’m glad to hear the examples are building and working for you now.

    The compiler will use different optimized libraries for different processor options (code model, data model, FPU present or not, etc.).  And not all combinations are delivered in each compiler release.  If you have a new compiler installation, you will sometimes see message in the build log that a particular library was not found - and then CCS will proceed to build the specific library for your application.  This should happen once after installation (for a specific set of processor options), and then subsequent project builds will use the library (without needing to build it again).

    I searched the forums for the unresolved symbol messages you’d seen earlier (__aeabi_lmul, __TI_decompress_none, __TI_decompress_rle24, and__TI_zero_init) and found this thread on the CCS forum: e2e.ti.com/.../479548  In that case there was an issue with dynamically building the library for a particular installation, and the codegen team provided a workaround.

    Regards,
    Scott

  • Scott,

    I do not want always to complain, but the link you gave, does not work, page not found (Firefox), sorry.

    It was, I think, last autumn, when I tried to read some pdf file from TI's site with Firefox, nothing came, only a blank screen, not even error messages. I "complained", after some more mails and days pdfs started to work. Last week or week before that same problem, blank screen. I did not dare to complain immediately, especially because IE worked. I understand, that in this economic depression (in EU and China, US goes fine), you want to save scarce resources and have decided to test changes only against IE.

    As you mentioned the one time building of a dynamic libraries, I cannot help telling one interesting thing. Last week,when I was trying to find a solution to my problems, it was, if I recall, tirtos PWM example, I loaded. After trying to build I got again these mysterious errors. I added the rtsv7M3_T_le_eabi.lib (because I did not have the M4 library) and build. Builder told that because this is the first time, libraries have to be compiled and that may take several minutes, by all means, be my guest. After building, no errors, good. Rebuild, and again, because this it the first..., rebuild and because this.... I deleted libc.a in the linker file search path and after that all went fluently again.

    So what have I learned after all this mess, the libraries in C:\ti\ccsv6\tools\compiler\ti-cgt-arm_5.2.2\lib are used behind the scenes, and I do not have to know about them anything, or at most, that the needed ones must be there. (What are the needed ones?) Okay, when using c, I have to read the warnings, too, there may be also something else than that a variable is defined, but not referenced, although it is referenced.

    IT is not easy.  C is (only) for hard guys.

    Thanks,

    Pauli

  • Pauli,

    I tried the link this morning with Firefox both from inside and outside the TI firewall and the link works for me.  Maybe it was a temporary problem, or maybe an issue with the version of Firefox you are using?

    Pauli Sammalisto said:

    , the libraries in C:\ti\ccsv6\tools\compiler\ti-cgt-arm_5.2.2\lib are used behind the scenes, and I do not have to know about them anything, or at most, that the needed ones must be there. (What are the needed ones?)

    There is a description of the different compiler libraries (and the build process) in chapter 7 of the compiler user’s guide.  The latest guide is here: www.ti.com/.../spnu151l.pdf

    Pauli Sammalisto said:

    IT is not easy.  C is (only) for hard guys.

    Rumor has it that Chuck Norris only programs in C. :O)

    Regards,
    Scott

  • Scott,

    sorry again, but the page the link tries to open, e2e.ti.com/.../479548 , does not exist any more, not even today.  I think, I found the page, same file missing and about in the same time.

    The problems with Firefox concerned only TI's pdf files.

    I have read only SimpleLink and Tirtos manuals, I did not understand to search for the compiler manuals. We bought 2 BBBs and I am reading the manual now, it is only 4 700 pages, so immediately after that, sometime in next August, I will have a look at the compiler manual.

    Yes, it is true, that Chuck Norris programs only in C, in Linux with vi.

    When a man becomes 50, he needs to do something big or challenging, some buys a big bike, HD, some replace the wife with a 30 years younger one, a journalist in Finnish business magazine wrote, that he, instead, installed Linux, I myself started coding in C.

    Best regards,

    Pauli