программа(замечательно работавшая на ezDsp), скомпилированная на CCS 3.1, прошивается во флэш.
.cmd файл выглядит следующим образом:
-stack 0x400
MEMORY
{
PAGE 0: VECS: origin = 0000h, length = 0040h
PROG: origin = 1000h, length = 7000h
PAGE 1: B0B1: origin = 0200h, length = 200h
SARAM: origin = 8000h, length = 800h
}
SECTIONS
{
vectors : { } > VECS PAGE = 0
.cinit : { } > PROG PAGE = 0
.text : { } > PROG PAGE = 0
.const : { } > PROG PAGE = 0
.data : { } > B0B1 PAGE 1
.bss : { } > B0B1 PAGE 1
.stack : { } > SARAM PAGE 1
.sysmem : { } > B0B1 PAGE 1
}
в свойствах проекта автоинициализация памяти под RAM (т.е. опция -сr)
при прошивке все замечательно
но реакции никакой,там дисплей подсоединен

путем измеренний выяснили, что если инициализировать через _с_int0, то постоянно срабатывает WD.Если сразу после RESET точкой входа объявлять main(), не _с_int0, то вроде работает все нормально, но не получается стэк инициализаровать, а без него все очень объемно получается.
вставил в проект BOOT.asm из все того же ezDsp, все равно никакого результата.
После того как в ССS, посмотрел код в режиме дизассемблирования, то выяснил следующее:
после RESET, бит ILLADR в SCSR1 сразу оказывается в 1.
а после строк в _с_int0 (BOOT.asm)
LDP #0E0h
SPLK #0068h,WD_CNTL
KICK_DOG
значение регистра WDCR становится равным 0х0040.
все тоже самое и еще на 4 процессорах.
и еще выяснил, что NMI срабатывает в конце куска
;
; Perform the copy of data from program to data
;
copy:
ADDK 1 ; increment pointer to data
TBLR *+,AR3 ; copy data from program to variable
BANZ copy,*-,AR2 ; until count is zero
в стандартном BOOT.asm
Это какая-то ошибка в алгоритме прошивки программы?