реклама на сайте
подробности

 
 
> подскажите, как организовать память у TMS320F2812 в CCS2000
temik
сообщение Feb 1 2007, 21:05
Сообщение #1





Группа: Новичок
Сообщений: 13
Регистрация: 16-01-07
Пользователь №: 24 477



Программа не помещается в H0. пробовал менять области памяти в cmd-файле, но это приводит только к появлению ошибок при попытке загрузить программу эмулятором в кристалл.
Уменьшить программу не могу, подскажите, как быть.. у техаса столько памяти, а какая то мелкая прога не помещается .. нонсенс...


вот cmd-файл:
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 */

RAMM0 : origin = 0x000000, length = 0x000400
BEGIN : origin = 0x3F8000, length = 0x000002
PRAMH0 : origin = 0x3F8002, length = 0x000FFE
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 : > DRAMH0, PAGE = 1//переместил, ибо тоже не лезло
.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


}


а для .text надо 0x002e14 размер.. куда еще его можно запихнуть???
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lolikandr
сообщение Feb 2 2007, 18:31
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 25-06-05
Пользователь №: 6 300



Вообще-то у F2812 размер H0 = 8Kx16. Что означает length = 0x1FFE. Вы себе искуственно ополовинили память, насколько я понимаю.
Разместить 0x2E14 это конечно не поможет. Придется поиграться, как посоветовал BratherLU. То есть некоторые функции разместить в других секциях. Хочу обратить внимание, что L0 и L1 находятся рядом и поэтому можно сделать что-то типа такого:

MEMORY
{
...
PAGE 0 : /* Data Memory */
H0SARAM : origin = 0x3F8002, length = 0x001FFE /* 8Kw H0 SARAM */
...
PAGE 1 : /* Data Memory */
H0SARAM : origin = 0x3F8002, length = 0x001FFE /* 8Kw H0 SARAM */
...
L1SARAM : origin = 0x009000, length = 0x001400 /* 4Kw L1 SARAM */
L0L1SARAM : origin = 0x008400, length = 0x001C00 /* 256w L0 SARAM begin*/
}
SECTIONS
{
...
/* Data Memory (PAGE 1) sections */
.bss : > L0L1SARAM, PAGE = 1
.ebss : > L0L1SARAM, PAGE = 1
...
}

Мне такое понадобилось, так как константа-таблица не влазила в исходный 2K размер секции L0. Сразу скажу, что размещать код я там не пробовал, но ограничений для этого не вижу. Чисто по размеру памяти должно хватить, надеюсь код не придется дорабатывать-увеличивать.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016