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.

C6748 Memory (DDR, IRAM, ...) configuration using SYS-BIOS

Other Parts Discussed in Thread: SYSBIOS

Earlier project, I was using DSP-BIOS 5. I am configuration MEM, TSK, HWI, SEM, PRD using GUI tool and generating .tcf file.

In New, project I am using C6748 with CCS 5.5, SYS-BIOS. I am using default ".cfg" file from one of the example code except updated HEAP and SYSTEM STACK size. I am creating all Task, Sempahore, Hwi using API.

My ".cfg" file looks like

**************************************

var Defaults = xdc.useModule('xdc.runtime.Defaults');

var Diags = xdc.useModule('xdc.runtime.Diags');

var Error = xdc.useModule('xdc.runtime.Error');

var Log = xdc.useModule('xdc.runtime.Log');

var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');

var Main = xdc.useModule('xdc.runtime.Main');

var Memory = xdc.useModule('xdc.runtime.Memory')

var SysMin = xdc.useModule('xdc.runtime.SysMin');

var System = xdc.useModule('xdc.runtime.System');

var Text = xdc.useModule('xdc.runtime.Text');

var BIOS = xdc.useModule('ti.sysbios.BIOS');

var Clock = xdc.useModule('ti.sysbios.knl.Clock');

var Swi = xdc.useModule('ti.sysbios.knl.Swi');

var Task = xdc.useModule('ti.sysbios.knl.Task');

var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');

var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');

var Timestamp = xdc.useModule('xdc.runtime.Timestamp');

/*

* Program.argSize sets the size of the .args section.

* The examples don't use command line args so argSize is set to 0.

*/

Program.argSize = 0x0;

/*

* Uncomment this line to globally disable Asserts.

* All modules inherit the default from the 'Defaults' module.  You

* can override these defaults on a per-module basis using Module.common$.

* Disabling Asserts will save code space and improve runtime performance.

Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;

*/

/*

* Uncomment this line to keep module names from being loaded on the target.

* The module name strings are placed in the .const section. Setting this

* parameter to false will save space in the .const section.  Error and

* Assert messages will contain an "unknown module" prefix instead

* of the actual module name.

Defaults.common$.namedModule = false;

*/

/*

* Minimize exit handler array in System.  The System module includes

* an array of functions that are registered with System_atexit() to be

* called by System_exit().

*/

System.maxAtexitHandlers = 4;      

/*

* Uncomment this line to disable the Error print function. 

* We lose error information when this is disabled since the errors are

* not printed.  Disabling the raiseHook will save some code space if

* your app is not using System_printf() since the Error_print() function

* calls System_printf().

Error.raiseHook = null;

*/

/*

* Uncomment this line to keep Error, Assert, and Log strings from being

* loaded on the target.  These strings are placed in the .const section.

* Setting this parameter to false will save space in the .const section.

* Error, Assert and Log message will print raw ids and args instead of

* a formatted message.

Text.isLoaded = false;

*/

/*

* Uncomment this line to disable the output of characters by SysMin

* when the program exits.  SysMin writes characters to a circular buffer.

* This buffer can be viewed using the SysMin Output view in ROV.

SysMin.flushAtExit = false;

*/

/*

* The BIOS module will create the default heap for the system.

* Specify the size of this default heap.

*/

BIOS.heapSize = 0x100000;

/*

* Build a custom SYS/BIOS library from sources.

*/

BIOS.libType = BIOS.LibType_Custom;

/* System stack size (used by ISRs and Swis) */

Program.stack = 0x4000;

/* Circular buffer size for System_printf() */

SysMin.bufSize = 0x400;

/*

* Create and install logger for the whole system

*/

var loggerBufParams = new LoggerBuf.Params();

loggerBufParams.numEntries = 16;

var logger0 = LoggerBuf.create(loggerBufParams);

Defaults.common$.logger = logger0;

Main.common$.diags_INFO = Diags.ALWAYS_ON;

System.SupportProxy = SysMin;

****************************

Question, How (& where) do I config memory (DDR) when using SYS-BIOS 6.

Thanks

Jayesh

  • Hi Jayesh,

    The application memory map is defined by the platform in SYS/BIOS 6. Below screenshot shows where the platform is set in the Project properties:

    If the memory map defined by the platform does not match the memory map on your board, you can create a custom platform with a customized memory map. Here's the link to a tutorial showing how to create a custom platform in CCS: http://rtsc.eclipse.org/docs-tip/Demo_of_the_RTSC_Platform_Wizard_in_CCSv4

    Once you have defined a custom memory map, it is possible to control which data /code section gets placed in which memory segment via the *.cfg file. Here's a wiki topic that explains how to use Program.sectMap() to achieve this:

    http://rtsc.eclipse.org/docs-tip/Memory_Management#Controlling_the_generated_linker_command_file

    Best,

    Ashish