Commited by migration script DEV.RM_LLD.01.00.00.11
authorMartin Qian <mackuntu@gmail.com>
Thu, 27 Sep 2012 20:47:13 +0000 (16:47 -0400)
committerMartin Qian <mackuntu@gmail.com>
Thu, 27 Sep 2012 20:47:13 +0000 (16:47 -0400)
22 files changed:
Settings.xdc [new file with mode: 0644]
Settings.xdc.xdt [new file with mode: 0644]
build/buildlib.xs [new file with mode: 0644]
config.bld [new file with mode: 0644]
docs/Doxyfile [new file with mode: 0644]
docs/Module.xs [new file with mode: 0644]
docs/RM_LLD_SoftwareManifest.doc [new file with mode: 0644]
docs/RM_LLD_SoftwareManifest.pdf [new file with mode: 0644]
docs/ReleaseNotes_RM_LLD.doc [new file with mode: 0644]
docs/ReleaseNotes_RM_LLD.pdf [new file with mode: 0644]
docs/doxyfile.xdt [new file with mode: 0644]
docs/tifooter.htm [new file with mode: 0644]
docs/tiheader.htm [new file with mode: 0644]
docs/tilogo.gif [new file with mode: 0644]
docs/titagline.gif [new file with mode: 0644]
package.bld [new file with mode: 0644]
package.xdc [new file with mode: 0644]
package.xs [new file with mode: 0644]
rm_public_lld.h [new file with mode: 0644]
rmver.h [new file with mode: 0644]
rmver.h.xdt [new file with mode: 0644]
setupenv.bat [new file with mode: 0644]

