module ti.sysbios.hal.Seconds

Seconds Manager

This module is a proxy to the device-specific Seconds module functions as defined in ISeconds.xdc. [ more ... ]
C synopsis target-domain sourced in ti/sysbios/hal/Seconds.xdc
DETAILS
This module is a proxy to the device-specific Seconds module functions as defined in ISeconds.xdc.
This module generates a custom time() function in the configuration-generated .c file. This time() function calls Seconds_get() to get the number of seconds since 1970 from a device-specific delegate function.
Note: For TI codegen tools, time() returns the number of seconds since 1900. The generated time() function takes this into account, and adds the number of seconds from 1900 to 1970 to the value returned by Seconds_get(). This allows functions such as localtime() to work correctly with TI tools.
The actual implementations of the Seconds module functions are provided by the Seconds module delegates.
Additional, family-specific Seconds module APIs may also be provided by the Seconds module delegates.
Follow the link below to determine which Seconds delegate is used for your Target/Device:

Calling Context

Function Hwi Swi Task Main Startup
get Y Y Y Y Y
set N N Y Y Y
Definitions:
  • Hwi: API is callable from a Hwi thread.
  • Swi: API is callable from a Swi thread.
  • Task: API is callable from a Task thread.
  • Main: API is callable during any of these phases:
    • In your module startup after this module is started (e.g. Seconds_Module_startupDone() returns TRUE).
    • During xdc.runtime.Startup.lastFxns.
    • During main().
    • During BIOS.startupFxns.
  • Startup: API is callable during any of these phases:
    • During xdc.runtime.Startup.firstFxns.
    • In your module startup before this module is started (e.g. Seconds_Module_startupDone() returns FALSE).
Usage example with run-time support library:
  #include <ti/sysbios/hal/Seconds.h>
  #include <time.h>

  time_t t;
  struct tm *ltm;
  char *curTime;

  Seconds_set(STARTTIME);

  t = time(NULL);
  ltm = localtime(&t);
  curTime = asctime(ltm);
  System_printf("Time(GMT): %s\n", curTime);
 
struct Seconds_Time

Structure to hold a time value in seconds plus nanoseconds

C synopsis target-domain
typedef struct Seconds_Time {
    UInt32 secs;
    // Seconds
    UInt32 nsecs;
    // Nanoseconds
} Seconds_Time;
 
 
Seconds_get()  // module-wide

Returns number of seconds since 1970 (the Unix epoch)

C synopsis target-domain
UInt32 Seconds_get();
 
DETAILS
The user must call Seconds_set() before making any calls to Seconds_get(), otherwise the value returned by Seconds_get() will be meaningless.
 
Seconds_getTime()  // module-wide

Fills in a Seconds_Time structure with seconds and nanoseconds elapsed since 1970 (the Unix epoch)

C synopsis target-domain
UInt32 Seconds_getTime(ISeconds_Time *ts);
 
DETAILS
Seconds_set() must have been called before making any calls to Seconds_getTime(), otherwise the value returned by Seconds_getTime() will be meaningless.
 
Seconds_set()  // module-wide

Update the real time clock with number of seconds since 1970

C synopsis target-domain
Void Seconds_set(UInt32 seconds);
 
DETAILS
Note: This function is non-reentrant.
Module-Wide Built-Ins

C synopsis target-domain
Types_ModuleId Seconds_Module_id();
// Get this module's unique id
 
Bool Seconds_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle Seconds_Module_heap();
// The heap from which this module allocates memory
 
Bool Seconds_Module_hasMask();
// Test whether this module has a diagnostics mask
 
Bits16 Seconds_Module_getMask();
// Returns the diagnostics mask for this module
 
Void Seconds_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
 
Configuration settings sourced in ti/sysbios/hal/Seconds.xdc
var Seconds = xdc.useModule('ti.sysbios.hal.Seconds');
local proxy modules
        Seconds.SecondsProxy.delegate$ = ISeconds.Module null
module-wide constants & types
        obj.secs// Seconds = UInt32  ...
        obj.nsecs// Nanoseconds = UInt32  ...
module-wide config parameters
 
 
proxy Seconds.SecondsProxy

Target/device-specific Seconds implementation

Configuration settings
Seconds.SecondsProxy = ISeconds.Module null
// some delegate module inheriting the ISeconds interface
    Seconds.SecondsProxy.delegate$ = ISeconds.Module null
    // explicit access to the currently bound delegate module
 
 
struct Seconds.Time

Structure to hold a time value in seconds plus nanoseconds

Configuration settings
var obj = new Seconds.Time;
 
    obj.secs = UInt32  ...
    // Seconds
    obj.nsecs = UInt32  ...
    // Nanoseconds
 
C SYNOPSIS
 
metaonly config Seconds.common$  // module-wide

Common module configuration parameters

Configuration settings
Seconds.common$ = Types.Common$ undefined;
 
DETAILS
All modules have this configuration parameter. Its name contains the '$' character to ensure it does not conflict with configuration parameters declared by the module. This allows new configuration parameters to be added in the future without any chance of breaking existing modules.
 
metaonly config Seconds.generateTimeFunction  // module-wide

Generate time() function that will call Seconds_get() internally

Configuration settings
Seconds.generateTimeFunction = Bool true;
 
DETAILS
This generated function will override the compiler's RTS library's time() function.
generated on Fri, 10 Jun 2016 23:28:50 GMT