HOla he intentado utilizar el codigo del filtro generado por dspifdLITE y recibo otro error del linker.
Actualmente tengo las ultimas versiones de mplab, c30 y dspicFDlite disponibles (8.83, 3.31 y 2.1 respectivamente).
EL error que aparece es el siguiente:
integral_alfa.o: Link Error: Could not allocate section .ybss, size = 4 bytes, attributes = bss ymemory
El codigo del archivo al cual hace referencia el error (que es generado por dspicfdlite). Lo muestro a continuacion:
; ..............................................................................
; File integral_alfa.s
; ..............................................................................
.equ integral_alfaNumSections, 1
; ..............................................................................
;
; Allocate and initialize filter coefficients
;
; These coefficients have been designed for use in the Transpose filter only
.section .xdata,data,xmemory
integral_alfaCoefs:
.hword 0x0019 ; b( 1,0)/2
.hword 0x0019 ; b( 1,1)/2
.hword 0x3FCC ; a( 1,1)/2
.hword 0x0000 ; b( 1,2)/2
.hword 0x0000 ; a( 1,2)/2
; ..............................................................................
; Allocate states buffers in (uninitialized) Y data space
.section .ybss, bss, ymemory
integral_alfaStates1:
.space integral_alfaNumSections*2
integral_alfaStates2:
.space integral_alfaNumSections*2
; ..............................................................................
; Allocate and intialize filter structure
.section .data
.global _integral_alfaFilter
_integral_alfaFilter:
.hword integral_alfaNumSections-1
.hword integral_alfaCoefs
.hword 0xFF00
.hword integral_alfaStates1
.hword integral_alfaStates2
.hword 0x0000
; ..............................................................................
; Sample assembly language calling program
; The following declarations can be cut and pasted as needed into a program
; .extern _IIRTransposedInit
; .extern _IIRTransposed
; .extern _integral_alfaFilter
;
; .section .bss
;
; The input and output buffers can be made any desired size
; the value 40 is just an example - however, one must ensure
; that the output buffer is at least as long as the number of samples
; to be filtered (parameter 1)
;input: .space 40
;output: .space 40
; .text
;
;
; This code can be copied and pasted as needed into a program
;
;
; Set up pointers to access input samples, filter taps, delay line and
; output samples.
; mov #_integral_alfaFilter, W0 ; Initalize W0 to filter structure
; call _IIRTransposedInit ; call this function once
;
; The next 4 instructions are required prior to each subroutine call
; to _IIRTransposed
; mov #_integral_alfaFilter, W3 ; Initalize W3 to filter structure
; mov #input, W2 ; Initalize W2 to input buffer
; mov #output, W1 ; Initalize W1 to output buffer
; mov #20, W0 ; Initialize W0 with number of required output samples
; call _IIRTransposed ; call as many times as needed
Alguien tiene idea de como cambiarlo para hacerlo funcionar?
gracias por su ayuda!