女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀] 1 McBSP(Multichannel Buffered Serial Port)串口利用DMA中的多幀(Multi-Frame)方式通信的中斷處理  在實(shí)際通信應(yīng)用中,一個(gè)突發(fā)之后,程序必須為下一個(gè)突發(fā)作準(zhǔn)備。因此一般采用串口的DMA多幀方式但在串口以DMA

 1 McBSP(Multichannel Buffered Serial Port)串口利用DMA中的多幀(Multi-Frame)方式通信的中斷處理

  在實(shí)際通信應(yīng)用中,一個(gè)突發(fā)之后,程序必須為下一個(gè)突發(fā)作準(zhǔn)備。因此一般采用串口的DMA多幀方式但在串口以DMA方式傳輸數(shù)據(jù)時(shí)卻有一些問題要討論。首先DMA的傳輸同步事件應(yīng)設(shè)McBSP的傳輸事件即XEVT,這樣一字節(jié)傳輸后會(huì)自動(dòng)準(zhǔn)備另一字節(jié)(McBSP的READY上升沿觸發(fā)DMA傳輸)。中斷發(fā)生時(shí)意味著一個(gè)塊已傳完,這時(shí)DMA的使能自動(dòng)關(guān)閉,McBSP的READY將一直保持高狀態(tài)。但是在下一次突發(fā)傳輸直接使能DMA時(shí)卻啟動(dòng)不了傳輸(相信會(huì)有許多我遇到此類問題)。這是因?yàn)闊o法產(chǎn)生McBSP觸發(fā)啟動(dòng)所需的READY上升沿。解決辦法是在中斷程序中先關(guān)閉McBSP的發(fā)送,使 READY="0",隨后在程序中發(fā)送使能DMA,再打開McBSP的發(fā)送即可。如先打開McBSP的發(fā)送后打開DMA,也是不會(huì)工作的。因?yàn)镸cBSP的 READY已經(jīng)由0變到1了,無法再產(chǎn)生READY上升沿。

  2 關(guān)閉DMA與關(guān)閉McBSP的區(qū)別

  在通信領(lǐng)域,為了充分利用DSP的片上外設(shè)資源,常常利用DMA把從串口來的數(shù)據(jù)或要發(fā)的數(shù)據(jù)放入緩沖區(qū),再處理。對(duì)DMA而言,只要其在數(shù)據(jù)緩沖區(qū)的指針指向了中斷應(yīng)發(fā)生的位置,就產(chǎn)生中斷。但此時(shí)最后一個(gè)數(shù)據(jù)只是進(jìn)入了McBSP而并未真正發(fā)出去,所以在傳送結(jié)束的中斷程序中只能關(guān)閉DMA不能關(guān)閉McBSP。因?yàn)榇藭r(shí)McBSP的發(fā)寄存器DXR中還有一個(gè)字沒有發(fā)出。

  3 McBSP串口配置的關(guān)鍵時(shí)序

  主要是寄存器SPCR2的配置:在保持RRST、XRST、FRST各位為0的前提下,配置好其它串口控制寄存器。等待至少2個(gè)CLKR/T時(shí)鐘以確保DSP內(nèi)部的同步。

  (1)可以向DXR裝載數(shù)據(jù)或使能DMA。

  (2)使能GRST(GRST=1)(如果需要DSP內(nèi)部產(chǎn)生采樣時(shí)鐘)。

  (3)使能RRST或XRST,注意此時(shí)要保證SPCR中僅有此一位發(fā)生改變。

  (4)使能FRST(FRST=1)(如果需要DSP內(nèi)部產(chǎn)生幀同步)。

  (5)等待2個(gè)R/T CLK時(shí)鐘周期后,收或發(fā)端便會(huì)有效。

  4 匯編語言程序中的變量

  匯編語言程序中的公用變量應(yīng)在文件中定義,如.def carry。匯編語言程序中使用的局部變量不需定義,可直接聲明,例如trn_num .word 00h。如果在兩個(gè)asm文件中有兩個(gè)都沒有定義的同名變量,則編譯程序會(huì)認(rèn)為分他們不是同一變量。在匯編程序的開頭應(yīng)有.mmregs宏語句。它一方面表示對(duì)默認(rèn)定義的確認(rèn)(ah,bh,trn等),另一方面可以對(duì)所用寄存器重新定義。如:.mmregs DMPREC .set 54h ;定義DMA優(yōu)先和使能寄存器地址在54h DMSA .set 55h DMSDN .set 57h DXR10 .set 23h ;定義串口1的發(fā)送寄存器地睛在23h。

  5 ST1寄存器中CPL位的影響

  CPL位是編譯模式控制位,它表示在相對(duì)直接尋址時(shí)采用哪種指針。當(dāng)CPL=0時(shí),使用頁指針DP;當(dāng)CPL=1時(shí),使用堆棧指針SP。實(shí)際使用中二者沒有什么差別,但使用SP尋址的程序更易讀。在程序中經(jīng)常使用CPL=1。

  1 McBSP(Multichannel Buffered Serial Port)串口利用DMA中的多幀(Multi-Frame)方式通信的中斷處理

  在實(shí)際通信應(yīng)用中,一個(gè)突發(fā)之后,程序必須為下一個(gè)突發(fā)作準(zhǔn)備。因此一般采用串口的DMA多幀方式但在串口以DMA方式傳輸數(shù)據(jù)時(shí)卻有一些問題要討論。首先DMA的傳輸同步事件應(yīng)設(shè)McBSP的傳輸事件即XEVT,這樣一字節(jié)傳輸后會(huì)自動(dòng)準(zhǔn)備另一字節(jié)(McBSP的READY上升沿觸發(fā)DMA傳輸)。中斷發(fā)生時(shí)意味著一個(gè)塊已傳完,這時(shí)DMA的使能自動(dòng)關(guān)閉,McBSP的READY將一直保持高狀態(tài)。但是在下一次突發(fā)傳輸直接使能DMA時(shí)卻啟動(dòng)不了傳輸(相信會(huì)有許多我遇到此類問題)。這是因?yàn)闊o法產(chǎn)生McBSP觸發(fā)啟動(dòng)所需的READY上升沿。解決辦法是在中斷程序中先關(guān)閉McBSP的發(fā)送,使 READY="0",隨后在程序中發(fā)送使能DMA,再打開McBSP的發(fā)送即可。如先打開McBSP的發(fā)送后打開DMA,也是不會(huì)工作的。因?yàn)镸cBSP的 READY已經(jīng)由0變到1了,無法再產(chǎn)生READY上升沿。

  2 關(guān)閉DMA與關(guān)閉McBSP的區(qū)別

  在通信領(lǐng)域,為了充分利用DSP的片上外設(shè)資源,常常利用DMA把從串口來的數(shù)據(jù)或要發(fā)的數(shù)據(jù)放入緩沖區(qū),再處理。對(duì)DMA而言,只要其在數(shù)據(jù)緩沖區(qū)的指針指向了中斷應(yīng)發(fā)生的位置,就產(chǎn)生中斷。但此時(shí)最后一個(gè)數(shù)據(jù)只是進(jìn)入了McBSP而并未真正發(fā)出去,所以在傳送結(jié)束的中斷程序中只能關(guān)閉DMA不能關(guān)閉McBSP。因?yàn)榇藭r(shí)McBSP的發(fā)寄存器DXR中還有一個(gè)字沒有發(fā)出。

  3 McBSP串口配置的關(guān)鍵時(shí)序

  主要是寄存器SPCR2的配置:在保持RRST、XRST、FRST各位為0的前提下,配置好其它串口控制寄存器。等待至少2個(gè)CLKR/T時(shí)鐘以確保DSP內(nèi)部的同步。

  (1)可以向DXR裝載數(shù)據(jù)或使能DMA。

  (2)使能GRST(GRST=1)(如果需要DSP內(nèi)部產(chǎn)生采樣時(shí)鐘)。

  (3)使能RRST或XRST,注意此時(shí)要保證SPCR中僅有此一位發(fā)生改變。

  (4)使能FRST(FRST=1)(如果需要DSP內(nèi)部產(chǎn)生幀同步)。

  (5)等待2個(gè)R/T CLK時(shí)鐘周期后,收或發(fā)端便會(huì)有效。

  4 匯編語言程序中的變量

  匯編語言程序中的公用變量應(yīng)在文件中定義,如.def carry。匯編語言程序中使用的局部變量不需定義,可直接聲明,例如trn_num .word 00h。如果在兩個(gè)asm文件中有兩個(gè)都沒有定義的同名變量,則編譯程序會(huì)認(rèn)為分他們不是同一變量。在匯編程序的開頭應(yīng)有.mmregs宏語句。它一方面表示對(duì)默認(rèn)定義的確認(rèn)(ah,bh,trn等),另一方面可以對(duì)所用寄存器重新定義。如:.mmregs DMPREC .set 54h ;定義DMA優(yōu)先和使能寄存器地址在54h DMSA .set 55h DMSDN .set 57h DXR10 .set 23h ;定義串口1的發(fā)送寄存器地睛在23h。

  5 ST1寄存器中CPL位的影響

  CPL位是編譯模式控制位,它表示在相對(duì)直接尋址時(shí)采用哪種指針。當(dāng)CPL=0時(shí),使用頁指針DP;當(dāng)CPL=1時(shí),使用堆棧指針SP。實(shí)際使用中二者沒有什么差別,但使用SP尋址的程序更易讀。在程序中經(jīng)常使用CPL=1。

  6 指令的歧義

  6.1 比較下面指令STLM B,AR4 ;把bl內(nèi)容送入寄存器AR4 (×)

  STLM B,*AR4 ;把bl內(nèi)容送入寄存器AR4 (√)

  前者實(shí)際執(zhí)行的是把bl內(nèi)容送入一個(gè)系統(tǒng)用的緩沖區(qū),后者也可用:MVDM BL,AR4 ;把bl內(nèi)容送入寄存器AR4 (√)

  其他易導(dǎo)致歧義的語句還有:

  LD AR5,A ;把AR5的內(nèi)容送入寄存器A (×)

  LDM AR5,A ;把AR5的內(nèi)容送入寄存器A (√)

  ANDM #0x107e,AR4;把#107e加到寄存器AR4 (×)

  ANDN #0x107e,*AR4;把#107e加到寄存器AR4 (√)

  僅對(duì)某些寄存器有效的指令:

  MVDD * AR2+,*AR3+ ;把以AR2為地址的內(nèi)容拷入AR3的地址中此類指令用作數(shù)據(jù)塊搬移特別有效,但僅對(duì)AR2、AR3、AR4、AR5有效。

  易錯(cuò)語句中對(duì)程序運(yùn)行危害最大的是:

  ST #0,*(bsp0_out_sign) ;bsp0_out_sign是一個(gè)變量名(√)

  STM #0,bsp0_out_sign ;此語句被編譯為STM #0,PMST或STM #0,IMR (×)

  這種語句會(huì)導(dǎo)致程序運(yùn)行中的隨機(jī)故障,且極難發(fā)現(xiàn)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

