INITIATION AUX DSP
DESS Microlectronique Universit Paul Sabatier Toulouse
Nicolas Nolhier 02/2001
NN2K1
PLAN du COURS
Introduction
Spcicits d'un DSP Formats des donnes
Le DSP ADSP 21065L
Caractristiques Architecture Units de Calcul Squenceur Gnrateurs d'adresse Les interruptions Le cache Organisation de la mmoire Le DMA Le SPORT Timer et I/O
La Conversion Analogique Digitale
Structures de CODEC Communications avec le DSP
Environnement de dveloppement
NN2K1
Rfrences
Informations sur les DSP Analog Devices
http://www.analog.com/DSP/
Informations sur les DSP Motorola
http://www.motorola.com/SPS/DSP/
Cours de formation sur les DSP et le traitement numrique du signal
http://www.techonline.com/
Introduction aux DSP
http://perso.wanadoo.fr/lapiste/dsp.htm
NN2K1
Le DSP
DSP : Digital Signal Processor Cur d'une chane de traitement numrique du signal
Systme numrique / systme analogique :
Filtres numriques spciques Stabilit / Reproductibilit
DSP / Circuit Intgr ddi ASIC :
Reprogrammation Algorithmes adaptatifs
NN2K1
Spcicits des DSP / Microprocesseur
Architecture Cas d'un microprocesseur
Architecture Von Neuman
Mmoire globale
Cas d'un DSP
Architecture Harvard
Mmoire spare
NN2K1
Spcicits des DSP / Microprocesseur
Instructions adaptes et optimises:
Ex le MAC : 1 cycle d'horloge A = B*C + D
Modes d'adressage volus
adressage circulaire post-incrmental
RAM interne Gestion directe de la mmoire DMA Pipe-Line : gestion // des oprations "Multi-processing" Entres / sorties numriques
NN2K1
Virgule xe ou ottante ?
DSP virgule xe
ex : sur 32 bits entier N = ! b3 1.2 + " bi 2i
i =0 31 30
!2 "147" 483" 648 # N # 2 "147 "483 "647 fractionnaire N = (!1)
b3 1
+ " bi 2i !3 1
i= 0
30
!1 " N " 0.999999977 Plus complexe programmer - normalisation Dynamique rduite Cot plus faible
NN2K1
DSP virgule ottante
ex : sur 32 bits
(IEEE 754.1985)
N = (!1) S .(1, f ).2 e!127 exemples :
e = ! ei 2i
i =0
f = ! fi 2i " 2 3
i=0
22
0 00000111 11000000000000000000000 + 7 0.75
+1.75 ! 2 7"127 = +1.316554 ! 10 "3 6
1 10000001 01100000000000000000000 129 0.375
!1.375 " 2 1 2 9!127 = !5.500000
Souplesse Grande dynamique Structure complexe - Prix lev
NN2K1
Le DSP ADSP-21065L
DSP 32 bits de chez Virgule ottante / xe 180 MFLOPS Horloge interne 60 MHz - Un cycle par instruction ! 544 kbits de SRAM intgre 2 ports srie haut dbit ( 30MBits/s)
32 canaux TDM
2 Timers (capture / PWM) 12 lignes In/Out digitales 10 canaux DMA 3.3 V $10 - pour 100.000 pices !
NN2K1
Exemple d'application
Processeur audio numrique AV32R Dcodage numrique pour Home Cinma
Formats supports : Dolby Digital DTS MPEG2 Dolby Pro Logic TAG McLaren Surround Processing Format THX Cinema
NN2K1
10
Brochage
Botier 208 broches
NN2K1
11
Schma Bloc gnral
NN2K1
12
Les units de calcul
3 units :
ALU Multiplieur Un registre dcalage
Chaque unit : une opration par cycle
NN2K1
13
Le bloc des registres
Register File : interface entre les bus de donnes et les units de calcul Transfert de donnes et rsultat de calcul 16 registres indpendants de 40 bits
si on travaille sur 32 bits b0 - b7 ignors
en assembleur :
Fx : registre x pour une opration en ottant Rx : registre x pour une opration en xe ex :
F0 = F1 * F2 ; R0 = R1 * R2 ; F15 = 12.254 ; R15 = 13 ;
NN2K1
14
Unit arithmtique et Logique ALU
Oprations sur des nombres virgule xe et ottante. Addition/ soustraction/ moyenne Oprateurs logiques (xes) Conversions Fonctions diverses
exemple d'instructions portant sur des ottants : Fn = Fx + Fy ; Fn = Fx - FY ; Fn = ABS Fx ; COMP(Fx,Fy) ; Fn = (Fx + Fy)/2 ; Fn = MAX (Fx,Fy) ; Fn = MIN (Fx, Fy) ; Fn = FLOAT Rx ; Rn = FIX Fx ;
Chaque instruction modie des drapeaux dans les registres d'tat
15
NN2K1
Drapeaux de l'ALU
Mis 1 ou 0 aprs une opration Permettent les tests et branchements registre ASTAT
registre STKY (ces bits restent 1 !)
Rem :
- COMP (x,y); gnre un 1 si x > y - BIT CLR STKY AUS; retombe 0.
NN2K1
16
Le multiplieur
En virgule xe :
capable d'effectuer des MAC utilise un registre d'accumulation sur 80 bits MR
En virgule ottante :
seulement la multiplication Fn = Fx * Fy ;
Drapeaux grs par le multiplieur
registre ASTAT
registre STKY
NN2K1
17
Unit de dcalage Shifter
Travaille sur 32 bits sur des nombres virgule xe
porte sur Rn
Dcalages et rotations Mise 1 ou 0 de bits, tests...
exemple d'instructions
Rn = LSHIFT Rx BY Ry; /* sign >0 Left */ Rn = ROT Rx BY Ry ; Rn = BCLR Rx BY Ry ; Rn = BSET Rx BY Ry ; BTST Rx BY Ry ; /* set SZ si bit=0 */
Drapeaux affects :
dans le registre ASTAT
NN2K1
18
Squenceur de programme
Le squenceur contrle le droulement du programme
linaire structures de boucles sous-programmes sauts routines d'interruption
Architecture :
NN2K1
19
Cycle d'instruction
3 cycles d'horloge pour grer une instruction
lecture (mmoire ou cache) dcodage excution
Chaque tche est spare
Structure "pseudo-parallle" ou PipeLine
Temps (cycles) 1 2 3 4 . Lecture Instruction 1 Instruction 2 Instruction 3 Instruction 4 . Instruction 1 Instruction 2 Instruction 3 . Instruction 1 Instruction 2 . Dcodage Excution
Rupture du pipeline : conit mmoire, sauts, boucles ....
NN2K1
20
Sauts
Branchement :
JUMP addr24 PC<- addr24
r0 = rcv_tcb + 7; r0 = r1 AND r0; r0 = BSET r0 BY 17; JUMP suite; i4 = Init_Codec; r15 = ENABLE;
suite: DM(I0,1) = f0; f8 = f1 * f4 ; f1 = f1 * f0; f8 = f8 + f1;
Saut un sous-programme :
CALL addr24 PC+1 -> PC Pile PC <- addr24
r0 = rcv_tcb + 7; r0 = r1 AND r0; r0 = BSET r0 BY 17; CALL suite; i4 = Init_Codec; r15 = ENABLE;
suite: DM(I0,1) = f0; f8 = f1 * f4 ; RTS; f1 = f1 * f0; f8 = f8 + f1;
Retour :
RTS
PC <- PC Pile
NN2K1
21
Branchements et sauts conditionnels
JUMP et CALL peuvent tre conditionnels :
IF condition JUMP addr24 ; IF condition CALL addr24 ;
Liste des conditions
Mnmonique Description EQ LT LE AC AV MV MS SV SZ TF LCE NOT ICE NE GE GT NOT AC NOT AV NOT MV NOT MS NOT SV NOT SZ NOT TF FOREVER TRUE ALU :rsultat = 0 ALU :rsultat < 0 ALU :rsultat ! 0 ALU :retenue ALU :dpassement Multiplieur :dpassement Multiplieur :rsultat < 0 Shifter :dpassement Shifter :rsultat = 0 Test de Bit Vrai Boucle termine (Do Until) Boucle non termine (If..) ALU :rsultat "0 ALU :rsultat # 0 ALU :rsultat > 0 ALU :pas de retenue ALU :pas de dpassement Multiplieur :pas de dpassement Multiplieur :rsultat # 0 Shifter :pas de dpassement Shifter :rsultat non nul Test de Bit Faux Toujours Faux (Do Until) Trajours Vrai (If) Vrai si AZ=1 AN=1 and AZ=0 AZ=1 or AN=1 AC=1 AV=1 MV=1 MN=1 SV=1 SZ=1 BTF=1 CURLCNTR=1 CURLCNTR"1 AZ=0 AN=0 AZ=0 and AN=0 AC=0 AV=0 MV=0 MN=0 SV=0 SZ=0 BTF=0
Tout ne s'applique pas au IF !!
NN2K1
22
Structures de boucle
Le contrle de la boucle se fait en interne. Boucle avec condition de n :
DO addr24 UNTIL condition;
DO suite UNTIL EQ; f6 = max (f2,f7); suite: r3 = r3 - 1; r3 = 0x120;
Boucle avec compteur :
LCNTR= data16 , DO addr24 UNTIL LCE;
LCNTR=12, DO test UNTIL LCE; f2 = DM(I0,M1); f6 = max (f2,f7); test: DM(I2,M1) = f6; f6 = -5.0;
NN2K1
Les boucles peuvent tre imbriques (6 MAX) Pas de branchement sur les 3 dernires instructions de la boucle
23
Registres spciaux du squenceur
La pile du PC (PC Stack ou PCSTKP)
adresse de retour sous-programmes routines d'interruption adresse de dbut du boucle taille 30*24 bits registre STKY : bit 21 PCFL PC stack full bit 22 PCEM PC stack empty la pile pleine (29) gnre une interruption
Gestion des boucles
Pile d'adresse de n de boucle LADDR taille 6*32 bits (adresse + code de n) registre STKY : bit 25 LSOV pile pleine bit 26 LSEM pile vide la pile pleine (6) gnre une interruption Pile de compteur de boucle associ LADDR taille 6*32 ( nb boucle max 232 ) chaque case (imbrication de boucles) contient un compteur LCNTR qui est dcrment chaque boucle.
NN2K1
24
Gnration d'adresse
Accs direct
ex :
F1 = DM (0x0000C000) ; R3 = PM (0x009400) ; DM(0x0000C002) = R4;
Accs indirect la mmoire (pointeur)
DAG 1 : 32 bits pour le bus DM DAG2 : 24 bits pour le bus PM Dtail des registres I : registre d'Index M : registre d'incrment B : registre d'adresse de Base L : registre de Longueur
NN2K1
Buffer circulaire
25
Calcul d'adresse
Calcul d'adresse
L0 = 0; I0 =0x0000C010; M0 = 1; M1 = 2; R2 = DM(M0,I0); R3 = DM(M1,I0);
L2 = 0; I2 =0x0000C010; M2 = 2; M3 = 0xFFFFFFFD R2 = DM(I2,M2); R3 = DM(I2,M2); R4 = DM(I2,M3); R5 = DM (I2,0);
M peut tre une valeur immdiate L doit avoir une valeur nulle
NN2K1
26
Buffer circulaire
Table de valeurs avec historique ni Utilise que le mode post-modi :
B0 et L0 doivent tre auparavant initialiss
ex :
B0 = 0; L0 = 11; ........ f1 = DM (I0,M0);
Pour I7 et I15 : interruption quand modulo
NN2K1
27
Les interruptions
Interruption ??
Droutement du DSP vers une routine d'interruption Vecteur = adresse routine (unique pour chaque type) 3 interruptions externes : broches IRQ0-2 (tat ou front) internes : rsultat mathmatique, piles buffer circulaire, Timers
Prise en compte de la demande d'interruption
pas de masquage pas de demande de + haut niveau interruption actives
Squencement
droutement vers la routine d'interruption
sauvegarde du PC -> pile (ASTAT et MODE1 pour IRQ ou Timer) Mise 1 dans le regitre IRPTL Mise jour du masque (1) branchement la 1er instruction du vecteur
n de la routine -> RTI;
Restitution du PC depuis la pile (ASTAT et MODE1 pour IRQ ou Timer) Mise 0 dans le regitre IRPTL Mise jour du masque (0) branchement l'adresse de retour
NN2K1
28
Vecteurs d'interruption
Adresse de base : 0x00008000
NN2K1
29
Registres de contrle des interruptions
IRPTL (32 bits)
indique par un ag les interruptions en cours ou en attente on peut y crire : interruption logicielle ex : BIT SET IRPTL SFT1I;
IMASK (32 bits)
permet de masquer ou non une interruption ex :
BIT CLR IMASK IRQ2I;
NN2K1
30
Interruptions (n)
Activation globale
bit 12 (IRPTEN) de MODE1 1 : active 0 : dsactive
Priorit
cas de 2 interruption simultanes 0 la plus haute, 31 la plus basse
Interruption multiples
mode actif : NESTM=1 dans MODE1 droutement vers interruption de plus haut niveau
Exceptions mathmatiques
la routine doit grer le registre STKY (mise 0)
Instructions IDLE et IDLE16
mis attente du DSP rveil par IRQ, Timer ou transfert DMA (cas de IDLE) IDLE16 ne permet pas la gestion du DMA ou SPORT mais Fclock / 16 !! Gestion de l'nergie
NN2K1
31
Le cache d'instruction
un cache ? gestion des conits d'acces mmoire
cache de 32 instructions (transparent) utilis que pour rgler les conits microP
Exemple : l'instruction n accde la mmoire programme
R8 = PM (0x00009000);
Excution
Instruction n
Dcodage
Instruction n+1
Lecture
Instruction n+2
DM(0x00009000) ou instruction 2 ??
NN2K1
32
Structure du cache
16 entres ( ou set ) chaque entre possde 2 couples instruction/adresse Bit de validit numro du set : 4 bits LSB de l'adresse LRU : instruction du set la moins recement utilise Gestion :
'cache hit' : instruction est dans le cache, le DSP rcupre la donne via PM Data Bus 'cache miss' : instruction n'est pas dans le cache, le DSP prend un cycle de plus pour charger l'instruction dans le cache
NN2K1
33
Utilisation du cache
exemple :
0x00009808:R1=PM(0x00009801); 0x00009809:R2=ROT R1 By 8; 0x0000980A:R3=R1 + R3; 0x0000980A: .........
instruction prsente dans le cache :
instruction absente du cache :
NN2K1
Rem : Dsactivation du cache : CADIS dans MODE2
34
Le DMA
Direct Memory Access (module IO)
Transfert blocs de donnes Soulage le cur du DSP
Transferts : mmoire interne <--> mmoire externe mmoire interne <--> Ports sries SPORT mmoire interne <--> Module I/O d'un DSP Dclenchement externe : DMAR2-1 et DMAG2-1
NN2K1
35
Liste des canaux DMA
10 canaux DMA : 10 Buffers FIFO (internes I/O)
Ports externes (2 canaux) :
transfert sur 48 bits max registres de contrle ddis DMAC0-1 bi-directionnels (conguartion)
SPORTS (8 canaux):
transfert sur 32 bits entre buffer et mmoire direction ge : rception SPORT -> mmoire mission mmoire -> SPORT compression possible sur 16bits E/R en // contrle dans SRCTL0-1
NN2K1
36
DMA : registres de paramtres
Conguration des transferts "Mapps" en mmoire (accs simulaire la mmoire)
NN2K1
37
DMA : registres de paramtres
IIx : registre d'index sur 17 bits
offset de 0x000 8000 implicite accs mmoire 0x0000 8000 0x0002 8000
IMx : registre de modication sur 16 bits
nombre sign aprs chaque transfert IIx=IIx + IMx
Cx : compteur de transfert sur 16 bits
dcrment chaquetransfert de donnes passage 0 : n de transfert du bloc. (Interruption) si Cx initialis 0 : 216 donnes transfrer !
Cx et GPx : utiliss pour le chanage Cas du port externe :
EIx, EMx, ECx : gnre les adresses de la mmoire externe
Exemple :
r0 = 0x00001000; DM(IIR0A)= r0; r0 = 0x0001; DM(IMR0A)=r0; r0 = 0x00FF; DM(CR0A)=r0; r0 = DM(SRCTL0); r0 = BSET r0 by 18; DM(SRCTL0) = r0;
pour relancer : DEN=0 / initialiser les registres / DEN=1
NN2K1
38
Contrle DMA (suite)
Priorit des canaux
cas ou plusieurs transferts sur plusieurs canaux :
Arrt du transfert :
le registre arrive 0 on force DEN=0 (sans chanage) le transfert reprend si DEN passe 1
NN2K1
39
DMA "chaining"
Enchanement automatique de transfert de donnes CPx pointe sur un nouveau bloc de paramtre
TCB : Transfert Control Bloc ( en mmoire)
Structure du CPx :
PCI : interuption la n du transfert du bloc courant
Structure du TCB :
Initialisation du transfert :
Ecriture des TCB's en mmoire Mise 1 de DEN et CHEN Ecriture dans CPx de l'@ du 1er TCB
NN2K1
40
DMA : interruptions
Cx passe 0 : droute le DSP en interruption Chaque canal a sa propre routine Utilisation de IRPTL et IMASK
PCI dans le cas d'un enchanement
Priorit des interruptions :
NN2K1
41
DMASTAT
Registre de status sur 32 bits (20 bits signicatifs) Etat du canal bit 0-9 : 1 actif / 0 inactif Etat de l'enchanement bit 10-19 : 1 transfert de TCB
0 inactif
NN2K1
Alternative aux interruption (Polling)
42
La mmoire (interne)
Mmoire interne SRAM double port
Organisation de la mmoire
NN2K1
43
La mmoire interne (suite)
cas de la platine de dveloppement EZ-LAB
NN2K1
44
Ports sries : SPORTx
2 ports sries synchrones indpendants
SPORT0 et SPORT1
2 canaux par port (canal A et canal B) Emission / Rception simultanes (Full Duplex) Dbit max : 30 Mbit/s Modes :
Standard : mission mono-donnes I2S :Inter IC System : mission voies droit et gauche avec TDM
Multicanaux : 1 seul canal utilis en TDM
Donnes de longueur variable : 3 32 bits Contrle DMA
NN2K1
45
SPORTx : Structure
Communication synchrone sur CLK (interne ou externe) FS "frame synchro" :signaux de synchronisation de trame (dbut d'1 ou plusieurs donnes) Connections externes :
- gure 9.1
NN2K1
46
SPORTx : registres
28 registres de 32 bits "mapps" en mmoire :
Cas du mode standard :
TX et RX : criture / lecture de 32 bits ou moins (justication droite) TX : on y crit une donne srialiser. Si rien dans ce buffer, interruption "TX Buff not full" (pas DMA) RX : on y lit une donne dsrialise. Quand une donne est disponible, interruption "RX Buff not empty" (pas DMA)
NN2K1
47
Registres de contrle
STCTLx en mode standard :
DTYPE : - formates droite (extension signe?) - A-Law et m -law compression GSM PACK : reoit 2 valeurs sur 16bits -> une donne sur 32 bits
NN2K1
48
Synchronisation de trame
TFSR : active ou non synchro de trame(FS)
ITFS : signal FS externe ou interne DITFS : signal indpendant ou non de l'tat du buffer TX LTFS : signal FS actif haut ou bas LAFS : signal FS en retard ou en avance
NN2K1
49
Frquence de dbit et synchronisation
2 registres xes la frquence du dbit sriel et du signal de synchro :
TDIV pour transmission RDIV pour rception
Ex: TDIV
TCLKDIV =
2 * fCLKIN !1 frquence du dbit srie frquence du dbit srie !1 frquence de la synchro.
50
TFSDIV =
NN2K1
Timers
2 Timers internes indpendants 2 modes de fonctionnement :
Gnration de signaux PWM (Pulse Width Modulation) Capture d'un signal logique (priode et rapport cyclique)
1 broche par Timer (PWM_EVENTx) In/Out 3 registres de 32 bits par Timer ("Mapps" en mmoire) :
TPERIODx TPWIDTHx TCOUNTx
Timers utilisent l'horloge interne (2*CLKIN)
Tmax = (232-1) * 16.67 ns = 71.5 s
Activation du Timer_x :
TIMENx=1 dans le registre MODE2
NN2K1
51
Gnration de signaux PWM
PWMOUT Mode
slectionn dans MODE 2 PWM_EVENTx est alors une sortie
Comment a fonctionne ?
l'activation du Timer TCOUNTx=1 PWM_EVENTx = 1 quand TCOUNTx=TPWIDTHx PWM_EVENTx = 0 quand TCOUNTx=TPERIODx
gnre une interruption quand TCOUNTx=TPERIODx
Mis 1 du bit CNT_EXPx dans STKY
NN2K1
52
Mode Capture
WIDTH_CNT Mode
slectionn dans MODE 2 PWM_EVENTx est alors une entre
Fonctionnement :
Interruption gnre :
au choix sur criture de TPWIDTHx ou TPERIODx quand il y a dpassement de TCOUNTx
(PULSE_CAP et CNT_OVF dans STKY)
NN2K1
53
Timer : Contrle et interruptions
Conguration dans MODE2 :
INT_HIx : conguration du niveau d'interruption:
NN2K1
54
Port d'entres/sorties numriques
12 lignes d'entres/sorties FLAG11-0 Cas de FLAG3-0 :
conguration dans MODE2 : 0 entre, 1 sortie tat de la ligne xe dans ASTAT
BIT SET MODE2 FLG1O; BIT SET ASTAT FLG1;
Cas de FLAG11-4 :
On utilise 2 registes "mapps" en mmoire : IOCTL: conguration IOSTAT : tat
On en peut pas utiliser l'instruction BIT ..... Passage par registres Rx
NN2K1
55
La conversion analogique-digitale
Utilise le Codec AD1819A
Conversion sur 16 bits stro Plusieurs entres et sorties analogiques (multiplexage) Frquence d'chantillonnage de 7kHz 48kHz Bande passante en sortie de 20Hz 20KHz Amplis et attnuateurs internes programmables
NN2K1
56
Connections avec le DSP
Communication srie haut dbit utilisant le SPORT1
Initialisation du DMA et SPORT Initialisation du Codec Gestion des chantillons : routine d'interruption
Format des changes de donnes
AC-Link norme audio
NN2K1
57
Kit de dveloppement EZLAB
Carte EZ-LAB
DSP ADSP-21065L Codec AD1819A Interface RS-232 (vers PC) EPROM 1M * 8 bits SDRAM 1M * 32 bits
NN2K1
58
Environnement de dveloppement
NN2K1
59
Gestion du projet
Edition des programmes sources en assembleur Compilation Edition de liens
NN2K1
60
Debugger
Permet la mise au point du programme Simulation ou contrle de la platine EZ-Lab
NN2K1
61
Exemple de source assembleur
/* commentaire */ #include "def21065l.h" #define N 10 .SEGMENT/DM zonetab; /* table de donnees a traiter */ .VAR table[N] = 3,7,2,14,1,16,18,12,28,22; .ENDSEG; .SEGMENT/PM mon_code; debut: M1=0x01; /* increment */ Do fin until sz ; r0 = bclr r0 by 0x01; /* r0 flag = 0*/ I1 = table; /* initialise a case 1 */ LCNTR=N-1, Do suite until LCE; r1=DM(I1,M1); r2=DM(0x00,I1); COMP(R2,R1); /* compare la case I et I+1 */ If GE jump suite; /* si <= on saute le swap */ DM(0xFFFFFFFF,I1)=r2; DM(0x00,I1)=r1; /* on permutte */ r0 = bset r0 by 0x01; /* flag = 1 */ suite: nop; fin: Btst r0 by 0x01; /* test de flag */ nop; /* c'est simple non ??? */ .ENDSEG;
NN2K1
62
Exemple de chier de liens
ARCHITECTURE(ADSP-21065L) SEARCH_DIR( $ADI_DSP\21k\lib ) $LIBS = lib060.dlb; // Libraries from the command line are included in COMMAND_LINE_OBJECTS. $OBJECTS = $COMMAND_LINE_OBJECTS; MEMORY { mon_code { TYPE(PM RAM) START(0x00008100) END(0x000081ff) WIDTH(48) } zonetab { TYPE(DM RAM) START(0x0000C000) END(0x0000Dfff) WIDTH(32) } isr_tabl { TYPE(PM RAM) START(0x00008005) END(0x0000807f) WIDTH(48) } } PROCESSOR p0 { LINK_AGAINST( $COMMAND_LINE_LINK_AGAINST ) OUTPUT ( $COMMAND_LINE_OUTPUT_FILE ) SECTIONS { .mon_code { INPUT_SECTIONS( $OBJECTS(mon_code) $LIBS(mon_code) )} >mon_code .ma_tab { INPUT_SECTIONS( $OBJECTS(zonetab) $LIBS(zonetab) )} >zonetab .isr_tabl{ INPUT_SECTIONS( $OBJECTS(isr_tbl) $LIBS(isr_tbl) )} >isr_tabl } }
NN2K1
63