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

как связать прерывание написанное на .asm с основным кодом на с

/********************************************************************************
***********
Description : This function performs FIR filter operation on given input.
Input:   R0-current address of input circular buffer, R1-address of coeff. vector,
         R2-number of taps*2.
Output:  R0-next address of input circular buffer.
Prototype: fract16* FIR_fract(fract16*, fract16*, u32).
*/
#include "Tru_def.h"
#include <defBF534.h>

.extern _Host_MC_Out; //output array

.section program;
.global _FIR_fract;
.align  8;

//-----------------------------------------------------------------------------------
_FIR_fract:
  L0=INPUT_LEN*2(Z);      // L0 = length of input buffer in bytes
  L1=R2;                  // L1 = length of coeff buffer in bytes
  I0=R0;                  // set up input pointer
................................
БЛА-БЛА-БЛА
................................
  L0=0;                    // Clear modulo registers
  L1=0;
  RTS;    
_FIR_fract.end:

Вызывается как обычная сишная функция с тремя входными параметрами и одним выходным, передавая их наиболее простым и быстрым способом - через регистры, не используя стек.

Обработчики прерываний писать на асме ещё проще.

 

 

Здравствуйте. Подскажите пожалуйста, как связать прерывание написанное на .asm с основным кодом на с. Не пойму, какие параметры у функции должны быть? Прототип FIR_fract(fract16*, fract16*, u32), а как и куда они передаются в _FIR_fract: ?

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


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

Сообщение модератора.

 

Сообщение aduduka выделено в отдельную тему и перенесено в другой раздел форума, т.к. не соответствует ни теме, ни разделу исходного топика, в котором оно было размещено первоначально.

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


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

Сообщение модератора.

 

Сообщение aduduka выделено в отдельную тему и перенесено в другой раздел форума, т.к. не соответствует ни теме, ни разделу исходного топика, в котором оно было размещено первоначально.

 

Спасибо, просто пример, который приведен в цитате был взят из той темы.

 

 

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


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

Не пойму, какие параметры у функции должны быть?

Читайте соглашение компилятора о передаче параметров. Соответствующий раздел имеет место быть в документации на любой компилятор.

Спасибо, просто пример, который приведен в цитате был взят из той темы.

Admin:

Это не причина мусорить где попало и в последствии флеймить по поводу того, что кто-то взял на себя труд за Вами убирать.

 

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


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

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

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

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

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

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

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

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

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

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