《帶得走的智能制造》暑期課程圓滿落幕 北京2025年7月25日 /美通社/ -- 近日,由國際獨(dú)立第三方檢測、檢驗(yàn)和認(rèn)證機(jī)構(gòu)德國萊茵TÜV大中華區(qū)(以下簡稱"TÜV萊茵")與北京...

關(guān)鍵字: 智能制造 BSP DMA 信息安全

在實(shí)時(shí)控制系統(tǒng)、高速通信協(xié)議處理及高精度數(shù)據(jù)采集等對(duì)時(shí)間敏感的應(yīng)用場景中,中斷響應(yīng)延遲的優(yōu)化直接決定了系統(tǒng)的可靠性與性能上限。STM32系列微控制器憑借其靈活的嵌套向量中斷控制器(NVIC)、多通道直接內(nèi)存訪問(DMA)...

關(guān)鍵字: STM32 DMA

控制寄存器(Control Register)是中央處理器(CPU)中用于管理系統(tǒng)級(jí)操作的特殊寄存器,它為操作系統(tǒng)和硬件提供對(duì)處理器行為的精細(xì)控制。本文從計(jì)算機(jī)體系結(jié)構(gòu)角度系統(tǒng)闡述控制寄存器的設(shè)計(jì)原理、功能分類、操作機(jī)制...

