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.

cc26xx Support for DriverLib in ROM

Other Parts Discussed in Thread: CC2650, CC1310

Hello,

I saw in this forum post e2e.ti.com/.../404474 that TI contributed cc2650 code to the main Contiki repo. I've started testing that cc26xx code and had a few questions regarding the cc26xxware files it links to. 

How are the NOROM (NOROM_TimerConfigure, NOROM_TimerLevelControl,...) definitions used in cc26xxware/driverlib/timer.c and timer.h? I don't see definitions for those anywhere else in the ware folder. My end goal is to develop the code that will run on the CC1310 so I'm specifically interested in whether I will need to include similar definitions.

Any additional information on those two DRIVERLIB_GENERATE_ROM define sections within timer.c and timer.h would be greatly appreciated! I got the cc26xxware code from the TI cc2650 site: www.ti.com/.../toolssoftware. 

Thanks,

Juan

  • Juan,

    For CC13xx there will be a corresponding cc13xxware, similar architecture to the cc26xxware.

    I have notified a cc26xxware expert on your question.

    Jonas
  • Thank you Jonas. Looking forward to hearing back.

    Juan

  • Hi Jonas,

    I'm seeing another issue when running the Web Demo example in Contiki 3.0 using the CC2650 with SmartRF06EB.

    The Web Demo compiles and runs OK but I'm not getting any wireless communications. I've disabled the MQTT Clieant, 6lbr Client, and COAP server, leaving only the Net UART component running. I've placed debug flags and have verified that whenever I send a string through the UART the code immediately sends it to the packet_send function. However, the receiving node never gets the packet.

    I connected a third node to Smart RF Studio and have both captured packets and seen the raw RF output but those transmits aren't consistent. When I enter a string through the UART I get flags showing the string has been transmitted but sometimes it can take up to 10 seconds before I can see it on the third node connected to Smart RF Studio. I thought it might be related to the LPM but I'm getting the output confirmation.

    Is there someone at TI that could help identify the reason for this?

    Thanks,
    Juan
  • Firefighter,
    When is it going to be available?

    Igor
  • What are you using a Edge Router? Can you please describe your network setup in detail? For node to node communication a bug was recently discovered, fetch the latest code from github where the bug is resolved: github.com/.../1028

    Basically the bug was that IEEE802.15.4 frames with version > 0 was reject by nodes, but not on the Edge Router.

    I would also suggest that you setup a sniffer and use wireshark to debug your network, as described here: processors.wiki.ti.com/.../Contiki_sniffer

    Jonas
  • cc13xxware will be available when CC13xx is released to market. I am not able to disclose any specific dates in this forum.
  • Hi Jonas,

    Thanks for the reply. For this particular test I'm only doing simple node to node comms, attempting to relay a UART message to another node. It sounds like the bug you discovered may be causing the issue so I'll look into it.

    I'm still interesting in understanding the use of the NOROM code. Any document where this might be explained?

    Thanks,

    Juan 

  • Hi,

    The documentation regarding ROM vs. Flash usage will be updated in the next release of cc26xxware/cc13xxware. As far as I understand it should be available beginning of May, is that sufficient for you?

    Jonas
  • Juan,

    This is a mechanism we have in place to make sure the linker picks ROM versions of driverLib functions we have available in ROM and flash versions for the rest.

    Using TimerConfigure (timer.h) as an example, what happens first is that you redefine TimerConfigure to the symbol NOROM_TimerConfigure causing all definitions&function calls to TimerConfigure to be named NOROM_TimerConfigure.

    As long as the DRIVERLIB_NOROM symbol is not defined by the user it will in the bottom of timer.h include the rom.h lookup table and check if there is a ROM_TimerConfigure. If so, the TimerConfigure symbol is redefined to ROM_TimerConfigure and the ROM version will be used to when calling TimerConfigure in your code.

    If you want to only call functions from flash you need to define the compiler preprocessor symbol DRIVERLIB_NOROM. The symbol DRIVERLIB_GENERATE_ROM should never be set by the user and is only defined by TI when we build the ROM image that goes into a new chip.

    Regards,
    svend
  • @svendbt

    On a similar note, I have been trying out setting the DRIVERLIB_NOROM in Contiki and in e.g. examples/cc26xx I get "undefined reference to `NOROM_TimerConfigure'". The same is true if I don't have DRIVERLIB_NOROM and try e.g. ti_lib_i2c_int_register(). Are you able to shed some light on this and whats particular with these functions? I would guess this is related to the Contiki building process?

    Andreas