I have the CLAmath source project and open and it has a few different build options:
CLAMATHLIB_STD
CLAMATHLIB_FPU32_SUPPORT
CLAMATHLIB_DATAROM_STD
CLAMATHLIB_DATAROM_FPU32_SUPPORT
So, I am having trouble finding information on what DATAROM means, from what I gather it stores the math tables in Data ROM.
What I've been doing up to now is just using CLAMATHLIB_FPU32_SUPPORT and in my cmd file, I copy the math tables to CLA Data RAM 2 (L0DPSARAM).
If I compile and use CLAMATHLIB_DATAROM_FPU32_SUPPORT what do I have to change in my cmd file? Take everything out about the tables? It is handled automatically? I tried this, and I get errors about unresolved symbols (tables). Should they be being copied to another memory section instead of DLA Data RAM 2?????
Below is my cmd file for reference
/* User Configurable Options */
#define USE_CLA_C 1 /* 1 = Using CLA C-compiler, 0 = ASM only */
_Cla1Prog_Start = _Cla1funcsRunStart;
-heap 0x400
-stack 0x400
/* Define size for the CLA scratchpad area that will be used by the CLA compiler for local symbols and temporary
* variables; also force references to the special symbols that mark the scratchpad area. */
#if USE_CLA_C == 1
CLA_SCRATCHPAD_SIZE = 0x100;
--undef_sym=__cla_scratchpad_end
--undef_sym=__cla_scratchpad_start
#endif
MEMORY
{
PAGE 0: /* Program Memory */
BEGIN_M0 : origin = 0x000000, length = 0x000002 /* Part of M0SARAM - used for "Boot to M0" mode */
L3DPSARAM : origin = 0x009000, length = 0x001000 /* L3 DPSARAM, CSM secure, CLA Prog RAM */
L4SARAM : origin = 0x00A000, length = 0x002000 /* L4 SARAM, CSM secure */
OTP (R) : origin = 0x3D7800, length = 0x000400 /* OTP */
FLASH_ABCDEFGH (R) : origin = 0x3D8000, length = 0x01FF80 /* FLASH, All sectors combined */
CSM_RSVD (R) : origin = 0x3F7F80, length = 0x000076 /* Part of FLASH_A - reserved when CSM is in use */
BEGIN_FLASH (R) : origin = 0x3F7FF6, length = 0x000002 /* Part of FLASH_A - used for "Jump to flash" mode */
PASSWORDS (R) : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASH_A - CSM password locations */
FPUTABLES (R) : origin = 0x3FD860, length = 0x0006A0 /* Part of Boot ROM */
IQTABLES (R) : origin = 0x3FDF00, length = 0x000B50 /* Part of Boot ROM */
IQTABLES2 (R) : origin = 0x3FEA50, length = 0x00008C /* Part of Boot ROM */
IQTABLES3 (R) : origin = 0x3FEADC, length = 0x0000AA /* Part of Boot ROM */
RESET (R) : origin = 0x3FFFC0, length = 0x000002 /* part of Boot ROM */
PAGE 1 : /* Data Memory */
M0SARAM : origin = 0x000002, length = 0x0003FE /* M0 SARAM */
M1SARAM : origin = 0x000400, length = 0x000400 /* M1 SARAM */
CLAMSGRAM1 : origin = 0x001480, length = 0x000080 /* Part of PF0 - CLA to CPU Message RAM */
CLAMSGRAM2 : origin = 0x001500, length = 0x000080 /* Part of PF0 - CPU to CLA Message RAM */
L0DPSARAM : origin = 0x008000, length = 0x000800 /* L0 DPSARAM, CSM secure, CLA Data RAM 2 */
L1DPSARAM : origin = 0x008800, length = 0x000400 /* L1 DPSARAM, CSM secure, CLA Data RAM 0 */
L2DPSARAM : origin = 0x008C00, length = 0x000400 /* L2 DPSARAM, CSM secure, CLA Data RAM 1 */
L5DPSARAM : origin = 0x00C000, length = 0x002000 /* L5 DPSARAM, DMA RAM 0 */
L6DPSARAM : origin = 0x00E000, length = 0x002000 /* L6 DPSARAM, DMA RAM 1 */
L7DPSARAM : origin = 0x010000, length = 0x002000 /* L7 DPSARAM, DMA RAM 2 */
L8DPSARAM : origin = 0x012000, length = 0x002000 /* L8 DPSARAM, DMA RAM 3 */
}
SECTIONS
{
/* Compiler Required Sections */
/* Program memory (PAGE 0) sections */
.text : > FLASH_ABCDEFGH, PAGE = 0
.cinit : > FLASH_ABCDEFGH, PAGE = 0
.const : > FLASH_ABCDEFGH, PAGE = 0
.econst : > FLASH_ABCDEFGH, PAGE = 0
.pinit : > FLASH_ABCDEFGH, PAGE = 0
.reset : > RESET, PAGE = 0, TYPE = DSECT /* We are not using the .reset section */
.switch : > FLASH_ABCDEFGH, PAGE = 0
/* Data Memory (PAGE 1) sections */
.bss : > M0SARAM, PAGE = 1
.ebss : > M0SARAM, PAGE = 1
.cio : > M0SARAM, PAGE = 1
.stack : > M1SARAM, PAGE = 1
.sysmem : > M1SARAM, PAGE = 1
.esysmem : > M1SARAM, PAGE = 1
.bss_cla : > L2DPSARAM, PAGE = 1
.const_cla : > L2DPSARAM, PAGE = 1
/* User Defined Sections */
codestart : > BEGIN_FLASH, PAGE = 0 /* Used by file CodeStartBranch.asm */
dmaMemBufs : > L5DPSARAM, PAGE = 1 /* Link to DMA accessible memory */
csm_rsvd : > CSM_RSVD, PAGE = 0 /* Used by file Passwords.asm */
passwords : > PASSWORDS, PAGE = 0 /* Used by file Passwords.asm */
ClaToCpuMsgRAM : > CLAMSGRAM1, PAGE = 1 /* Link to PF0 - CLA Message RAM */
CpuToClaMsgRAM : > CLAMSGRAM2, PAGE = 1 /* Link to PF0 - CLA Message RAM */
/* Section secureRamFuncs used by file Flash.c. */
secureRamFuncs : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Load to flash, run from CSM secure RAM */
RUN = L4SARAM, PAGE = 0
LOAD_START(_secureRamFuncs_loadstart),
LOAD_SIZE(_secureRamFuncs_loadsize),
RUN_START(_secureRamFuncs_runstart)
/* Section Cla1Prog used by file Cla.c */
Cla1Prog : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Load to flash, run from CLA Prog RAM */
RUN = L3DPSARAM, PAGE = 0
LOAD_START(_Cla1funcsLoadStart),
LOAD_END(_Cla1funcsLoadEnd),
LOAD_SIZE(_Cla1funcsLoadSize),
RUN_START(_Cla1funcsRunStart)
// CLA1mathTables : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Load to flash, run from CLA Prog RAM */
// RUN = L0DPSARAM, PAGE = 1
// LOAD_START(_Cla1mathTablesLoadStart),
// LOAD_END(_Cla1mathTablesLoadEnd),
// LOAD_SIZE(_Cla1mathTablesLoadSize),
// RUN_START(_Cla1mathTablesRunStart)
#if USE_CLA_C == 1
CLAscratch : { *.obj(CLAscratch) /* Scratchpad memory for the CLA C Compiler */
. += CLA_SCRATCHPAD_SIZE;
*.obj(CLAscratch_end)
} > L2DPSARAM, PAGE = 1
#endif
/* Math Tables */
FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
IQmath : > FLASH_ABCDEFGH, PAGE = 0
}