關(guān)鍵字: 寄存器 處理器

在嵌入式系統(tǒng)、網(wǎng)絡(luò)通信等對(duì)數(shù)據(jù)傳輸效率要求極高的場景中,零拷貝技術(shù)能夠顯著減少數(shù)據(jù)在內(nèi)存中的拷貝次數(shù),降低CPU負(fù)載,提高系統(tǒng)性能。DMA(直接內(nèi)存訪問)環(huán)形緩沖區(qū)與內(nèi)存池相結(jié)合的雙重優(yōu)化策略,為實(shí)現(xiàn)高效的零拷貝數(shù)據(jù)傳輸...

關(guān)鍵字: 零拷貝 DMA 嵌入式系統(tǒng)

在嵌入式系統(tǒng)開發(fā)中,硬件抽象層(Hardware Abstraction Layer,HAL)起著至關(guān)重要的作用。它為上層軟件提供了統(tǒng)一的硬件訪問接口,隱藏了底層硬件的細(xì)節(jié),使得軟件具有更好的可移植性和可維護(hù)性。C++作...

關(guān)鍵字: 嵌入式C++ HAL 寄存器 封裝

采用51單片機(jī)最小開發(fā)板,由8位自制獨(dú)立按鍵控制。單片機(jī)芯片為STC89C52RC,晶振為@12.000 mhz。8X8LED點(diǎn)陣屏模塊由MAX7219驅(qū)動(dòng),MAX7219包含一個(gè)自動(dòng)掃描電路。你只需要把要顯示的數(shù)據(jù)發(fā)送...

