| | |
| | | firHead.status = acc_completely; |
| | | firHead.count++; |
| | | } |
| | | |
| | | if(firHead.status == acc_completely) { |
| | | for(struct FIR_tcb* fir = firHead.first; fir != NULL ; fir = fir->next) { |
| | | if(fir->callback) fir->callback(fir->content); |
| | | } |
| | | firHead.status = acc_idle; |
| | | } |
| | | } |
| | | |
| | | uvoid fir_acc_init() |
| | | { |
| | | firHead.count =0; |
| | | firHead.num =0 ; |
| | | firHead.status = acc_completely ; |
| | | firHead.status = acc_idle ; |
| | | firHead.first = NULL; |
| | | firHead.last = NULL; |
| | | |
| | |
| | | { |
| | | s32 restarting = 0; |
| | | |
| | | if(firHead.status == acc_completely && firHead.num > 0) { |
| | | if(firHead.status == acc_idle && firHead.num > 0) { |
| | | for(struct FIR_tcb* fir = firHead.first; fir != NULL ; fir = fir->next) { |
| | | if(fir->callback) fir->callback(fir->content); |
| | | |
| | | if(fir->cp_update) { |
| | | memcpy((uvoid*)fir->cf_buff, fir->cf_temp , fir->tap*sizeof(ufloat)); |
| | | fir->cp_update = ufalse; |
| | |
| | | firHead.last->next = fir; |
| | | firHead.last = fir ; |
| | | } |
| | | //fir->tcb[0] = ((s32)(firHead.first->tcb+12)>>2)|MP_OFFSET; |
| | | |
| | | firHead.num ++; |
| | | |
| | | return fir; |