亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? csl_dat_.sa

?? tms320c6416與tlv320aic23b接口基本程序
?? SA
?? 第 1 頁 / 共 3 頁
字號:
               SHL   serialNumber,16,id
               OR    id,slotNumber,id

               ;Load up base address of DMA registers
               LDW   *stateAddr(State.baseAddr),qdmaBase

               ;Store source address
               STW   value,*qdmaBase[SRC]

               ;Store destination address
               STW   dst,*qdmaBase[DST]

               ;store index
;              MVKL  0x00000000,Y
;              MVKH  0x00000000,Y
               ZERO  Y
               STW   Y,*qdmaBase[IDX]

               ;Calculate argument alignment
               OR    dst,byteCnt,alignment
               OR    value,alignment,alignment
               AND   alignment,3,alignment

DAT_FILL_32:
               ;Check to see if 32-bit aligned, branch if not
               CMPEQ alignment,0,pred
       [!pred] B     DAT_FILL_16

               ;Store transfer count
               SHRU  byteCnt,2,X
               STW   X,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x00200000,Y
               MVKH  0x00200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_FILL_RETURN

DAT_FILL_16:
               ;Check to see if 16-bit aligned, branch if not
               CMPEQ alignment,2,pred
       [!pred] B     DAT_FILL_8

               ;Store transfer count
               SHRU  byteCnt,1,X
               STW   X,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x08200000,Y
               MVKH  0x08200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_FILL_RETURN

DAT_FILL_8:
               ;Must be 8-bit aligned since it wasn't 32 or 16 bit aligned

               ;Store transfer count
               STW   byteCnt,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x10200000,Y
               MVKH  0x10200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

DAT_FILL_RETURN:
               ;Restore GIE
               MVC   CSR,X
               OR    X,gieSave,X
               MVC   X,CSR

               .return id
               .endproc

*------------------------------------------------------------------------------*
* Uint32 DAT_copy(void *src , void *dst , Uint16 byteCnt);
*------------------------------------------------------------------------------*
_DAT_copy .cproc src, dst, byteCnt

               .reg gieSave
               .reg X,Y
               .reg const31
               .reg stateAddr
               .reg useMask
               .reg slotNumber
               .reg serialNumber
               .reg tableAddr
               .reg oldSerialNumber
               .reg pred
               .reg mask
               .reg cipr
               .reg id
               .reg alignment
               .reg qdmaBase
               .reg initOpt
               .reg ciprAddr

               ;Load useMask and Initial primary control register
               MVKL  __DAT_stateStruct,stateAddr
               MVKH  __DAT_stateStruct,stateAddr
               LDW   *stateAddr(State.useMask),useMask
               LDW   *stateAddr(State.initOpt),initOpt

               ;Constant needed later
               MVK   31,const31

               MVKL  0x01A0FFE4,ciprAddr
               MVKH  0x01A0FFE4,ciprAddr
;               MVK   1, pred
;DAT_COPY_LOOP1:
;               ;Wait for a free slot to open up
;       [pred]  LDW   *ciprAddr,cipr
;               AND   cipr,useMask,X
;               LMBD  1,X,X
;               SUB   const31,X,slotNumber
;               CMPEQ slotNumber,-1,pred
;       [pred]  B     DAT_COPY_LOOP1

               ZERO  pred
DAT_COPY_LOOP1:
               ;Wait for a free slot to open up
       [!pred] LDW   *ciprAddr,cipr
               AND   cipr,useMask,pred
       [!pred] B     DAT_COPY_LOOP1

               LMBD  1,pred,X
               SUB   const31,X,slotNumber

               ;Save and clear GIE
               MVC   CSR,X
               AND   X,1,gieSave
               AND   X,-2,X
               MVC   X,CSR

               ;Generate mask from slot number
               MVK   1,mask
               SHL   mask,slotNumber,mask

               ;Clear interrupt pending flag
               STW   mask,*ciprAddr

               ;Load up serial number table address
               MVKL  __DAT_serialTable,tableAddr
               MVKH  __DAT_serialTable,tableAddr
               LDHU  *tableAddr[slotNumber],oldSerialNumber

               ;Add one to serial numer and store it back into the table
               ADD   oldSerialNumber,1,serialNumber
               STH   serialNumber,*tableAddr[slotNumber]

               ;Construct transfer id from serial number and slot number
               SHL   serialNumber,16,id
               OR    id,slotNumber,id

               ;Load up base address of DMA registers
               LDW   *stateAddr(State.baseAddr),qdmaBase

               ;Store source address
               STW   src,*qdmaBase[SRC]

               ;Store destination address
               STW   dst,*qdmaBase[DST]

               ;store index
               MVKL  0x00000000,Y
               MVKH  0x00000000,Y
               STW   Y,*qdmaBase[IDX]

               ;Calculate argument alignment
               OR    dst,byteCnt,alignment
               OR    src,alignment,alignment
               AND   alignment,3,alignment

