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

 
 
> как связать прерывание написанное на .asm с основным кодом на с
aduduka
сообщение Aug 3 2010, 08:30
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 3-07-09
Пользователь №: 50 882



Цитата(Stanislav @ Jan 23 2008, 02:57) *
Код
/********************************************************************************
***********
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: ?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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