Перейти к содержанию
    

Помогите ламеру с vdsp

Привет всем. Помогите, плз, бедному начинающему ламеру. Мне нужно реализовать извлечение квадратного корня методом Ньютона-Рафсона на ассемблере ADSP с определенной точностью. Вот программа из методички Климовича К.Г. 2002 Программирование ADSP 21160 EZ-KIT (компилится, подключены все нужные компоненты, но идет переполнение стека):

/*******************************************************************

/* Specific function h-file*/

 

#include "def21160.h"

#include <stdio.h>

 

/* exclusively for ez-kit intrrupt setup */

 

#define Mon_SPT1I JUMP 0x40220;RTI;RTI;RTI

#define Mon_IRQ0I JUMP 0x40210;RTI;RTI;RTI

#define Mon_IRQ1I JUMP 0x40200;RTI;RTI;RTI

 

/* DATA */

 

#define Y 36.0 // Input number

#define C 0.5 // Coeff 1

#define Z 3.0 // Coeff 2

 

.GLOBAL _main;

 

 

/* Interrupt vectors */

 

.section/PM seg_rth;

 

Reserved_1:

nop; nop; nop; nop;

Chip_reset:

nop; jump _main; nop; nop;

 

 

/* Program code */

 

.section/PM seg_pmco;

.PRECISION=32;

.GLOBAL sqrt;

 

_main:

 

sqrt:

 

f1=C;

f8=Z;

f0=Y;

 

f4=RSQRTS f0;

f12=f4*f4;

f12=f12*f0;

f4=f1*f4, f12=f8-f12;

f4=f4*f12;

 

f12=f4*f4;

f12=f12*f0;

f4=f1*f4, f12=f8-f12;

f4=f4*f12;

 

f0=f4*f0;

 

Что же делать?!!!!

помогите глупой

:help:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И как Вы это запускаете - под отладчиком или ?

Может, поставите команду jump(PC,0) в конце программы для останова?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запускаю под отладчиком. А потом мне надо программно наблюдать за выполнением в симуляторе. А вот команду jump(PC,0) могу попробовать только завтра на учебе :( Спасибо за помощь:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запускаю под отладчиком. А потом мне надо программно наблюдать за выполнением в симуляторе. А вот команду jump(PC,0) могу попробовать только завтра на учебе :( Спасибо за помощь:)

Эта команда остановит программу. Надеюсь, что такого "действа" будет достаточно.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Большое спасибо за помощь. Но тут появилась еще одна проблемка. Стек не переполняется, но программа работает без прерывания. Какой-то бесконечный цикл. Как посмотреть результат ее выполнения? :) Я вообще потерялась в ней. F1...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Большое спасибо за помощь. Но тут появилась еще одна проблемка. Стек не переполняется, но программа работает без прерывания. Какой-то бесконечный цикл. Как посмотреть результат ее выполнения? :) Я вообще потерялась в ней. F1...

Если Вы запускаете под отладчиком - то просто пройдите по шагам ( кстати, какой отладчик? ),

если работаете в симуляторе - тоже можно пройтись по шагам и посмотреть содержимое регистра f0.

А что значит - работает без прерывания?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...