DAT_COPY_32:
               ;Check to see if 32-bit aligned, branch if not
               CMPEQ alignment,0,pred
       [!pred] B     DAT_COPY_16

               ;Store transfer count
               SHRU  byteCnt,2,X
               STW   X,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x01200000,Y
               MVKH  0x01200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_COPY_RETURN

DAT_COPY_16:
               ;Check to see if 16-bit aligned, branch if not
               CMPEQ alignment,2,pred
       [!pred] B     DAT_COPY_8

               ;Store transfer count
               SHRU  byteCnt,1,X
               STW   X,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x09200000,Y
               MVKH  0x09200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_COPY_RETURN

DAT_COPY_8:
               ;Must be 8-bit aligned since it wasn't 32 or 16 bit aligned

               ;Store transfer count
               STW   byteCnt,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x11200000,Y
               MVKH  0x11200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

DAT_COPY_RETURN:
               ;Restore GIE
               MVC   CSR,X
               OR    X,gieSave,X
               MVC   X,CSR

               .return id
               .endproc

*------------------------------------------------------------------------------*
* Uint32 DAT_copy2d(Uint32 type, void *src, void *dst, Uint16 lineLen, 
*   Uint16 lineCnt, Uint16 linePitch);
*------------------------------------------------------------------------------*
_DAT_copy2d .cproc type, src, dst, lineLen, lineCnt, linePitch

               .reg gieSave
               .reg X,Y
               .reg const31
               .reg stateAddr
               .reg useMask
               .reg slotNumber
               .reg serialNumber
               .reg tableAddr
               .reg oldSerialNumber
               .reg pred
               .reg mask
               .reg cipr
               .reg id
               .reg alignment
               .reg qdmaBase
               .reg initOpt
               .reg ciprAddr

               ;Load useMask and Initial primary control register
               MVKL  __DAT_stateStruct,stateAddr
               MVKH  __DAT_stateStruct,stateAddr
               LDW   *stateAddr(State.useMask),useMask
               LDW   *stateAddr(State.initOpt),initOpt

               ;Constant needed later
               MVK   31,const31

               ;address of the channel interrupt pending register
               MVKL  0x01A0FFE4,ciprAddr
               MVKH  0x01A0FFE4,ciprAddr

;               MVK   1,pred
;DAT_COPY2D_LOOP1:
;               ;Wait for a free slot to open up
;        [pred] LDW   *ciprAddr,cipr
;               AND   cipr,useMask,X
;               LMBD  1,X,X
;               SUB   const31,X,slotNumber
;               CMPEQ slotNumber,-1,pred
;        [pred] B     DAT_COPY2D_LOOP1

               ZERO  pred
DAT_COPY2D_LOOP1:
               ;Wait for a free slot to open up
       [!pred] LDW   *ciprAddr,cipr
               AND   cipr,useMask,pred
       [!pred] B     DAT_COPY2D_LOOP1

               LMBD  1,pred,X
               SUB   const31,X,slotNumber

               ;Save and clear GIE
               MVC   CSR,X
               AND   X,1,gieSave
               AND   X,-2,X
               MVC   X,CSR

               ;Generate mask from slot number
               MVK   1,mask
               SHL   mask,slotNumber,mask

               ;Clear interrupt pending flag
               STW   mask,*ciprAddr

               ;Load up serial number table address
               MVKL  __DAT_serialTable,tableAddr
               MVKH  __DAT_serialTable,tableAddr
               LDHU  *tableAddr[slotNumber],oldSerialNumber

               ;Add one to serial numer and store it back into the table
               ADD   oldSerialNumber,1,serialNumber
               STH   serialNumber,*tableAddr[slotNumber]

               ;Construct transfer id from serial number and slot number
               SHL   serialNumber,16,id
               OR    id,slotNumber,id

               ;Load up base address of DMA registers
               LDW   *stateAddr(State.baseAddr),qdmaBase

               ;Store source address
               STW   src,*qdmaBase[SRC]

               ;Store destination address
               STW   dst,*qdmaBase[DST]

               ;Calculate argument alignment
               OR    dst,lineLen,alignment
               OR    src,alignment,alignment
               OR    linePitch,alignment,alignment
               AND   alignment,3,alignment