關(guān)鍵字: 51單片機(jī) MAX7219 寄存器

電源管理集成電路(PMIC)有益于簡化最終應(yīng)用并縮小其尺寸,也因此備受青睞。然而,當(dāng)默認(rèn)啟動(dòng)時(shí)序和輸出電壓與應(yīng)用要求不符時(shí),就需要定制上電設(shè)置。大多數(shù)情況下,電路沒有可以存儲(chǔ)這些設(shè)置的非易失性存儲(chǔ)器(NVM)。對(duì)此,低功...

關(guān)鍵字: 電源管理 集成電路 寄存器

我從Digilent公司拿出了我的Arty Z7板,并在Vivado/Vitis 2021.2中創(chuàng)建了一個(gè)項(xiàng)目來讓它工作,你可以在我的上一個(gè)項(xiàng)目帖子中閱讀,我在QDSP-6061的5位數(shù)上顯示滾動(dòng)文本,上面寫著“Hell...

關(guān)鍵字: 寄存器 AXI4 QDSP-6061 RTL模塊

STM32單片機(jī)憑借其高性能、低功耗、豐富的外設(shè)資源等優(yōu)勢,在工業(yè)控制、消費(fèi)電子、汽車電子等領(lǐng)域得到了廣泛應(yīng)用。在嵌入式系統(tǒng)開發(fā)中,高效的數(shù)據(jù)處理和傳輸至關(guān)重要。中斷技術(shù)和DMA技術(shù)作為STM32單片機(jī)中重要的數(shù)據(jù)處理和...

關(guān)鍵字: STM32 DMA

在嵌入式系統(tǒng)中,隨著數(shù)據(jù)量的不斷增加和實(shí)時(shí)性要求的提高,傳統(tǒng)的CPU直接控制數(shù)據(jù)傳輸?shù)姆绞街饾u暴露出效率低下的問題。為了應(yīng)對(duì)這一挑戰(zhàn),直接內(nèi)存訪問(Direct Memory Access,DMA)技術(shù)應(yīng)運(yùn)而生,成為實(shí)現(xiàn)...

關(guān)鍵字: DMA 嵌入式系統(tǒng) 高速數(shù)據(jù)傳輸
關(guān)閉