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.

Problem with Tivaware 2.0.1.x

Other Parts Discussed in Thread: TM4C1233H6PM

I recently downloaded the latest release of Tivaware (2.0.1.x) and changed my current project to utilize it. However, the project utilizing the TM4C1233H6PM which compiled with the previous version (1.1) without any errors or warnings is now giving me the following errors:

"C:/ti/TivaWare_C_Series-2.0.1.11577/driverlib/hibernate.h", line 229: warning #233-D: declaration is not visible outside of function
"C:/ti/TivaWare_C_Series-2.0.1.11577/driverlib/hibernate.h", line 230: warning #233-D: declaration is not visible outside of function
"C:/ti/TivaWare_C_Series-2.0.1.11577/driverlib/hibernate.h", line 231: warning #233-D: declaration is not visible outside of function
"C:/ti/TivaWare_C_Series-2.0.1.11577/driverlib/hibernate.h", line 232: warning #233-D: declaration is not visible outside of function

However, when I look at the errors and warnings I'm begin pointed to a random location within my code. and highlighting lines which don't reference the hibernate module at all. It also tells me it can't fit the ".data" into SRAM.

Attached is my Debug Linker address map. In order to attach it I had to rename it to .txt from .map.3443.SLD.txt

  • I haven't run into this but are you upgrading from StellarisWare? Edit: StellarisWare is irrelevant...

    "C:/ti/TivaWare_C_Series-2.0.1.11577/driverlib/hibernate.h", line 229: warning #233-D: declaration is not visible outside of function
    

    line 229 of hibernate.h
    extern void HibernateCalendarSet(struct tm *psTime);

    You'll need to include time.h before hibernate to get rid of the warning.

    Looks like they added some functions for the new chips, but didn't mention it in the release notes. Or it's new requirement on time.h. Grrr....

    I don't think it's the cause of the of the link error.

    Do you have a copy of the map file from when it was working? Something got bigger...

  • I appreciate the help. I'm upgrading from Tivaware 1.1 to the current version. Adding <time.h> ahead of any references to <driverlib/hibernate.h> fixed the strange warnings!

    However, I'm still not sure about the problem with fitting into memory. When I compare a working linker map the difference is that it tries to put the .data section into flash but it doesn't for Tivaware 1.1. I've attached a working linker map renamed to a .txt extension.5355.SLD_working.txt

  • So, the new/failing .data segment has grown by quite a bit (old = 0x418 and new = 0x1224. I have no idea what's changed in TivaWare 2.0, nor do I know if there are any linker settings we can change to see what's in the .data segment.

    Taking a closer look at the map file you have 2 large sections of memory.

    .bss       0    20000400    0000578d     UNINITIALIZED
                      20000400    00004000     logfile.obj (.bss:logBuf)

    and

    .stack     0    20005b90    00002000     UNINITIALIZED
                      20005b90    00002000     --HOLE--

    Between them, you have 0x6000 of 0x8000 of the SRAM taken up. Reducing your log buffer is probably the easiest as long as you understand the requirements. Reducing the stack would work too, but you'll probably want to take a look at your stack usage first. That's a bit harder as it's dynamic...

    I would try temporarily reducing the logBuf or stack so you can see what changed in .data. Then take a look at the map and see what variables have changed.

  • stepman,

    Thank you very much for your help, that did indeed fix the problem. I had tuned the stack and log buffer size to get the best performance, but that was with the old version of Tivaware (1.1). That's very strange that the new Tivaware would have bloated so much. It turns out that it was my usb_msc_structs.c. From Tivaware 1.1 to 2.0.1 it grew from 0x284 (644B) to 0x1088 (4232B). This was due to improvements they made in usblib/device/usbdmsc.h. It looks like they quadroupled the size of the buffer which should hopefully increase the read and write speed when attached to a USB host.

    Thanks,

    Nate

  • Thanks for the posting, this solved and the same issue for me.

    But the obvious question remains.  If time.h is required by hibernation.h, should not time.h be #include in hibernation.h?