hi ! i use the SPRA488c-samplecode for McBSP-transmit/receive with EDMA and i tried to modify the code to link the EDMA to one another and then to a NULL-link. these are the settings for the first edma: hEdma1 = EDMA_open(EDMA_CHA_REVT0, EDMA_OPEN_RESET); EDMA_configArgs (hEdma1, EDMA_OPT_RMK( EDMA_OPT_PRI_HIGH, EDMA_OPT_ESIZE_32BIT, EDMA_OPT_2DS_NO, EDMA_OPT_SUM_NONE, EDMA_OPT_2DD_NO, EDMA_OPT_DUM_INC, EDMA_OPT_TCINT_YES, EDMA_OPT_TCC_OF(13), EDMA_OPT_LINK_YES, EDMA_OPT_FS_NO ), EDMA_SRC_RMK(MCBSP_ADDRH(hMcbsp0, DRR)), EDMA_CNT_RMK(0,xfer_size), EDMA_DST_RMK((Uint32)edmaInbuff), EDMA_IDX_RMK(0,0), EDMA_RLD_RMK(xfer_size,hEdma12) ); and for the first link-edma: hEdma12 = EDMA_allocTable(-1); EDMA_configArgs (hEdma12, EDMA_OPT_RMK( EDMA_OPT_PRI_HIGH, EDMA_OPT_ESIZE_32BIT, EDMA_OPT_2DS_NO, EDMA_OPT_SUM_NONE, EDMA_OPT_2DD_NO, EDMA_OPT_DUM_INC, EDMA_OPT_TCINT_YES, EDMA_OPT_TCC_OF(13), EDMA_OPT_LINK_YES, EDMA_OPT_FS_NO ), EDMA_SRC_RMK(MCBSP_ADDRH(hMcbsp0, DRR)), EDMA_CNT_RMK(0,xfer_size), EDMA_DST_RMK((Uint32)edmaInbuff), EDMA_IDX_RMK(0,0), EDMA_RLD_RMK(xfer_size,hEdmadummy) ); but there will not be any second edma-transfer, just the first one. do i have to re-init something ? i thought just linking were enough...? SPRA636A is not helpfull, because my cpu craches during runtime and the programer has used another syntax and "construction" sincerely, olaf |
|
problems with linking EDMA
Started by ●October 20, 2003
Reply by ●October 23, 20032003-10-23
Olaf, I think that you used hEdma12 before it has beed assigned a value, or so it seem from the excerpt of your code. This might correct the link problem: // allocate an EDMA channel and a reload table hEdma1 = EDMA_open(EDMA_CHA_REVT0, EDMA_OPEN_RESET); hEdma12 = EDMA_allocTable(-1); // init both tables EDMA_configArgs (hEdma1, ... EDMA_configArgs (hEdma12, ... The other option is to init the tables with a zero second parameter to the EDMA_RLD_RMK() macro and call EDMA_link (hEdma1, hEdma12) which would link two transfers. The other potential problem is the reload link in the second parameter table: OPT_LINK=1 but I am not sure if the handle hEdmadummy points to a valid address within EDMA's PRAM, e.g. to the transfer termination table with all zero paramemters. Hope this helps, Andrew > Date: Mon, 20 Oct 2003 14:33:19 -0000 > From: "olaf636" <> > Subject: problems with linking EDMA > > hi ! i use the SPRA488c-samplecode for McBSP-transmit/receive with > EDMA and i tried to modify the code to link the EDMA to one another > and then to a NULL-link. these are the settings for the first edma: > hEdma1 = EDMA_open(EDMA_CHA_REVT0, EDMA_OPEN_RESET); > EDMA_configArgs (hEdma1, > EDMA_OPT_RMK( > EDMA_OPT_PRI_HIGH, > EDMA_OPT_ESIZE_32BIT, > EDMA_OPT_2DS_NO, > EDMA_OPT_SUM_NONE, > EDMA_OPT_2DD_NO, > EDMA_OPT_DUM_INC, > EDMA_OPT_TCINT_YES, > EDMA_OPT_TCC_OF(13), > EDMA_OPT_LINK_YES, > EDMA_OPT_FS_NO ), > > EDMA_SRC_RMK(MCBSP_ADDRH(hMcbsp0, DRR)), > EDMA_CNT_RMK(0,xfer_size), > EDMA_DST_RMK((Uint32)edmaInbuff), > EDMA_IDX_RMK(0,0), > EDMA_RLD_RMK(xfer_size,hEdma12) ); > > and for the first link-edma: > > hEdma12 = EDMA_allocTable(-1); > EDMA_configArgs (hEdma12, > EDMA_OPT_RMK( > EDMA_OPT_PRI_HIGH, > EDMA_OPT_ESIZE_32BIT, > EDMA_OPT_2DS_NO, > EDMA_OPT_SUM_NONE, > EDMA_OPT_2DD_NO, > EDMA_OPT_DUM_INC, > EDMA_OPT_TCINT_YES, > EDMA_OPT_TCC_OF(13), > EDMA_OPT_LINK_YES, > EDMA_OPT_FS_NO ), > > EDMA_SRC_RMK(MCBSP_ADDRH(hMcbsp0, DRR)), > EDMA_CNT_RMK(0,xfer_size), > EDMA_DST_RMK((Uint32)edmaInbuff), > EDMA_IDX_RMK(0,0), > EDMA_RLD_RMK(xfer_size,hEdmadummy) ); > > but there will not be any second edma-transfer, just the first one. do > i have to re-init something ? i thought just linking were enough...? > SPRA636A is not helpfull, because my cpu craches during runtime and > the programer has used another syntax and "construction" > > sincerely, > > olaf > |