diff --git a/Settings.xdc b/Settings.xdc
new file mode 100644 (file)
index 0000000..ef7e138
--- /dev/null
@@ -0,0 +1,7 @@
+
+
+module Settings
+{
+    config string rmlldVersionString = "01.00.00.11";
+}
+
diff --git a/Settings.xdc.xdt b/Settings.xdc.xdt
new file mode 100644 (file)
index 0000000..1ce5c1b
--- /dev/null
@@ -0,0 +1,24 @@
+\r
+%%{\r
+/*!\r
+ *  This template implements the Settings.xdc\r
+ */  \r
+  /* Versioning */\r
+  var ver = this;\r
+  for each(i=0;i<ver.length;i++)\r
+  {\r
+      if(String(ver[i]).length < 2)\r
+      {\r
+        ver[i]="0"+ver[i];\r
+      }\r
+  }\r
+  \r
+  var packageVersion = "\""+ver[0]+"."+ver[1]+"."+ver[2]+"."+ver[3]+"\"";\r
+\r
+%%}\r
+\r
+module Settings\r
+{\r
+    config string rmlldVersionString = `packageVersion`;\r
+}\r
+\r
diff --git a/build/buildlib.xs b/build/buildlib.xs
new file mode 100644 (file)
index 0000000..53c5956
--- /dev/null
@@ -0,0 +1,535 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Build Library Utilities\r
+ ******************************************************************************\r
+ * FILE NAME: buildlib.xs\r
+ *\r
+ * DESCRIPTION: \r
+ *  This file contains common routines that are used by the various RM \r
+ *  components.\r
+ *\r
+ * Copyright (C) 2012, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : listAllFiles\r
+ **************************************************************************\r
+ * DESCRIPTION   :\r
+ *  Utility function which lists all files with a specific extension \r
+ *  present in a directory and any directory inside it.\r
+ **************************************************************************/\r
+function listAllFiles(ext, dir, recurse)\r
+{     \r
+    var srcFile = [];\r
+    var d;\r
+\r
+    /* If recurse parameter is not specified we default to recursive search. */\r
+    if (recurse == null)\r
+        recurse = true;\r
+\r
+    if (dir == undefined) \r
+          d = ".";\r
+    else \r
+      d = dir;\r
+\r
+    /* Get access to the current directory. */\r
+    var file = new java.io.File(d);\r
+\r
+    /* Check if the file exists and it is a directory. */\r
+    if (file.exists() && file.isDirectory()) \r
+    {\r
+        /* Get a list of all files in the specific directory. */\r
+        var fileList = file.listFiles();\r
+        for (var i = 0; i < fileList.length; i++) \r
+        {\r
+            /* Dont add the generated directory 'package' and any of its files \r
+             * to the list here. */\r
+            if (fileList[i].getName().matches("package") == false)\r
+            {\r
+                /* Check if the detected file is a directory */\r
+                if (fileList[i].isDirectory())\r
+                {\r
+                    /* We will recurse into the subdirectory only if required to do so. */\r
+                    if (recurse == true)\r
+                    {\r
+                        /* Generate the directory Name in which we will recurse. */ \r
+                        var directoryName = d + "/" + fileList[i].getName();\r
+\r
+                        /* Get a list of all files in this directory */\r
+                        var fileListing = listAllFiles (ext, directoryName, recurse);\r
+                        if (fileListing != null)\r
+                        {\r
+                            /* Return a list of all file names in the directory. */\r
+                            for (var j = 0 ; j < fileListing.length; j++) \r
+                                srcFile[srcFile.length++] = fileListing[j];\r
+                        }\r
+                    }\r
+                }\r
+                else\r
+                {\r
+                    /* This was a file. Check if the file name matches the extension */\r
+                    if (fileList[i].getName().endsWith(ext) == true)\r
+                        srcFile[srcFile.length++] = d + "/" + fileList[i].getName();\r
+                }\r
+            }\r
+        }\r
+\r
+        return srcFile;\r
+    }\r
+    return null;\r
+}\r
+\r
+\r
+function createMake(makefile)\r
+{\r
+    /* Create the main make file */\r
+    var fileModule = xdc.module('xdc.services.io.File');\r
+    if(makefile==undefined)\r
+    {\r
+      try{\r
+          makefile = fileModule.open("makefile", "w");\r
+         } catch (ex)\r
+         {\r
+           print("makefile cannot be written to. Please check Writing Permissions.");\r
+           java.lang.System.exit(1);\r
+         }   \r
+    \r
+      Pkg.makePrologue += "\ninclude makefile\n"; \r
+         \r
+      Pkg.makeEpilogue += "\nclean::\n\t-$(RM)  makefile\n";\r
+      makefile.writeLine("#*******************************************************************************");\r
+      makefile.writeLine("#* FILE PURPOSE: Top level makefile for Creating Component Libraries");\r
+      makefile.writeLine("#*******************************************************************************");\r
+      makefile.writeLine("#* FILE NAME: makefile");\r
+      makefile.writeLine("#*");\r
+      makefile.writeLine("#* DESCRIPTION: Defines Compiler tools paths, libraries , Build Options ");\r
+      makefile.writeLine("#*");\r
+      makefile.writeLine("#*");\r
+      makefile.writeLine("#*******************************************************************************");\r
+      makefile.writeLine("#*");\r
+      makefile.writeLine("# (Mandatory) Specify where various tools are installed.");\r
+\r
+      var file = xdc.module('xdc.services.io.File');\r
+    \r
+      var xdcTargetType = java.lang.System.getenv("XDCTARGET");\r
+      var toolsBaseDir = java.lang.System.getenv("XDCCGROOT");   \r
+      \r
+      makefile.writeLine("\n# Output for prebuilt generated libraries");\r
+      makefile.writeLine("export LIBDIR ?= ./lib");\r
+\r
+      /* Create INCDIR from XDCPATH */\r
+    \r
+      /* copy the environment array from the current environment */\r
+      var env   = java.lang.System.getenv();\r
+      var getxdcpath=String(java.lang.System.getenv("XDCPATH"));\r
+      getxdcpath= getxdcpath.replace(/\\/g,"/");\r
+      var keys  = env.keySet().toArray();\r
+      var key;\r
+      var stat={};\r
+      var env_j=[];\r
+      var listxdcpath = new Array();\r
+      for (var i = 0; i < keys.length; i++) {\r
+           key = String(keys[i]);\r
+           if((key.match("INSTALL_PATH")) || (key.match("INSTALLDIR")))\r
+           {\r
+             var keyPath=String(env.get(key));\r
+             keyPath=keyPath.replace(/\\/g,"/");\r
+             var file = xdc.module('xdc.services.io.File');\r
+             keyPath=file.getDOSPath(keyPath);\r
+             if(getxdcpath.toString().match(keyPath))\r
+             {\r
+                 listxdcpath.push({keyname: key,keypath: keyPath});\r
+                 while(getxdcpath.toString().match(keyPath))\r
+                 {\r
+                   getxdcpath=getxdcpath.toString().replace(keyPath,"$("+key+")");\r
+                 }\r
+             }\r
+           }\r
+    \r
+     }\r
+       var pkgroot="..";\r
+       for (var i = Pkg.name.split('.').length; i > 1; i--) {\r
+              pkgroot+="/..";\r
+          }\r
+        \r
+      makefile.writeLine("\n# ROOT Directory");        \r
+      makefile.writeLine("export ROOTDIR := "+pkgroot);\r
+    \r
+      makefile.writeLine("\n# INCLUDE Directory");\r
+      makefile.writeLine("export INCDIR := "+getxdcpath+";$(ROOTDIR)");       \r
+    \r
+      makefile.writeLine("\n# Common Macros used in make");  \r
+      makefile.writeLine("\nifndef RM");     \r
+      makefile.writeLine("export RM = rm -f");\r
+      makefile.writeLine("endif");        \r
+    \r
+      makefile.writeLine("\nifndef CP");     \r
+      makefile.writeLine("export CP = cp -p");    \r
+      makefile.writeLine("endif");    \r
+        \r
+      makefile.writeLine("\nexport MKDIR = mkdir -p");\r
+    \r
+      makefile.writeLine("\nifndef RMDIR");         \r
+      makefile.writeLine("export RMDIR = rm -rf");\r
+      makefile.writeLine("endif");        \r
+    \r
+      makefile.writeLine("\nifndef SED"); \r
+      makefile.writeLine("export SED = sed");    \r
+      makefile.writeLine("endif");    \r
+    \r
+      makefile.writeLine("\nifndef MAKE"); \r
+      makefile.writeLine("export MAKE = make");    \r
+      makefile.writeLine("endif");        \r
+\r
+      makefile.writeLine("\n# PHONY Targets");                \r
+      makefile.writeLine(".PHONY: all clean cleanall ");    \r
+      \r
+      makefile.writeLine("\n# FORCE Targets");                \r
+      makefile.writeLine("FORCE: ");          \r
+      \r
+      makefile.writeLine("\n# all rule");                \r
+      makefile.writeLine("all: .executables");           \r
+      makefile.writeLine(".executables: .libraries");\r
+      makefile.writeLine(".libraries:");\r
+      \r
+      makefile.writeLine("\n# Clean Rule");          \r
+      makefile.writeLine("clean:: clean_package");                  \r
+      makefile.writeLine("# Clean Top Level Object Directory ");          \r
+      makefile.writeLine("clean_package :\n\t$(RMDIR) $(LIBDIR)/*/");      \r
+      makefile.writeLine("\t$(RMDIR) package/cfg");            \r
+   }\r
+   else\r
+   {\r
+     try{\r
+          makefile = fileModule.open("makefile", "a");\r
+         } catch (ex)\r
+         {\r
+           print("makefile cannot be written to. Please check Writing Permissions.");\r
+           java.lang.System.exit(1);\r
+         }  \r
+    \r
+    }\r
+\r
+ return makefile;\r
+}\r
+\r
+function createLibMake(makelibname,targetname, objectPath)\r
+{\r
+   var tooldir;\r
+   var stringname=String(targetname).replace("(xdc.bld.ITarget.Module)","");\r
+   if(stringname.match("ARM11"))\r
+   {\r
+     tooldir="TI_ARM11_GEN_INSTALL_PATH"; \r
+   }\r
+   else\r
+   {\r
+     tooldir="C6X_GEN_INSTALL_PATH";\r
+   }\r
+   switch(stringname)\r
+   {\r
+    case String(C66LE):\r
+      targetname=C66LE;\r
+      break;\r
+    case String(C66BE):\r
+      targetname=C66BE;\r
+      break;\r
+\r
+   }\r
+    var fileModule = xdc.module('xdc.services.io.File');\r
+    try{\r
+     var dstFile = new java.io.File(makelibname);\r
+     dstFile.getParentFile().mkdirs();    \r
+     libmakefile = fileModule.open(makelibname, "w");\r
+     /* Add to Archive list */\r
+    } catch (ex)\r
+    {\r
+     print(makelibname+" cannot be written to. Please check Writing Permissions.");\r
+     java.lang.System.exit(1);\r
+    }   \r
+    libmakefile.writeLine("#*******************************************************************************");\r
+    libmakefile.writeLine("#* FILE PURPOSE: Lower level makefile for Creating Component Libraries");\r
+    libmakefile.writeLine("#*******************************************************************************");\r
+    libmakefile.writeLine("#* FILE NAME: "+makelibname);\r
+    libmakefile.writeLine("#*");\r
+    libmakefile.writeLine("#* DESCRIPTION: Defines Source Files, Compilers flags and build rules");\r
+    libmakefile.writeLine("#*");\r
+    libmakefile.writeLine("#*");\r
+    libmakefile.writeLine("#*******************************************************************************");\r
+    libmakefile.writeLine("#");\r
+    libmakefile.writeLine("");\r
+    libmakefile.writeLine("#");\r
+    libmakefile.writeLine("# Macro definitions referenced below");\r
+    libmakefile.writeLine("#");\r
+    libmakefile.writeLine("empty =");\r
+    libmakefile.writeLine("space =$(empty) $(empty)");\r
+         \r
+    if(stringname.match("ti.targets"))\r
+    {\r
+\r
+       var rtslibtemp = targetname.lnkOpts.suffix.toString().split("/");\r
+       var rtslib;\r
+       for(n=0;n<rtslibtemp.length;n++)\r
+       {\r
+          if(rtslibtemp[n].match(".lib"))\r
+          { \r
+             rtslib=rtslibtemp[n];\r
+          }\r
+       }\r
+\r
+      libmakefile.writeLine("CC = $("+tooldir+")/bin/"+targetname.cc.cmd +" "+targetname.ccOpts.prefix+" "+targetname.cc.opts);\r
+      libmakefile.writeLine("AC = $("+tooldir+")/bin/"+targetname.asm.cmd +" "+targetname.asmOpts.prefix+" "+targetname.asm.opts);    \r
+      libmakefile.writeLine("ARIN = $("+tooldir+")/bin/"+targetname.ar.cmd +" "+targetname.ar.opts);    \r
+      libmakefile.writeLine("LD = $("+tooldir+")/bin/"+targetname.lnk.cmd +" "+targetname.lnk.opts);   \r
+      libmakefile.writeLine("RTSLIB = -l $("+tooldir+")/lib/"+rtslib);        \r
+    }\r
+    else\r
+    {\r
+      print("Error: Non-TI targets are not currently supported ");\r
+      java.lang.System.exit(1);\r
+\r
+    }\r
+       \r
+    libmakefile.writeLine("INCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),\\$(space),$(INCDIR))))");\r
+    libmakefile.writeLine("OBJEXT = o"+targetname.suffix); \r
+    libmakefile.writeLine("AOBJEXT = s"+targetname.suffix);     \r
+    /* libmakefile.writeLine("INTERNALDEFS = -D"+stringname.replace(/\./g,"_")+" -Dxdc_target_types__=ti/targets/std.h -DMAKEFILE_BUILD -eo.$(OBJEXT) -ea.$(AOBJEXT) -fr=$(@D) -fs=$(@D) -ppa -ppd=$@.dep");*/\r
+    libmakefile.writeLine("INTERNALDEFS = -D"+stringname.replace(/\./g,"_")+"  -DMAKEFILE_BUILD -eo.$(OBJEXT) -ea.$(AOBJEXT) -fr=$(@D) -fs=$(@D) -ppa -ppd=$@.dep");\r
+    libmakefile.writeLine("INTERNALLINKDEFS = -o $@ -m $@.map");\r
+         libmakefile.writeLine("OBJDIR =  $(LIBDIR)");    \r
+   \r
+ return libmakefile;\r
+\r
+}\r
+\r
+function makeAddObjects(srcString, makefilename, srcfiles, flags,fileExt, targetName)\r
+{\r
+  var  sourcestring = (srcString + fileExt).toString().toUpperCase();\r
+  var  compileflagstring = sourcestring + "FLAGS";\r
+  var  objectliststring = sourcestring + "OBJS";\r
+  /* List all the source files */\r
+  makefilename.writeLine("\n#List the "+srcString+" Files");  \r
+  makefilename.writeLine(sourcestring + "= \\");\r
+  for(var i=0;i<srcfiles.length-1;i++)\r
+  {\r
+    makefilename.writeLine("    "+srcfiles[i]+"\\");\r
+  }\r
+    makefilename.writeLine("    "+srcfiles[i]+"\n");\r
+    \r
+ /* Flags for the source files */\r
+ makefilename.writeLine("# FLAGS for the "+srcString+" Files"); \r
+ var compileflags="";\r
+ if(fileExt == "asm" && flags.aopts != undefined)\r
+ {\r
+   compileflags+=" "+flags.aopts;\r
+ }\r
+ else if((fileExt == "c" || fileExt == "sa")&& flags.copts != undefined)\r
+ {\r
+   compileflags+=" "+flags.copts;\r
+ } \r
+\r
+ if(flags.incs != undefined)\r
+ {\r
+   compileflags+=" "+flags.incs;\r
+ }\r
+\r
+\r
+ makefilename.writeLine(compileflagstring+" = "+compileflags +" \n");     \r
+ makefilename.writeLine("# Make Rule for the "+srcString+" Files");  \r
\r
+ makefilename.writeLine(objectliststring +" = $(patsubst %."+fileExt+", $(OBJDIR)/%.$(OBJEXT), $(" + sourcestring + "))"); \r
+ makefilename.writeLine("\n$("+objectliststring+"): $(OBJDIR)/%.$(OBJEXT): %."+fileExt);   \r
+ if(fileExt == "c")\r
+ { \r
+   makefilename.writeLine("\t-@echo cl"+targetName.suffix +" $< ...");     \r
+ }\r
+ else\r
+ {\r
+   makefilename.writeLine("\t-@echo asm"+targetName.suffix +" $< ...");      \r
+ }\r
+ makefilename.writeLine("\tif [ ! -d $(@D) ]; then $(MKDIR) $(@D) ; fi;");           \r
\r
+ if(fileExt == "c")\r
+ {\r
+   makefilename.writeLine("\t$(RM) $@.dep");\r
+   makefilename.writeLine("\t$(CC) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) -fc $< ");\r
+   makefilename.writeLine("\t-@$(CP) $@.dep $@.pp; \\");\r
+   makefilename.writeLine("         $(SED) -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\\\$$//' \\");\r
+   makefilename.writeLine("             -e '/^$$/ d' -e 's/$$/ :/' < $@.pp >> $@.dep; \\");\r
+   makefilename.writeLine("         $(RM) $@.pp ");\r
+ }\r
+ else if(fileExt == "asm")\r
+ {\r
+   makefilename.writeLine("\t$(AC) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) -fa $< ");\r
+ }\r
+ else if(fileExt == "sa")\r
+ {\r
+   makefilename.writeLine("\t$(AC) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) $< ");\r
+ }\r
+   makefilename.writeLine("\n#Create Empty rule for dependency");\r
+   makefilename.writeLine("$("+objectliststring+"):"+makefilename.$private.fd);\r
+   makefilename.writeLine(makefilename.$private.fd+":");\r
+   makefilename.writeLine("\n#Include Depedency for "+srcString+" Files");\r
+   makefilename.writeLine("ifneq (clean,$(MAKECMDGOALS))");\r
+   makefilename.writeLine(" -include $("+objectliststring+":%.$(OBJEXT)=%.$(OBJEXT).dep)");\r
+   makefilename.writeLine("endif");\r
\r
+}\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : buildLibrary\r
+ **************************************************************************\r
+ * DESCRIPTION   :\r
+ *  Utility function which will build a specific library\r
+ **************************************************************************/\r
+var makefilelocal;\r
+function buildLibrary (libOptions, libName, target, libFiles) \r
+{\r
+    var lldFullLibraryPath = "./lib/" + libName;\r
+    var lldFullLibraryPathMake = "$(LIBDIR)/" + libName;\r
+\r
+    /* Create Main make file in the root of package folder */\r
+    makefilelocal = createMake(makefilelocal);\r
+\r
+    /* Write the rule to make library in main makefile */\r
+    lib = lldFullLibraryPath+".a"+target.suffix;\r
+    libMake = lldFullLibraryPathMake+".a"+target.suffix;\r
+    var objectPath= "./package/lib/"+lldFullLibraryPath;\r
+    makefilelocal.writeLine("\n\n# Make rule to create "+libMake+" library");\r
+    makefilelocal.writeLine(".libraries: "+ libMake);\r
+    makefilelocal.writeLine(libMake+": FORCE\n\t$(MAKE) -f "+lib+".mk $@");                                 \r
+\r
+    /* Create Library make file in the lib folder */\r
+    var makefilelib= createLibMake(lib+".mk",target,objectPath);  \r
+\r
+    /* Rule to clean library in main makefile */\r
+    makefilelocal.writeLine("# Rule to clean "+libMake+" library");                                              \r
+    makefilelocal.writeLine("clean ::\n\t$(RM) "+ libMake);                                          \r
+    librule="\n\n"+libMake+" :";\r
+\r
+    /* Add files to be compiled */\r
+    /* Separate out the C and assembly files */\r
+    var cfiles= new Array();\r
+    var afiles= new Array();\r
+    var safiles= new Array();\r
+    for each(var srcFile in libFiles)\r
+    {\r
+        var srcFile=String(srcFile);\r
+        var dot = srcFile.lastIndexOf(".");\r
+        var extension = srcFile.substr(dot,srcFile.length);      \r
+        if(extension == ".c")\r
+        {\r
+          cfiles.push(srcFile);\r
+        }\r
+        else if(extension == ".sa")\r
+        {\r
+          safiles.push(srcFile);\r
+        }\r
+        else if(extension == ".asm")\r
+        {\r
+           afiles.push(srcFile);\r
+        }\r
+        else\r
+        {\r
+           print("ERROR: Unsupported file extension");\r
+           java.lang.System.exit(1);\r
+        }\r
+     }\r
+    if(cfiles.length > 0)\r
+    {                                                \r
+      makeAddObjects("COMMONSRC",makefilelib,cfiles,libOptions,"c",target);\r
+      librule += " $(COMMONSRCCOBJS)";                   \r
+    }\r
+    if(afiles.length > 0)\r
+    {                                                \r
+      makeAddObjects("COMMONSRC",makefilelib,afiles,libOptions,"asm",target);\r
+      librule += " $(COMMONSRCSOBJS)";                   \r
+    }\r
+    if(safiles.length > 0)\r
+    {                                                \r
+      makeAddObjects("COMMONSRC",makefilelib,safiles,libOptions,"sa",target);\r
+      librule += " $(COMMONSRCSAOBJS)";                   \r
+    }\r
+\r
+    makefilelib.writeLine(librule);\r
+    makefilelib.writeLine("\t@echo archiving $? into $@ ...");\r
+               makefilelib.writeLine("\t$(ARIN) $@ $?");\r
+               makefilelib.close();   \r
+\r
+    /* Create the library file and add all the objects to the file. */\r
+    var lib = Pkg.addLibrary(lldFullLibraryPath, target, libOptions);\r
+\r
+    lib.addObjects (libFiles);\r
+\r
+    /* Create the Epilogue; which executes after all the builds are completed. \r
+     * This is used to generate the benchmark information for the built library. \r
+     * Also add the benchmarking information file to the package. */\r
+    Pkg.makeEpilogue += ".libraries: benchmarking_" + target.suffix + "\n";\r
+    Pkg.makeEpilogue += "benchmarking_" + target.suffix + ":";\r
+    Pkg.makeEpilogue += "\n\t ofd6x.exe -x " + lldFullLibraryPath + ".a" + target.suffix + " > tmp.xml";\r
+    Pkg.makeEpilogue += "\n\t sectti.exe tmp.xml > " + lldFullLibraryPath + ".a" + target.suffix +  "_size.txt";\r
+    Pkg.makeEpilogue += "\n\t $(RM) tmp.xml\n\n";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix + "_size.txt";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix + ".mk";\r
+\r
+    /* We need to clean after ourselves; extend the 'clean' target to take care of this. */\r
+    Pkg.makeEpilogue += "clean::\n\t";\r
+    Pkg.makeEpilogue += "$(RM) " + lldFullLibraryPath + ".a" + target.suffix + "_size.txt\n\n";\r
+\r
+    return lib;\r
+}\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : createMiniPkg\r
+ **************************************************************************\r
+ * DESCRIPTION   :\r
+ *  The function is responsible for creating the mini tar package\r
+ *  The MINI package has the following files:- \r
+ *      - Driver Source Files. \r
+ *      - Header files (exported and internal driver files) \r
+ *      - Simple Makefiles. \r
+ **************************************************************************/\r
+function createMiniPkg(pkgName)\r
+{\r
+    /* Get the package Name. */\r
+    var packageRepository = xdc.getPackageRepository(Pkg.name);\r
+    var packageBase       = xdc.getPackageBase(Pkg.name);\r
+    var packageName       = packageBase.substring(packageRepository.length + 1);\r
+\r
+    /* Convert the Package name by replacing back slashes with forward slashes. This is required because\r
+     * otherwise with long names the tar is unable to change directory. */\r
+    var newPkgName = new java.lang.String(packageRepository);\r
+    var newPkgRep  = newPkgName.replace('\\', '/');\r
+\r
+    /* Step1: Create the MINI Package and add the simple Big and Little Endian Makefiles to the package */\r
+    Pkg.makeEpilogue += "release: mini_pkg\n";\r
+    Pkg.makeEpilogue += "mini_pkg:\n";\r
+    Pkg.makeEpilogue += "\t tar -C " + "\"" + newPkgRep + "\"" + " -cf packages/" + pkgName + "_mini.tar " + \r
+                        packageName + "simpleC66LE.mak " + packageName + "simpleC66BE.mak\n";\r
+                        \r
+\r
+    /* Step2: Add the exported header files to the package */\r
+    var includeFiles = libUtility.listAllFiles (".h", ".", false);\r
+    for (var k = 0 ; k < includeFiles.length; k++)\r
+        Pkg.makeEpilogue += "\t tar -C " + "\"" + newPkgRep + "\"" + " -rf packages/" + pkgName + "_mini.tar " + \r
+                        packageName + includeFiles[k] + "\n";\r
+\r
+    /* Step3: Add the internal header files to the package */\r
+    includeFiles = libUtility.listAllFiles (".h", "include", true);\r
+    for (var k = 0 ; k < includeFiles.length; k++)\r
+        Pkg.makeEpilogue += "\t tar -C " + "\"" + newPkgRep + "\"" + " -rf packages/" + pkgName + "_mini.tar " + \r
+                        packageName + includeFiles[k] + "\n";\r
+\r
+    /* Step4: Add the resource table files to the package */\r
+    includeFiles = libUtility.listAllFiles (".c", "resource_table", true);\r
+    for (var k = 0 ; k < includeFiles.length; k++)\r
+        Pkg.makeEpilogue += "\t tar -C " + "\"" + newPkgRep + "\"" + " -rf packages/" + pkgName + "_mini.tar " + \r
+                        packageName + includeFiles[k] + "\n";\r
+\r
+    /* Step4: Add the driver source files to the package; the filter should have generated a source listing */\r
+    Pkg.makeEpilogue += "\t tar -C " + "\"" + newPkgRep + "\"" + " -T src.lst -rf packages/" + pkgName + "_mini.tar " + "\n";\r
+\r
+    /* Ensure that we clean up the mini package */\r
+    Pkg.makeEpilogue += "clean::\n";\r
+    Pkg.makeEpilogue += "\t $(RM) packages/" + pkgName + "_mini.tar\n";\r
+}\r
+\r
+\r
diff --git a/config.bld b/config.bld
new file mode 100644 (file)
index 0000000..796e82a
--- /dev/null
@@ -0,0 +1,98 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Build configuration Script for the RM LLD\r
+ ******************************************************************************\r
+ * FILE NAME: config.bld\r
+ *\r
+ * DESCRIPTION: \r
+ *  This file contains the build configuration script for RM LLD \r
+ *  and is responsible for configuration of the paths for the various tools\r
+ *  required to build RM LLD.\r
+ *\r
+ * Copyright (C) 2012, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/* Get the Tools Base directory from the Environment Variable. */\r
+var toolsBaseDir = java.lang.System.getenv("XDCCGROOT");\r
+\r
+/* Get the base directory for the RM LLD Package */\r
+var lldPath = new java.io.File(".//").getPath();\r
+\r
+var lldInstallType;\r
+\r
+/* Read the part number from the environment variable. */\r
+var lldPartNumber = java.lang.System.getenv("PARTNO");\r
+\r
+/* Include Path */\r
+var lldIncludePath = " -i" + lldPath + "/src" + " -i" + lldPath  + " -i" + lldPath + "/test";\r
+\r
+/* Configure the RM LLD Release Version Information */\r
+var lldReleaseVersion = [01,00,00,11];\r
+\r
+/* RM LLD Coverity Analysis: Check the environment variable to determine if Static\r
+ * Analysis has to be done on the RM LLD Code base or not? */\r
+var lldCoverityAnalysis = java.lang.System.getenv("LLDCOV");\r
+\r
+/* C66 ELF compiler configuration for Little Endian Mode. */\r
+var C66LE          = xdc.useModule('ti.targets.elf.C66');\r
+C66LE.rootDir       = toolsBaseDir;\r
+C66LE.ccOpts.prefix  = "-mo -o3 -q -k -eo.o";\r
+\r
+/* C66 ELF compiler configuration for Big Endian Mode. */\r
+var C66BE          = xdc.useModule('ti.targets.elf.C66_big_endian');\r
+C66BE.rootDir       = toolsBaseDir;\r
+C66BE.ccOpts.prefix  = "-mo -o3 -q -k -eo.o -DBIGENDIAN";\r
+\r
+/* Check if we need to run the STATIC Analysis or not? */\r
+var coverityAnalysis = java.lang.System.getenv("STATIC_ANALYZE");\r
+\r
+/* Setup the Coverity Filters to perform Static Analysis. */\r
+if (coverityAnalysis == "ON") {\r
+    var coverityInstallPath = java.lang.System.getenv("STATIC_ANALYZE_PATH");\r
+    var cfgBase = xdc.getPackageBase("tisb.coverity.filters") + "cfg";\r
+\r
+    var coverityFilter = [\r
+    {\r
+        moduleName: "tisb.coverity.filters.Coverity",\r
+        params: {\r
+            cfgDir:  cfgBase,  // The Coverity configuration file directory\r
+            rootDir: coverityInstallPath,\r
+            outDir: xdc.csd() + "cov_out",\r
+            analyzeLibs: true\r
+        }\r
+    },\r
+    ];\r
+\r
+    /* Run the coverity filters on the LE Build only. */\r
+    C66LE.profiles["release"].filters = coverityFilter;\r
+}\r
+\r
+/* Check if we need to create the Makefiles? */\r
+var miniBuild = java.lang.System.getenv("MINI_PACKAGE");\r
+\r
+if (miniBuild == "ON")\r
+{\r
+    /* Add the filter for simple Makefile generation. */\r
+\r
+    var makeC66LEFilter = {\r
+        moduleName: "build.filter.Make",\r
+        params: {\r
+          makefileName: "simpleC66LE.mak",\r
+        }\r
+    };\r
+\r
+    C66LE.profiles["release"].filters[C66LE.profiles["release"].filters.length++] = makeC66LEFilter;\r
+\r
+    var makeC66BEFilter = {\r
+        moduleName: "build.filter.Make",\r
+        params: {\r
+          makefileName: "simpleC66BE.mak",\r
+        }\r
+    }; \r
+\r
+    C66BE.profiles["release"].filters[C66BE.profiles["release"].filters.length++] = makeC66BEFilter;\r
+\r
+}\r
+\r
+/* List all the build targets here. */\r
+Build.targets = [ C66LE, C66BE ];\r
+\r
diff --git a/docs/Doxyfile b/docs/Doxyfile
new file mode 100644 (file)
index 0000000..ab5ee83
--- /dev/null
@@ -0,0 +1,293 @@
+
+# Doxyfile 1.5.6
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING      = UTF-8
+PROJECT_NAME           = "RM Low Level Driver"
+PROJECT_NUMBER         = 1.0.0.11
+OUTPUT_DIRECTORY       = ./docs/doxygen
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+QT_AUTOBRIEF           = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+SEPARATE_MEMBER_PAGES  = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = NO
+OPTIMIZE_FOR_FORTRAN   = NO
+OPTIMIZE_OUTPUT_VHDL   = NO
+BUILTIN_STL_SUPPORT    = NO
+CPP_CLI_SUPPORT        = NO
+SIP_SUPPORT            = NO
+IDL_PROPERTY_SUPPORT   = YES
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+TYPEDEF_HIDES_STRUCT   = NO
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = NO
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = YES
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
+EXTRACT_ANON_NSPACES   = NO
+HIDE_UNDOC_MEMBERS     = YES
+HIDE_UNDOC_CLASSES     = YES
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = NO
+CASE_SENSE_NAMES       = NO
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_GROUP_NAMES       = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = NO
+SHOW_FILES             = YES
+SHOW_NAMESPACES        = YES
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = 
+INPUT_ENCODING         = UTF-8
+FILE_PATTERNS          = *.c \
+                         *.cc \
+                         *.cxx \
+                         *.cpp \
+                         *.c++ \
+                         *.d \
+                         *.java \
+                         *.ii \
+                         *.ixx \
+                         *.ipp \
+                         *.i++ \
+                         *.inl \
+                         *.h \
+                         *.hh \
+                         *.hxx \
+                         *.hpp \
+                         *.h++ \
+                         *.idl \
+                         *.odl \
+                         *.cs \
+                         *.php \
+                         *.php3 \
+                         *.inc \
+                         *.m \
+                         *.mm \
+                         *.dox \
+                         *.py \
+                         *.f90 \
+                         *.f \
+                         *.vhd \
+                         *.vhdl
+RECURSIVE              = YES
+EXCLUDE                = YES \
+                         ./example \
+                         ./test \
+                         ./package \
+                         ./packages
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = cslr_*.h
+EXCLUDE_SYMBOLS        = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = *
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION    = NO
+REFERENCES_LINK_SOURCE = YES
+USE_HTAGS              = NO
+VERBATIM_HEADERS       = NO
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = ./docs/tiheader.htm
+HTML_FOOTER            = ./docs/tifooter.htm
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = YES
+GENERATE_DOCSET        = NO
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+HTML_DYNAMIC_SECTIONS  = NO
+CHM_FILE               = ..\..\rmlldDocs.chm
+HHC_LOCATION           = hhc.exe
+GENERATE_CHI           = NO
+CHM_INDEX_ENCODING     = 
+BINARY_TOC             = NO
+TOC_EXPAND             = NO
+DISABLE_INDEX          = NO
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = NONE
+TREEVIEW_WIDTH         = 250
+FORMULA_FONTSIZE       = 10
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = YES
+USE_PDFLATEX           = YES
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = NO
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = 
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = NO
+MSCGEN_PATH            = 
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+DOT_FONTNAME           = FreeSans
+DOT_FONTPATH           = 
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = NO
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+CALLER_GRAPH           = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+DOT_GRAPH_MAX_NODES    = 50
+MAX_DOT_GRAPH_DEPTH    = 1000
+DOT_TRANSPARENT        = YES
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
+
+
diff --git a/docs/Module.xs b/docs/Module.xs
new file mode 100644 (file)
index 0000000..fd48d4b
--- /dev/null
@@ -0,0 +1,54 @@
+/******************************************************************************\r
+ * FILE PURPOSE: RM LLD DOCS Module specification file.\r
+ ******************************************************************************\r
+ * FILE NAME: module.xs\r
+ *\r
+ * DESCRIPTION: \r
+ *  This file contains the module specification for the RM LLD Documentation.\r
+ *\r
+ * Copyright (C) 2012, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/* Load the library utility. */\r
+var libUtility = xdc.loadCapsule ("../build/buildlib.xs");\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : modBuild\r
+ **************************************************************************\r
+ * DESCRIPTION   :\r
+ *  The function is used to build all the components of the documentation\r
+ **************************************************************************/\r
+function modBuild() \r
+{\r
+    /* Create the actual PROLOGUE Section for the Documentation.*/\r
+    Pkg.makePrologue += "release: rm_lld_document_generation\n";\r
+    Pkg.makePrologue += "rm_lld_document_generation:\n";\r
+    Pkg.makePrologue += "\t @echo -------------------------------------------------------\n";\r
+    Pkg.makePrologue += "\t @echo Generating RM LLD Documentation\n";\r
+    Pkg.makePrologue += "\t doxygen docs/Doxyfile\n";\r
+    Pkg.makePrologue += "\t @echo RM LLD Documentation Generated \n";\r
+    Pkg.makePrologue += "\t @echo -------------------------------------------------------\n";\r
+\r
+    /* Add the documentation file to the package. */\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/rmlldDocs.chm";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/tifooter.htm";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/tiheader.htm";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/tilogo.gif";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/titagline.gif";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/doxygen";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/RM_LLD_SoftwareManifest.pdf";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/ReleaseNotes_RM_LLD.pdf";\r
+\r
+    if (lldInstallType == "SETUP")\r
+    {\r
+        /* Generate the ECLIPSE Plugin Generation */\r
+        Pkg.makePrologue += "all: eclipse_plugin_generation\n";\r
+        Pkg.makePrologue += "eclipse_plugin_generation:\n";\r
+        Pkg.makePrologue += "\t @echo -------------------------------------------------------\n";\r
+        Pkg.makePrologue += "\t @echo RM LLD Eclipse Plugin Generation\n";\r
+        Pkg.makePrologue += "\t xs xdc.tools.eclipsePluginGen -o . -x ./eclipseDocs/sample.xml -c ./eclipseDocs/toc_cdoc_sample.xml\n";\r
+        Pkg.makePrologue += "\t @echo RM LLD Eclipse Plugin Generated \n";\r
+        Pkg.makePrologue += "\t @echo -------------------------------------------------------\n";\r
+    }   \r
+}\r
+\r
diff --git a/docs/RM_LLD_SoftwareManifest.doc b/docs/RM_LLD_SoftwareManifest.doc
new file mode 100644 (file)
index 0000000..db3099b
Binary files /dev/null and b/docs/RM_LLD_SoftwareManifest.doc differ
diff --git a/docs/RM_LLD_SoftwareManifest.pdf b/docs/RM_LLD_SoftwareManifest.pdf
new file mode 100644 (file)
index 0000000..b5b08ec
Binary files /dev/null and b/docs/RM_LLD_SoftwareManifest.pdf differ
diff --git a/docs/ReleaseNotes_RM_LLD.doc b/docs/ReleaseNotes_RM_LLD.doc
new file mode 100644 (file)
index 0000000..1f30e9f
Binary files /dev/null and b/docs/ReleaseNotes_RM_LLD.doc differ
diff --git a/docs/ReleaseNotes_RM_LLD.pdf b/docs/ReleaseNotes_RM_LLD.pdf
new file mode 100644 (file)
index 0000000..76ac992
Binary files /dev/null and b/docs/ReleaseNotes_RM_LLD.pdf differ
diff --git a/docs/doxyfile.xdt b/docs/doxyfile.xdt
new file mode 100644 (file)
index 0000000..82b4e19
--- /dev/null
@@ -0,0 +1,302 @@
+%%{\r
+/*!\r
+ *  This template implements the Doxyfile\r
+ */  \r
+  /* Versioning */\r
+  var ver = this;\r
+  var packageVersion = ver[0]+"."+ver[1]+"."+ver[2]+"."+ver[3];\r
+\r
+%%}\r
+\r
+# Doxyfile 1.5.6\r
+\r
+#---------------------------------------------------------------------------\r
+# Project related configuration options\r
+#---------------------------------------------------------------------------\r
+DOXYFILE_ENCODING      = UTF-8\r
+PROJECT_NAME           = "RM Low Level Driver"\r
+PROJECT_NUMBER         = `packageVersion`\r
+OUTPUT_DIRECTORY       = ./docs/doxygen\r
+CREATE_SUBDIRS         = NO\r
+OUTPUT_LANGUAGE        = English\r
+BRIEF_MEMBER_DESC      = YES\r
+REPEAT_BRIEF           = YES\r
+ABBREVIATE_BRIEF       = "The $name class" \\r
+                         "The $name widget" \\r
+                         "The $name file" \\r
+                         is \\r
+                         provides \\r
+                         specifies \\r
+                         contains \\r
+                         represents \\r
+                         a \\r
+                         an \\r
+                         the\r
+ALWAYS_DETAILED_SEC    = NO\r
+INLINE_INHERITED_MEMB  = NO\r
+FULL_PATH_NAMES        = NO\r
+STRIP_FROM_PATH        = \r
+STRIP_FROM_INC_PATH    = \r
+SHORT_NAMES            = NO\r
+JAVADOC_AUTOBRIEF      = NO\r
+QT_AUTOBRIEF           = NO\r
+MULTILINE_CPP_IS_BRIEF = NO\r
+DETAILS_AT_TOP         = NO\r
+INHERIT_DOCS           = YES\r
+SEPARATE_MEMBER_PAGES  = NO\r
+TAB_SIZE               = 8\r
+ALIASES                = \r
+OPTIMIZE_OUTPUT_FOR_C  = YES\r
+OPTIMIZE_OUTPUT_JAVA   = NO\r
+OPTIMIZE_FOR_FORTRAN   = NO\r
+OPTIMIZE_OUTPUT_VHDL   = NO\r
+BUILTIN_STL_SUPPORT    = NO\r
+CPP_CLI_SUPPORT        = NO\r
+SIP_SUPPORT            = NO\r
+IDL_PROPERTY_SUPPORT   = YES\r
+DISTRIBUTE_GROUP_DOC   = NO\r
+SUBGROUPING            = YES\r
+TYPEDEF_HIDES_STRUCT   = NO\r
+#---------------------------------------------------------------------------\r
+# Build related configuration options\r
+#---------------------------------------------------------------------------\r
+EXTRACT_ALL            = NO\r
+EXTRACT_PRIVATE        = NO\r
+EXTRACT_STATIC         = YES\r
+EXTRACT_LOCAL_CLASSES  = YES\r
+EXTRACT_LOCAL_METHODS  = NO\r
+EXTRACT_ANON_NSPACES   = NO\r
+HIDE_UNDOC_MEMBERS     = YES\r
+HIDE_UNDOC_CLASSES     = YES\r
+HIDE_FRIEND_COMPOUNDS  = NO\r
+HIDE_IN_BODY_DOCS      = NO\r
+INTERNAL_DOCS          = NO\r
+CASE_SENSE_NAMES       = NO\r
+HIDE_SCOPE_NAMES       = NO\r
+SHOW_INCLUDE_FILES     = YES\r
+INLINE_INFO            = YES\r
+SORT_MEMBER_DOCS       = YES\r
+SORT_BRIEF_DOCS        = NO\r
+SORT_GROUP_NAMES       = NO\r
+SORT_BY_SCOPE_NAME     = NO\r
+GENERATE_TODOLIST      = YES\r
+GENERATE_TESTLIST      = YES\r
+GENERATE_BUGLIST       = YES\r
+GENERATE_DEPRECATEDLIST= YES\r
+ENABLED_SECTIONS       = \r
+MAX_INITIALIZER_LINES  = 30\r
+SHOW_USED_FILES        = YES\r
+SHOW_DIRECTORIES       = NO\r
+SHOW_FILES             = YES\r
+SHOW_NAMESPACES        = YES\r
+FILE_VERSION_FILTER    = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to warning and progress messages\r
+#---------------------------------------------------------------------------\r
+QUIET                  = NO\r
+WARNINGS               = YES\r
+WARN_IF_UNDOCUMENTED   = YES\r
+WARN_IF_DOC_ERROR      = YES\r
+WARN_NO_PARAMDOC       = NO\r
+WARN_FORMAT            = "$file:$line: $text"\r
+WARN_LOGFILE           = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to the input files\r
+#---------------------------------------------------------------------------\r
+INPUT                  = \r
+INPUT_ENCODING         = UTF-8\r
+FILE_PATTERNS          = *.c \\r
+                         *.cc \\r
+                         *.cxx \\r
+                         *.cpp \\r
+                         *.c++ \\r
+                         *.d \\r
+                         *.java \\r
+                         *.ii \\r
+                         *.ixx \\r
+                         *.ipp \\r
+                         *.i++ \\r
+                         *.inl \\r
+                         *.h \\r
+                         *.hh \\r
+                         *.hxx \\r
+                         *.hpp \\r
+                         *.h++ \\r
+                         *.idl \\r
+                         *.odl \\r
+                         *.cs \\r
+                         *.php \\r
+                         *.php3 \\r
+                         *.inc \\r
+                         *.m \\r
+                         *.mm \\r
+                         *.dox \\r
+                         *.py \\r
+                         *.f90 \\r
+                         *.f \\r
+                         *.vhd \\r
+                         *.vhdl\r
+RECURSIVE              = YES\r
+EXCLUDE                = YES \\r
+                         ./example \\r
+                         ./test \\r
+                         ./package \\r
+                         ./packages\r
+EXCLUDE_SYMLINKS       = NO\r
+EXCLUDE_PATTERNS       = cslr_*.h\r
+EXCLUDE_SYMBOLS        = \r
+EXAMPLE_PATH           = \r
+EXAMPLE_PATTERNS       = *\r
+EXAMPLE_RECURSIVE      = NO\r
+IMAGE_PATH             = \r
+INPUT_FILTER           = \r
+FILTER_PATTERNS        = \r
+FILTER_SOURCE_FILES    = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to source browsing\r
+#---------------------------------------------------------------------------\r
+SOURCE_BROWSER         = NO\r
+INLINE_SOURCES         = NO\r
+STRIP_CODE_COMMENTS    = YES\r
+REFERENCED_BY_RELATION = NO\r
+REFERENCES_RELATION    = NO\r
+REFERENCES_LINK_SOURCE = YES\r
+USE_HTAGS              = NO\r
+VERBATIM_HEADERS       = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the alphabetical class index\r
+#---------------------------------------------------------------------------\r
+ALPHABETICAL_INDEX     = NO\r
+COLS_IN_ALPHA_INDEX    = 5\r
+IGNORE_PREFIX          = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to the HTML output\r
+#---------------------------------------------------------------------------\r
+GENERATE_HTML          = YES\r
+HTML_OUTPUT            = html\r
+HTML_FILE_EXTENSION    = .html\r
+HTML_HEADER            = ./docs/tiheader.htm\r
+HTML_FOOTER            = ./docs/tifooter.htm\r
+HTML_STYLESHEET        = \r
+HTML_ALIGN_MEMBERS     = YES\r
+GENERATE_HTMLHELP      = YES\r
+GENERATE_DOCSET        = NO\r
+DOCSET_FEEDNAME        = "Doxygen generated docs"\r
+DOCSET_BUNDLE_ID       = org.doxygen.Project\r
+HTML_DYNAMIC_SECTIONS  = NO\r
+CHM_FILE               = ..\..\rmlldDocs.chm\r
+HHC_LOCATION           = hhc.exe\r
+GENERATE_CHI           = NO\r
+CHM_INDEX_ENCODING     = \r
+BINARY_TOC             = NO\r
+TOC_EXPAND             = NO\r
+DISABLE_INDEX          = NO\r
+ENUM_VALUES_PER_LINE   = 4\r
+GENERATE_TREEVIEW      = NONE\r
+TREEVIEW_WIDTH         = 250\r
+FORMULA_FONTSIZE       = 10\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the LaTeX output\r
+#---------------------------------------------------------------------------\r
+GENERATE_LATEX         = NO\r
+LATEX_OUTPUT           = latex\r
+LATEX_CMD_NAME         = latex\r
+MAKEINDEX_CMD_NAME     = makeindex\r
+COMPACT_LATEX          = NO\r
+PAPER_TYPE             = a4wide\r
+EXTRA_PACKAGES         = \r
+LATEX_HEADER           = \r
+PDF_HYPERLINKS         = YES\r
+USE_PDFLATEX           = YES\r
+LATEX_BATCHMODE        = NO\r
+LATEX_HIDE_INDICES     = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the RTF output\r
+#---------------------------------------------------------------------------\r
+GENERATE_RTF           = NO\r
+RTF_OUTPUT             = rtf\r
+COMPACT_RTF            = NO\r
+RTF_HYPERLINKS         = NO\r
+RTF_STYLESHEET_FILE    = \r
+RTF_EXTENSIONS_FILE    = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to the man page output\r
+#---------------------------------------------------------------------------\r
+GENERATE_MAN           = NO\r
+MAN_OUTPUT             = man\r
+MAN_EXTENSION          = .3\r
+MAN_LINKS              = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the XML output\r
+#---------------------------------------------------------------------------\r
+GENERATE_XML           = NO\r
+XML_OUTPUT             = xml\r
+XML_SCHEMA             = \r
+XML_DTD                = \r
+XML_PROGRAMLISTING     = YES\r
+#---------------------------------------------------------------------------\r
+# configuration options for the AutoGen Definitions output\r
+#---------------------------------------------------------------------------\r
+GENERATE_AUTOGEN_DEF   = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the Perl module output\r
+#---------------------------------------------------------------------------\r
+GENERATE_PERLMOD       = NO\r
+PERLMOD_LATEX          = NO\r
+PERLMOD_PRETTY         = YES\r
+PERLMOD_MAKEVAR_PREFIX = \r
+#---------------------------------------------------------------------------\r
+# Configuration options related to the preprocessor   \r
+#---------------------------------------------------------------------------\r
+ENABLE_PREPROCESSING   = YES\r
+MACRO_EXPANSION        = NO\r
+EXPAND_ONLY_PREDEF     = NO\r
+SEARCH_INCLUDES        = YES\r
+INCLUDE_PATH           = \r
+INCLUDE_FILE_PATTERNS  = \r
+PREDEFINED             = \r
+EXPAND_AS_DEFINED      = \r
+SKIP_FUNCTION_MACROS   = YES\r
+#---------------------------------------------------------------------------\r
+# Configuration::additions related to external references   \r
+#---------------------------------------------------------------------------\r
+TAGFILES               = \r
+GENERATE_TAGFILE       = \r
+ALLEXTERNALS           = NO\r
+EXTERNAL_GROUPS        = YES\r
+PERL_PATH              = /usr/bin/perl\r
+#---------------------------------------------------------------------------\r
+# Configuration options related to the dot tool   \r
+#---------------------------------------------------------------------------\r
+CLASS_DIAGRAMS         = NO\r
+MSCGEN_PATH            = \r
+HIDE_UNDOC_RELATIONS   = YES\r
+HAVE_DOT               = NO\r
+DOT_FONTNAME           = FreeSans\r
+DOT_FONTPATH           = \r
+CLASS_GRAPH            = YES\r
+COLLABORATION_GRAPH    = YES\r
+GROUP_GRAPHS           = YES\r
+UML_LOOK               = NO\r
+TEMPLATE_RELATIONS     = NO\r
+INCLUDE_GRAPH          = YES\r
+INCLUDED_BY_GRAPH      = YES\r
+CALL_GRAPH             = NO\r
+CALLER_GRAPH           = NO\r
+GRAPHICAL_HIERARCHY    = YES\r
+DIRECTORY_GRAPH        = YES\r
+DOT_IMAGE_FORMAT       = png\r
+DOT_PATH               = \r
+DOTFILE_DIRS           = \r
+DOT_GRAPH_MAX_NODES    = 50\r
+MAX_DOT_GRAPH_DEPTH    = 1000\r
+DOT_TRANSPARENT        = YES\r
+DOT_MULTI_TARGETS      = NO\r
+GENERATE_LEGEND        = YES\r
+DOT_CLEANUP            = YES\r
+#---------------------------------------------------------------------------\r
+# Configuration::additions related to the search engine   \r
+#---------------------------------------------------------------------------\r
+SEARCHENGINE           = NO\r
+\r
+\r
diff --git a/docs/tifooter.htm b/docs/tifooter.htm
new file mode 100644 (file)
index 0000000..c35c513
--- /dev/null
@@ -0,0 +1,4 @@
+<hr size="1"><small>\r
+Copyright  $year, Texas Instruments Incorporated</small>\r
+</body>\r
+</html>\r
diff --git a/docs/tiheader.htm b/docs/tiheader.htm
new file mode 100644 (file)
index 0000000..c38e6fb
--- /dev/null
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">\r
+<title>$title</title>\r
+<link href="$relpath$doxygen.css" rel="stylesheet" type="text/css">\r
+<link href="$relpath$tabs.css" rel="stylesheet" type="text/css">\r
+</head><body>\r
+<table width=100%>\r
+<tr>\r
+  <td bgcolor="black" width="1"><a href="http://www.ti.com"><img border=0 src="../../tilogo.gif"></a></td>\r
+  <td bgcolor="red"><img src="../../titagline.gif"></td>\r
+</tr>\r
+</table>\r
diff --git a/docs/tilogo.gif b/docs/tilogo.gif
new file mode 100644 (file)
index 0000000..f2fab2d
Binary files /dev/null and b/docs/tilogo.gif differ
diff --git a/docs/titagline.gif b/docs/titagline.gif
new file mode 100644 (file)
index 0000000..743a024
Binary files /dev/null and b/docs/titagline.gif differ
diff --git a/package.bld b/package.bld
new file mode 100644 (file)
index 0000000..e2dd851
--- /dev/null
@@ -0,0 +1,161 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Build description for the RM LLD Package\r
+ ******************************************************************************\r
+ * FILE NAME: package.bld\r
+ *\r
+ * DESCRIPTION: \r
+ *  This file contains the build specification and description for the RM LLD\r
+ *  \r
+ *  The file takes the following parameters from the command line through the\r
+ *  XDCARGS variable.\r
+ *      XDCARGS[0] = RM LLD Install Type \r
+ *      Valid Values are "TAR" or "SETUP"\r
+ *      DEFAULT is "SETUP"\r
+ *\r
+ *  Example for a valid command:\r
+ *      xdc XDCARGS="SETUP" release   \r
+ *\r
+ * Copyright (C) 2012, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/* Determine if we need to create the InstallJammer Application or not? \r
+ * RM LLD Deliverables be either of the following formats:\r
+ *  - TAR Ball Package\r
+ *  - Setup Executable \r
+ * DEFAULT is a TAR Executable. */\r
+\r
+if ((arguments[0] != "TAR") && (arguments[0] != "SETUP"))\r
+    lldInstallType = "TAR";\r
+else\r
+    lldInstallType = arguments[0];\r
+\r
+/* Irrespective of the InstallType we always create a TAR Ball Package as a part\r
+ * of the RTSC Build. Here we determine the name of the TAR Ball Package\r
+ *  Format is as follows:\r
+ *      lld_<version> */\r
+var lldRTSCFileName = "rmlld" + "_" + lldPartNumber + "_" +\r
+                      lldReleaseVersion[0] + "_" +  lldReleaseVersion[1] + "_" + \r
+                      lldReleaseVersion[2]  + "_" + lldReleaseVersion[3];\r
+\r
+/******************************************************************\r
+ ************************ Release Banner **************************\r
+ ******************************************************************/\r
+\r
+print ("*************** RM LLD Build Information ****************");\r
+print ("RM LLD Install           : " + lldInstallType);\r
+print ("RM LLD Version           : " + lldReleaseVersion);\r
+print ("Tools Directory            : " + toolsBaseDir);\r
+print ("RTSC File Name            : " + lldRTSCFileName);\r
+print ("RM LLD Path              : " + lldPath);\r
+print ("Coverity Analysis          : " + (coverityAnalysis == "ON" ? "ON" : "OFF"));\r
+print ("CC LE opts                 : " + C66LE.ccOpts.prefix);\r
+print ("CC BE opts                 : " + C66BE.ccOpts.prefix);\r
+print ("***********************************************************");\r
+\r
+/* Create the release package for the RM LLD */\r
+Pkg.defaultRelease = Pkg.addRelease (lldRTSCFileName, {prefix: "./packages/"});\r
+\r
+/* Moving forward we need to set the Archiver of the package to be ZIP. This is currently\r
+ * not supported in the XDC tools being used. Currenly builds need to be done with the \r
+ * following options:-\r
+ *   xdc MK_FIXLISTOPTS=-t release \r
+ * ZIP is a better option as it works natively with INSTALL Jammer and we can remove the\r
+ * uncompression into a temporary directory. XDC Tools with xdc-rXX support the ZIP archiver. */\r
+//Pkg.attrs = {archiver : "zip"};\r
+\r
+\r
+/* Package the remaining files */\r
+Pkg.otherFiles[Pkg.otherFiles.length++] = "config.bld";\r
+Pkg.otherFiles[Pkg.otherFiles.length++] = "package.bld";\r
+Pkg.otherFiles[Pkg.otherFiles.length++] = "package.xdc";\r
+Pkg.otherFiles[Pkg.otherFiles.length++] = "Settings.xdc";\r
+Pkg.otherFiles[Pkg.otherFiles.length++] = "Settings.xdc.xdt";\r
+Pkg.otherFiles[Pkg.otherFiles.length++] = "rm_public_lld.h";\r
+Pkg.otherFiles[Pkg.otherFiles.length++] = "rmver.h";\r
+Pkg.otherFiles[Pkg.otherFiles.length++] = "rmver.h.xdt";\r
+Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/Doxyfile";\r
+Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/doxyfile.xdt";\r
+Pkg.otherFiles[Pkg.otherFiles.length++] = "build/buildlib.xs";\r
+\r
+/* Generate Users Manual Doxyfile */\r
+var tplt = xdc.loadTemplate("./docs/doxyfile.xdt");\r
+tplt.genFile("./docs/Doxyfile",lldReleaseVersion); \r
+\r
+/* Generate Settings.xdc */\r
+var tplt = xdc.loadTemplate("./Settings.xdc.xdt");\r
+tplt.genFile("./Settings.xdc",lldReleaseVersion); \r
+\r
+/* Generate paver.h */\r
+var tplt = xdc.loadTemplate("./rmver.h.xdt");\r
+tplt.genFile("./rmver.h",lldReleaseVersion);      \r
+\r
+/* Check if we need to create the mini package? */\r
+var miniBuild = java.lang.System.getenv("MINI_PACKAGE");\r
+\r
+if (miniBuild == "ON")\r
+{\r
+    /***************************************************************************\r
+     ********************************* MINI Package ****************************\r
+     ***************************************************************************/\r
+    /* Create the MINI RTSC Package */\r
+    var libUtility = xdc.loadCapsule ("build/buildlib.xs");\r
+    libUtility.createMiniPkg(lldRTSCFileName);\r
+}\r
+\r
+/********************************************************************* \r
+ *********************** INSTALL-JAMMER Support **********************\r
+ * In order to create the InstallJammer Application; we need to UNTAR\r
+ * the package into a temporary directory. This is required because \r
+ * currently the InstallJammer does not support the TAR Files and thus\r
+ * creating an UNTAR of the file. So to work-around the problem we will\r
+ * do the following in the EPILOGUE Section:-\r
+ *  (a) Create a temporary directory called 'tmp'\r
+ *  (b) UNTAR the package into 'tmp'\r
+ *  (c) Run the INSTALL Jammer on 'tmp'\r
+ *  (d) Remove the 'tmp' directory.\r
+ *\r
+ * This can be done only after the 'release' package has been created.\r
+ * Thus all of this work is being done in the EPILOGUE.\r
+ *********************************************************************/\r
+if (lldInstallType == "SETUP")\r
+{\r
+    /* Create the Install Jammer Version Variable. This is used inside the \r
+     * MPI File to create the Final executable. \r
+     *  The format supported is as follows:-\r
+     *   - setupwin32_rmlld_<part_number>_<version>.exe \r
+     *      This is for RM LLD Libraries and Header files\r
+     */\r
+    var InstallJammerVersion = "-DVersion " + lldPartNumber + "_" + lldReleaseVersion[0] + "_" +\r
+                               lldReleaseVersion[1] + "_" +  lldReleaseVersion[2]  + "_" + lldReleaseVersion[3];\r
+\r
+    /* This is the location where the tmp directory is located; this is used as \r
+     * the input directory for the Install Jammer. */ \r
+    var PackageBaseDir = " -DPackageBaseDir " + lldPath + "./tmp";\r
+\r
+    /* This is the location where the RM LLD will be installed by default. */\r
+    var WinInstallDir = " -DWinInstallDir C:/Program Files/Texas Instruments/rmlld" + "_" + \r
+                            lldPartNumber + "_" + \r
+                            lldReleaseVersion[0] + "_" +  lldReleaseVersion[1] + "_" +  \r
+                            lldReleaseVersion[2]  + "_" + lldReleaseVersion[3];\r
+\r
+    /* Create the actual EPILOGUE Section for the INSTALLER */\r
+    Pkg.makeEpilogue += "release: install_application\n";\r
+    Pkg.makeEpilogue += "install_application:\n";\r
+    Pkg.makeEpilogue += "\t @echo -------------------------------------------------------\n";\r
+    Pkg.makeEpilogue += "\t @echo Creating the Install\n";\r
+    Pkg.makeEpilogue += "\t @echo -------------------------------------------------------\n";\r
+    Pkg.makeEpilogue += "\t -$(MKDIR) tmp\n";\r
+    Pkg.makeEpilogue += "\t -$(MKDIR) tmp/packages\n";\r
+    Pkg.makeEpilogue += "\t -$(MKDIR) tmp/eclipse\n";\r
+    Pkg.makeEpilogue += "\t -$(CP) -R eclipse tmp\n";\r
+    Pkg.makeEpilogue += "\t tar -xf ./packages/" + lldRTSCFileName + ".tar" + " -Ctmp/packages \n";\r
+    Pkg.makeEpilogue += "\t installjammer " + InstallJammerVersion + PackageBaseDir + WinInstallDir + \r
+                        " --output-dir packages/ --build install/rmlld.mpi\n";\r
+    Pkg.makeEpilogue += "\t -$(RMDIR) /S /Q tmp\n\n";\r
+\r
+    /* We need to clean after ourselves; extend the 'clean' target to take care of this. */\r
+    Pkg.makeEpilogue += "clean::\n";\r
+    Pkg.makeEpilogue += "\t $(RM) packages/*.exe\n";\r
+    Pkg.makeEpilogue += "\t $(RM) packages/*.bin\n";\r
+}\r
+    \r
diff --git a/package.xdc b/package.xdc
new file mode 100644 (file)
index 0000000..e6810df
--- /dev/null
@@ -0,0 +1,15 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Package specification file \r
+ ******************************************************************************\r
+ * FILE NAME: package.xdc\r
+ *\r
+ * DESCRIPTION: \r
+ *  This file contains the package specification for the RM LLD library\r
+ *\r
+ * Copyright (C) 2012, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+package ti.drv.rm[1, 0, 0, 11] {\r
+    module Settings;\r
+}\r
+\r
diff --git a/package.xs b/package.xs
new file mode 100644 (file)
index 0000000..e488a95
--- /dev/null
@@ -0,0 +1,46 @@
+/*\r
+ *  ======== package.xs ========\r
+ *\r
+ */\r
+\r
+\r
+/*\r
+ *  ======== Package.getLibs ========\r
+ *  This function is called when a program's configuration files are\r
+ *  being generated and it returns the name of a library appropriate\r
+ *  for the program's configuration.\r
+ */\r
+\r
+function getLibs(prog)\r
+{\r
+    var suffix;\r
+\r
+    /* find a compatible suffix */\r
+    if ("findSuffix" in prog.build.target) {\r
+        suffix = prog.build.target.findSuffix(this);\r
+    }\r
+    else {\r
+        suffix = prog.build.target.suffix;\r
+    }\r
+\r
+    var name = this.$name + ".a" + suffix;\r
+    var lib = "";\r
+\r
+    lib = "lib/" + name;\r
+    if (java.io.File(this.packageBase + lib).exists()) {\r
+        return lib;\r
+    }\r
+\r
+    /* could not find any library, throw exception */\r
+    throw Error("Library not found: " + name);\r
+}\r
+\r
+/*\r
+ *  ======== package.close ========\r
+ */\r
+function close()\r
+{    \r
+    if (xdc.om.$name != 'cfg') {\r
+        return;\r
+    }\r
+}\r
diff --git a/rm_public_lld.h b/rm_public_lld.h
new file mode 100644 (file)
index 0000000..5b4ef35
--- /dev/null
@@ -0,0 +1,198 @@
+/**\r
+ *   @file  rm_public_lld.h\r
+ *\r
+ *   @brief   \r
+ *      This is the RM LLD include file for other LLDs.\r
+ *\r
+ *  \par\r
+ *  ============================================================================\r
+ *  @n   (C) Copyright 2012, Texas Instruments, Inc.\r
+ * \r
+ *  Redistribution and use in source and binary forms, with or without \r
+ *  modification, are permitted provided that the following conditions \r
+ *  are met:\r
+ *\r
+ *    Redistributions of source code must retain the above copyright \r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ *    Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the \r
+ *    documentation and/or other materials provided with the   \r
+ *    distribution.\r
+ *\r
+ *    Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \r
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \r
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT \r
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, \r
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT \r
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \r
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \r
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+ *  \par\r
+*/\r
+\r
+#ifndef RM_PUBLIC_LLD_H_\r
+#define RM_PUBLIC_LLD_H_\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+/* QMSS type include */\r
+#include <ti/drv/qmss/qmss_qm.h>\r
+\r
+/* CPPI type include */\r
+#include <ti/csl/csl_cppi.h>\r
+\r
+/**\r
+@addtogroup RM_LLD_SYMBOL\r
+@{\r
+*/\r
+\r
+/** RM Permission Return And Error Codes */\r
+/** RM LLD Permission Approved Base */\r
+#define RM_APPROVED_BASE 0\r
+/** Resource initialization permission approved */\r
+#define RM_INIT_PERMISSION_APPROVED  (RM_APPROVED_BASE+1)\r
+/** Resource usage permission approved */\r
+#define RM_USE_PERMISSION_APPROVED  (RM_APPROVED_BASE+2)\r
+\r
+/** RM LLD Permission Denied Base */\r
+#define RM_DENIED_BASE (-64)\r
+/** Resource initialization permission denied */\r
+#define RM_INIT_PERMISSION_DENIED  (RM_DENIED_BASE-1)\r
+/** Resource usage permission denied */\r
+#define RM_USE_PERMISSION_DENIED  (RM_DENIED_BASE-2)\r
+\r
+/**\r
+@}\r
+*/\r
+\r
+/**\r
+@addtogroup RM_LLD_ENUM\r
+@{\r
+*/\r
+\r
+/** \r
+ * @brief LLD resource type\r
+ */\r
+typedef enum\r
+{\r
+    /** QMSS Firmware Type */\r
+    Rm_resource_QMSS_FIRMWARE_PDSP = 0,\r
+    /** QMSS Queue Type */\r
+    Rm_resource_QMSS_QUEUE,\r
+    /** QMSS Memory Region Type */\r
+    Rm_resource_QMSS_MEMORY_REGION,\r
+    /** QMSS Linking RAM Control Type */\r
+    Rm_resource_QMSS_LINKING_RAM_CONTROL,\r
+    /** QMSS Linking RAM Type */\r
+    Rm_resource_QMSS_LINKING_RAM,\r
+    /** QMSS Accumulator Channel Type */\r
+    Rm_resource_QMSS_ACCUM_CH,\r
+    /** QMSS QOS PDSP Timer */\r
+    Rm_resource_QMSS_QOS_TIMER,\r
+    /** QMSS QOS Cluster Type */\r
+    Rm_resource_QMSS_QOS_CLUSTER,\r
+    /** QMSS QOS Queue Type */\r
+    Rm_resource_QMSS_QOS_QUEUE,\r
+    /** CPPI Transmit Channel Type */\r
+    Rm_resource_CPPI_TX_CH,\r
+    /** CPPI Receive Channel Type */\r
+    Rm_resource_CPPI_RX_CH,\r
+    /** CPPI Receive Flow Type */\r
+    Rm_resource_CPPI_RX_FLOW,\r
+    /** PA Firmware Type */\r
+    Rm_resource_PA_FIRMWARE,\r
+    /** PA LUT Type */\r
+    Rm_resource_PA_LUT\r
+}Rm_ResourceType;\r
+\r
+/**\r
+@}\r
+*/\r
+\r
+/** @addtogroup RM_LLD_DATASTRUCT\r
+@{ \r
+*/\r
+\r
+/** \r
+ * @brief Structure specifying the Linking RAM start and end indices\r
+ */\r
+typedef struct\r
+{\r
+    uint32_t linkRamStartIndex;\r
+    uint32_t linkRamEndIndex;\r
+} Rm_ResourceLinkRamInfo;\r
+\r
+/** \r
+ * @brief Structure specifying the CPPI rx channel, tx channel, and flow ID information\r
+ */\r
+typedef struct\r
+{\r
+    Cppi_CpDma dmaNum;\r
+    int32_t cppiChNumOrFlowId;\r
+} Rm_ResourceCpDmaInfo;\r
+\r
+/** \r
+ * @brief Structure specifying the LLD resource to have permissions checked by RM\r
+ */\r
+typedef struct\r
+{\r
+    /** LLD resource type to be checked */\r
+    Rm_ResourceType resourceType;\r
+    \r
+    /** Resource parameters union. */\r
+    union\r
+    {\r
+        /** QMSS Resource Data */\r
+        uint16_t pdspNum;\r
+        int queNum;\r
+        Qmss_MemRegion memRegion;\r
+        Rm_ResourceLinkRamInfo linkRamData;\r
+        uint8_t accumCh;\r
+        uint32_t qosCluster;\r
+        uint32_t qosQueue;        \r
+\r
+        /** CPPI Resource Data */\r
+        Rm_ResourceCpDmaInfo cpDmaData;\r
+\r
+        /** PA Resource Data */\r
+        int32_t lutEntry;\r
+    } res_info;\r
+} Rm_ResourceInfo;\r
+\r
+/** \r
+ * @brief RM return result\r
+ */\r
+typedef int32_t   Rm_Result;\r
+\r
+/** \r
+ * @brief Structure of LLD function callouts for permissions checks\r
+ */\r
+typedef struct\r
+{\r
+    /** Init permissions check function */\r
+    Rm_Result  (*rmInitPermissionsCheck)(Rm_ResourceInfo *resourceData);\r
+    /** Use permissions check function */\r
+    Rm_Result  (*rmUsePermissionsCheck)(Rm_ResourceInfo *resourceData); \r
+}Rm_LldPermCallouts;\r
+\r
+/** \r
+@} \r
+*/\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* RM_PUBLIC_LLD_H_ */\r
+\r
diff --git a/rmver.h b/rmver.h
new file mode 100644 (file)
index 0000000..e3be464
--- /dev/null
+++ b/rmver.h
@@ -0,0 +1,68 @@
+#ifndef _RMVER_H
+#define _RMVER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ============================================================= */
+/**
+ *   @file  rmver.h
+ *
+ *   path  ti/drv/rm/rmver.h
+ *
+ *   @brief  Resource Manager LLD Version Definitions
+ *
+ *  ============================================================
+ *  Copyright (c) Texas Instruments Incorporated 2009-2012
+ * 
+ *  Redistribution and use in source and binary forms, with or without 
+ *  modification, are permitted provided that the following conditions 
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright 
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the 
+ *    documentation and/or other materials provided with the   
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+
+/**
+ * @brief   This is the RM LLD Version. Versions numbers are encoded in the following 
+ * format:
+ *  0xAABBCCDD -> Arch (AA); API Changes (BB); Major (CC); Minor (DD)
+ */
+#define RM_LLD_VERSION_ID                   (0x0100000B)
+
+/**
+ * @brief   This is the version string which describes the RM LLD along with the
+ * date and build information.
+ */
+#define RM_LLD_VERSION_STR                  "RM LLD Revision: 01.00.00.11"
+
+
+#ifdef __cplusplus
+}
+#endif
+  
+
+#endif  /* _RMVER_H */
diff --git a/rmver.h.xdt b/rmver.h.xdt
new file mode 100644 (file)
index 0000000..caf68b2
--- /dev/null
@@ -0,0 +1,100 @@
+%%{\r
+/*!\r
+ *  This template implements the rmver.h\r
+ */  \r
+  /* Versioning */\r
+  var ver = this;\r
+  var ver1 = [00,00,00,00];\r
+  var ver2 = [00,00,00,00];\r
+  \r
+  for each(i=0;i<ver.length;i++)\r
+  {\r
+      if(String(ver[i]).length < 2)\r
+      {\r
+        ver1[i]="0"+ver[i];\r
+      }\r
+      else\r
+      {\r
+        ver1[i] = ver[i];\r
+      }\r
+      \r
+      ver2[i] = Number(ver[i]).toString(16).toUpperCase();\r
+      \r
+      if(String(ver2[i]).length < 2)\r
+      {\r
+        ver2[i]="0"+ver2[i];\r
+      }\r
+  }\r
+  \r
+  var versionStr = "\""+"RM LLD Revision: "+ver1[0]+"."+ver1[1]+"."+ver1[2]+"."+ver1[3]+"\"";\r
+  var versionID = "(0x"+ver2[0]+ver2[1]+ver2[2]+ver2[3]+")";\r
+\r
+%%}\r
+#ifndef _RMVER_H\r
+#define _RMVER_H\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+/* ============================================================= */\r
+/**\r
+ *   @file  rmver.h\r
+ *\r
+ *   path  ti/drv/rm/rmver.h\r
+ *\r
+ *   @brief  Resource Manager LLD Version Definitions\r
+ *\r
+ *  ============================================================\r
+ *  Copyright (c) Texas Instruments Incorporated 2009-2012\r
+ * \r
+ *  Redistribution and use in source and binary forms, with or without \r
+ *  modification, are permitted provided that the following conditions \r
+ *  are met:\r
+ *\r
+ *    Redistributions of source code must retain the above copyright \r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ *    Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the \r
+ *    documentation and/or other materials provided with the   \r
+ *    distribution.\r
+ *\r
+ *    Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \r
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \r
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT \r
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, \r
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT \r
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \r
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \r
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+*/\r
+\r
+/**\r
+ * @brief   This is the RM LLD Version. Versions numbers are encoded in the following \r
+ * format:\r
+ *  0xAABBCCDD -> Arch (AA); API Changes (BB); Major (CC); Minor (DD)\r
+ */\r
+#define RM_LLD_VERSION_ID                   `versionID`\r
+\r
+/**\r
+ * @brief   This is the version string which describes the RM LLD along with the\r
+ * date and build information.\r
+ */\r
+#define RM_LLD_VERSION_STR                  `versionStr`\r
+\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+  \r
+\r
+#endif  /* _RMVER_H */\r
diff --git a/setupenv.bat b/setupenv.bat
new file mode 100644 (file)
index 0000000..81d8837
--- /dev/null
@@ -0,0 +1,76 @@
+@REM ******************************************************************************\r
+@REM * FILE PURPOSE: Environment Setup for building RM LLD\r
+@REM ******************************************************************************\r
+@REM * FILE NAME: setupenv.bat\r
+@REM *\r
+@REM * DESCRIPTION: \r
+@REM *  Configures and sets up the Build Environment\r
+@REM *\r
+@REM * Copyright (C) 2012, Texas Instruments, Inc.\r
+@REM *****************************************************************************\r
+\r
+@echo ---------------------------------------\r
+@echo Configuring RM LLD Build Environment\r
+@echo off\r
+\r
+IF DEFINED PARTNO GOTO partno_defined\r
+@REM Configure the Part Number\r
+set PARTNO=c6678\r
+:partno_Defined\r
+\r
+IF DEFINED PDK_INSTALL_PATH GOTO pdk_defined\r
+set PDK_INSTALL_PATH=c:/Program Files/Texas Instruments/pdk_c6678_1_0_0_17/packages\r
+:pdk_defined\r
+\r
+@REM ---------------------------------\r
+@REM Enabling MINI PACKAGE to be Built\r
+@REM ---------------------------------\r
+set MINI_PACKAGE=OFF\r
+@echo MINI PACKAGE is set to %MINI_PACKAGE%\r
+\r
+@REM This is the base location for the various tools. \r
+set XDCCGROOT=t:/c6xx/cgen7_2_04/c6000/cgtools\r
+set C6X_GEN_INSTALL_PATH=T:\c6xx\cgen7_2_04\c6000\cgtools\r
+\r
+REM *******************************************************************************\r
+REM *************************** XDC PATH Configuration ****************************\r
+REM *******************************************************************************\r
+REM RM LLD depends upon the following packages:-\r
+REM     - None\r
+\r
+@REM Specify the XDC Tool Path\r
+set XDC_INSTALL_PATH=t:/gen/xdc/xdctools_3_22_01_21\r
+set XDCPATH=../../..;%XDC_INSTALL_PATH%/packages\r
+\r
+@REM Configure the XDCPATH\r
+set XDCPATH=%XDCPATH%;%PDK_INSTALL_PATH%;%C6X_GEN_INSTALL_PATH%/include\r
+\r
+@REM Eclipse Help Plugin (Not required by customers)\r
+set XDC_ECLIPSE_PLUGIN_INSTALL_PATH=T:/gen/xdc/xdc_eclipse_plugin_gen/20091203\r
+set XDC_FILTER_INSTALL_PATH=T:/gen/xdc/xdcFilter/20100428\r
+set XDCPATH=%XDCPATH%;%XDC_ECLIPSE_PLUGIN_INSTALL_PATH%\r
+set XDCPATH=%XDCPATH%;%XDC_FILTER_INSTALL_PATH%\r
+\r
+@REM Configure the paths to ensure that the XDC is available.\r
+set PATH=%XDC_INSTALL_PATH%;%XDC_INSTALL_PATH%\bin;T:\Doxygen\doxygen\1.5.1-p1\bin\r
+\r
+@REM Third Party Tools: Install-Jammer (Not required by customers)\r
+set PATH=%PATH%;T:\gen\InstallJammer\v1_2_05\r
+\r
+set PATH=%PATH%;%XDCCGROOT%\bin;T:\gen\gnu\99-11-01\cygwin-b20\H-i586-cygwin32\bin\r
+set PATH=%PATH%;T:\SDOApps\cg_xml\cg_xml_v2_20_00\bin\r
+set PATH=%PATH%;T:\ti_pdsp_cgen\20091120\r
+\r
+@REM Third Party Tools: HTML Help compiler.\r
+set PATH=%PATH%;T:\Doxygen\HTML_Help_Workshop\10-01-2007\r
+\r
+@REM Environment Variable which control STATIC Analysis of the code\r
+set STATIC_ANALYZE_PATH=T:\gen\coverity\prevent-mingw-3.4.0\r
+set PATH=%PATH%;%STATIC_ANALYZE_PATH%\bin\r
+\r
+@REM Set the Title Window appropriately.\r
+Title RM LLD Build Environment\r
+\r
+@echo RM LLD Build Environment Configured \r
+@echo ---------------------------------------\r
+\r