DAT_COPY2D_32:
               ;Check to see if 32-bit aligned, branch if not
               CMPEQ alignment,0,pred
       [!pred] B     DAT_COPY2D_16

               ;Store transfer count
               SHRU  lineLen,2,X
               SUB   lineCnt,1,Y
               SHL   Y,16,Y
               OR    X,Y,X
               STW   X,*qdmaBase[CNT]

               ;Store index register 
               SUB   linePitch,lineLen,X
               SHL   X,16,X
               STW   X,*qdmaBase[IDX]

               ;Store option register into pseudo space to kick off transfer
;              MVKL  0x00000000,Y
;              MVKH  0x00000000,Y
               ZERO  Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    type,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_COPY2D_RETURN

DAT_COPY2D_16:
               ;Check to see if 16-bit aligned, branch if not
               CMPEQ alignment,2,pred
       [!pred] B     DAT_COPY2D_8

               ;Store transfer count
               SHRU  lineLen,1,X
               SUB   lineCnt,1,Y
               SHL   Y,16,Y
               OR    X,Y,X
               STW   X,*qdmaBase[CNT]

               ;Store index register 
               SUB   linePitch,lineLen,X
               SHL   X,16,X
               STW   X,*qdmaBase[IDX]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x08000000,Y
               MVKH  0x08000000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    type,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_COPY2D_RETURN

DAT_COPY2D_8:
               ;Must be 8-bit aligned since it wasn't 32 or 16 bit aligned

               ;Store transfer count
               SHRU  lineLen,0,X
               SUB   lineCnt,1,Y
               SHL   Y,16,Y
               OR    X,Y,X
               STW   X,*qdmaBase[CNT]

               ;Store index register 
               SUB   linePitch,lineLen,X
               SHL   X,16,X
               STW   X,*qdmaBase[IDX]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x10000000,Y
               MVKH  0x10000000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    type,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

DAT_COPY2D_RETURN:
               ;Restore GIE
               MVC   CSR,X
               OR    X,gieSave,X
               MVC   X,CSR

               .return id
               .endproc

*------------------------------------------------------------------------------*
 .endif ;EDMA_SUPPORT
 
 .endif ;DAT_SUPPORT

