English
Language : 

AN2407 Datasheet, PDF (46/48 Pages) Freescale Semiconductor, Inc – Reed Solomon Encoder/Decoder on the StarCore SC140/SC1400 Cores, With Extended Examples
References
[ min d0,d4
move.l d6,r6
]
add d9,d11,d5
moveu.b (r4),d3
; pow_n0=min(pow_n0,2*N+1)
; pow_n1=x1_pow+y1_pow
; load bin_2_exp[pow_n0]
;5
[ eor d3,d12
moveu.b (r5),d3
]
min d1,d5
move.2w (r10)+,d10:d11
; nom^=nom,pow_n1=min
; (pow_n1,2*N+1)
; load bin_2_exp[pow_n1]
; load y0_pow=z_exp[j+4]
; y1_pow=z_exp[j+5]
loopend3
LABEL
[ eor d3,d12
moveu.b (r6),d3
]
tfra r8,r0
; nom^=nom
; load bin_2_exp[pow_d]
; r0->table[0][0]
[ eor d3,d13
addl1a r7,r0
]
tfra r9,r10
; den=den^
; r0->table[0][rp[i]]
; r10->z_exp[0]
[ move.2w d12:d13,(r3)+ moveu.w (r0)+n0,d8
]
; store t_nomden[2*i+0]=nom
; t_nomden[2*i+1]=den
; load table[0][rp[i]]
move.2w (r10)+,d10:d11 adda #-4,sp,r6
; load y0_pow=z_exp[0]
; y1_pow=z_exp[1]
loopend2
; Forney_c
move.l #255,d13
move.l #511,d0
move.l #_bin_2_exp,d12
move.l #_exp_2_bin_extended,d14
move.l (sp-r_off),r15
move.l (sp-err_locs_off),r1
move.l (sp-n_off),d10
zxt.b d10,d10
; r13->t_nomden[0]
; Overhead before loop
FORNEY_C
moveu.w (r13)+,d1
moveu.b (r1)+,r8
asll #1,d1
tfra r15,r14
moveu.w (r13)+,d2
asll #1,d2
; d1 -> nom[0]
; d2 -> denom[0]
[ add d12,d1,d1
adda r8,r14
]
add d12,d2,d2
move.l d1,r3
moveu.w (r13)+,d1
moveu.w (r13)+,d2
move.l d2,r4
moveu.b (r14),d15
; ptr to table
; d1 -> t_nomden[1]
; d15 -> received[err_loc[0]]
Reed Solomon Encoder/Decoder on the StarCore™ SC140/SC1400 Cores, With Extended Examples, Rev. 1
46
Freescale Semiconductor