DSPRelated.com
Forums

Linker cmd for IQmath in F2812

Started by naay...@gmail.com June 24, 2008
Hi all,

I want to confirm whether the following linker file is correct for handling IQmath in RAM.Because all my computation values look very starnge to me.Can any one of you reply me? Its urgent. If it is wrong then please tell me the correction. Many thanks
MEMORY
{
PAGE 0 :
/* For this example, H0 is split between PAGE 0 and PAGE 1 */
/* BEGIN is used for the "boot to HO" bootloader mode */
/* RESET is loaded with the reset vector only if */
/* the boot is from XINTF Zone 7. Otherwise reset vector */
/* is fetched from boot ROM. See .reset section below */
BEGIN : origin = 0x3F8000, length = 0x000002
RAMM0 : origin = 0x000000, length = 0x000400

PRAMH0 : origin = 0x3F8002, length = 0x000FFE

BOOTROM : origin = 0x3FF000, length = 0x000FC0

RESET : origin = 0x3FFFC0, length = 0x000002

PAGE 1 :

/* For this example, H0 is split between PAGE 0 and PAGE 1 */

RAMM1 : origin = 0x000400, length = 0x000400
DRAMH0 : origin = 0x3f9000, length = 0x001000
}

SECTIONS
{
/* Setup for "boot to H0" mode:
The codestart section (found in DSP28_CodeStartBranch.asm)
re-directs execution to the start of user code.
Place this section at the start of H0 */

codestart : > BEGIN, PAGE = 0
ramfuncs : > PRAMH0 PAGE = 0
.text : > PRAMH0, PAGE = 0
.cinit : > PRAMH0, PAGE = 0
.pinit : > PRAMH0, PAGE = 0

.switch : > RAMM0, PAGE = 0
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */

.stack : > RAMM1, PAGE = 1
.ebss : > DRAMH0, PAGE = 1
.econst : > DRAMH0, PAGE = 1
.esysmem : > DRAMH0, PAGE = 1
IQmath : > PRAMH0, PAGE = 0
IQmathTables : > BOOTROM, type = NOLOAD, PAGE = 0

}

OMAP35x EVM jump-starts low-power apps
The modular and extensible OMAP35x Evaluation Module (EVM) enables developers to start building applications based on the OMAP35x architecture: http://www.DSPRelated.com/omap35x
Hi

I had the same problem with IQmath library in same processor TMS320F2812.
I tried several tips like change the cmd file like this example:

MEMORY
{
PAGE 0:
BEGINRAM: origin=0x3f8000, length=0x2
BEGINFLASH: origin=0x3f7ff6, length=0x2
CSM_PWL: origin=0x3f7ff8, length=0x8
RAMH0: origin=0x3f8002, length=0x282A
BOOTROM: origin=0x3ff000, length=0xfc0
RESET: origin=0x3fffc0, length=0x2
VECTORS: origin=0x3fffc2, length=0x3e
FLASH: origin=0x3d8000, length=0x1fff6
ZONE6P: origin=0x100000, length=0x8000
PAGE 1:
OTP: origin=0x3d7800, length=0x800
RAMM0M1: origin=0x0, length=0x800
RAML0L1: origin=0x8000, length=0x259b
ZONE6D: origin=0x108000, length=0x8000
}
SECTIONS
{
.vectors: load = 0x000000000
.text: > RAMH0, PAGE = 0
.switch: > RAMH0, PAGE = 0
.bss: > RAML0L1, PAGE = 1
.ebss: > RAML0L1, PAGE = 1
.far: > RAML0L1, PAGE = 1
.cinit: > RAMH0, PAGE = 0
.pinit: > RAMH0, PAGE = 0
.const: > RAML0L1, PAGE = 1
.econst: > RAML0L1, PAGE = 1
.reset: > RESET, PAGE = 0, TYPE = DSECT
.data: > RAML0L1, PAGE = 1
.cio: > RAML0L1, PAGE = 1
.sysmem: > RAML0L1, PAGE = 1
.esysmem: > RAML0L1, PAGE = 1
.stack: > RAMM0M1, PAGE = 1
.rtdx_text: > RAMH0, PAGE = 0
.rtdx_data: > RAML0L1, PAGE = 1
codestart: > BEGINRAM, PAGE = 0
IQmath: > RAMH0, PAGE = 0
ramfuncs: > RAMH0, PAGE = 0
IQmathTables: > RAML0L1, PAGE = 1
}
-l "C:\Program Files\MATLAB\R2007a\toolbox\rtw\targets\ccslink\ccslink\c2000\c281xPeripherals.cmd"

It was work but while my application was small because after that appeared a lot errors of location in memory. These errors were really annoyed to solve.

After I found the solution of my problem. That was very simple, it was only to put input XMP/MC = GND of TMS320F2812 to activate the BOOTROM option.

Now I can use all cmd files of TI examples without any problem :)

Cheers,

Rui Machado.


OMAP35x EVM jump-starts low-power apps
The modular and extensible OMAP35x Evaluation Module (EVM) enables developers to start building applications based on the OMAP35x architecture: http://www.DSPRelated.com/omap35x