********************************************************************************
* End of csl_dat_.sa
********************************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲男人都懂的| 久久久精品免费观看| 一区2区3区在线看| 在线观看日韩高清av| 亚洲一区在线观看免费观看电影高清 | 亚洲男人的天堂在线aⅴ视频| av电影在线观看不卡| 亚洲人成精品久久久久久| 欧美吞精做爰啪啪高潮| 婷婷开心久久网| 日韩欧美电影在线| 国产v日产∨综合v精品视频| 中文字幕一区二| 欧美日韩国产色站一区二区三区| 麻豆视频一区二区| 国产三级一区二区| 色呦呦日韩精品| 日产欧产美韩系列久久99| 国产午夜精品福利| 色天使色偷偷av一区二区| 日本免费新一区视频| 欧美激情在线一区二区三区| 国产精品网站在线播放| 972aa.com艺术欧美| 亚洲高清免费观看| 久久综合色8888| 97se亚洲国产综合自在线不卡| 亚洲韩国一区二区三区| 精品999久久久| 色综合欧美在线视频区| 奇米综合一区二区三区精品视频| 国产亚洲一区二区三区在线观看| 中文字幕一区二区在线播放| 久久影院电视剧免费观看| 欧美一区二区三区免费视频| 亚洲国产精品视频| 国产清纯白嫩初高生在线观看91 | 国产一区二区在线看| 亚洲青青青在线视频| 日韩欧美国产一区二区在线播放| 成人激情免费电影网址| 爽好多水快深点欧美视频| 国产日韩欧美激情| 日韩欧美一区二区久久婷婷| 国产亚洲午夜高清国产拍精品 | 久久综合久久久久88| 在线一区二区三区四区五区 | 欧美一级视频精品观看| 99re66热这里只有精品3直播| 蜜臀av一级做a爰片久久| 国产精品亲子乱子伦xxxx裸| 3d动漫精品啪啪一区二区竹菊| 成人免费视频视频在线观看免费| 婷婷国产在线综合| 成人免费一区二区三区在线观看| 日韩三级免费观看| 欧美日韩色一区| 一本久久精品一区二区| 国产精品一区二区三区99| 蜜臀av一级做a爰片久久| 亚洲电影第三页| 亚洲欧美一区二区三区孕妇| 国产精品无人区| 国产清纯白嫩初高生在线观看91| 欧美大片一区二区| 欧美日韩国产一级二级| 在线亚洲一区观看| 91在线码无精品| 99久久久无码国产精品| 成人激情图片网| av资源网一区| 成人一区二区三区中文字幕| 高清国产一区二区| 国产成人在线看| 国产一区二区精品在线观看| 九九久久精品视频| 精品无人区卡一卡二卡三乱码免费卡| 水蜜桃久久夜色精品一区的特点| 一区二区在线观看不卡| 亚洲毛片av在线| 亚洲精品中文字幕乱码三区| 亚洲精品福利视频网站| 一区二区三区不卡视频| 亚洲自拍另类综合| 午夜视频在线观看一区| 免费高清在线视频一区·| 久久激情五月婷婷| 国产精品一区二区三区乱码| 国产91精品在线观看| 成人黄色小视频在线观看| 97超碰欧美中文字幕| 在线视频亚洲一区| 6080国产精品一区二区| 91麻豆精品91久久久久同性| 精品国产凹凸成av人网站| 精品乱码亚洲一区二区不卡| 久久精品欧美一区二区三区不卡| 欧美激情艳妇裸体舞| 亚洲欧美日韩人成在线播放| 午夜精品一区二区三区免费视频 | 欧美丰满少妇xxxbbb| 欧美疯狂做受xxxx富婆| 欧美v日韩v国产v| 欧美激情在线一区二区三区| 亚洲黄色在线视频| 日韩精品电影一区亚洲| 韩国在线一区二区| 国产ts人妖一区二区| 色8久久精品久久久久久蜜| 欧美男男青年gay1069videost | 国产一区二区三区| 99re热这里只有精品免费视频| 欧美日韩国产高清一区| 久久综合狠狠综合久久激情| 亚洲精品第1页| 久久国内精品自在自线400部| 99久久精品国产一区二区三区| 欧美三区在线观看| 久久久久国产精品免费免费搜索| 亚洲欧美另类久久久精品 | 亚洲一区视频在线观看视频| 免费亚洲电影在线| 99国产麻豆精品| 日韩欧美亚洲一区二区| 中文字幕在线一区免费| 亚洲sss视频在线视频| 成人福利视频在线看| 91精品国产综合久久久蜜臀粉嫩 | 色女孩综合影院| 欧美不卡一二三| 中文字幕一区二区在线播放| 欧美午夜精品理论片a级按摩| www久久久久| 日本女人一区二区三区| 99在线精品观看| 精品久久一区二区| 午夜欧美视频在线观看| 99精品国产热久久91蜜凸| 久久综合中文字幕| 琪琪久久久久日韩精品| 欧洲av一区二区嗯嗯嗯啊| 国产亚洲污的网站| 久久不见久久见免费视频7| 欧美日韩一卡二卡三卡 | 久久久久久9999| 日韩国产欧美三级| 色综合久久中文字幕综合网 | 精品国产凹凸成av人网站| 亚洲电影第三页| 在线视频综合导航| 亚洲女同女同女同女同女同69| 国产成人午夜电影网| 日韩视频一区二区三区在线播放 | 国产精品2024| 日韩欧美的一区| 亚洲 欧美综合在线网络| 日本精品免费观看高清观看| 国产精品素人视频| 国产精品一区二区在线观看不卡 | 欧美电视剧免费观看| 午夜精品久久久久久久久久久| 色婷婷综合在线| 亚洲欧洲日韩女同| 91女人视频在线观看| 国产视频一区二区三区在线观看| 九九久久精品视频| 26uuu精品一区二区| 国产精品一级在线| 日本一区二区三区视频视频| 懂色av一区二区在线播放| 中文字幕巨乱亚洲| 99久久国产综合精品色伊| 亚洲欧美国产毛片在线| 91黄视频在线| 亚洲成人av一区二区| 欧美日韩二区三区| 免费在线观看精品| www一区二区| 成人福利电影精品一区二区在线观看| 国产欧美日韩精品一区| 97精品电影院| 亚洲成人av一区| 精品成人一区二区三区四区| 韩国理伦片一区二区三区在线播放| 久久亚洲一区二区三区四区| 高清shemale亚洲人妖| 日韩毛片精品高清免费| 欧美三级蜜桃2在线观看| 蜜臀va亚洲va欧美va天堂| 2020国产精品自拍| av一区二区三区黑人| 亚洲一区二区三区中文字幕 | 欧美系列日韩一区| 偷窥少妇高潮呻吟av久久免费| 日韩写真欧美这视频| 成人国产精品视频| 亚洲一区中文日韩| 久久亚洲精品小早川怜子| 99视频一区二区| 日韩激情av在线|