国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

x210-2023-02-16

發(fā)布者:心靈舞動(dòng)最新更新時(shí)間:2025-01-13 來(lái)源: cnblogs關(guān)鍵字:內(nèi)存  UART 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

1、按26-實(shí)驗(yàn)三:用UART顯示某指定內(nèi)存中的數(shù)據(jù)視頻,正?,F(xiàn)象應(yīng)該第一行打印Uart2_Ok!,第二行打印0x1234ABCD,但是實(shí)際跑出來(lái)的效果卻是U和a不見(jiàn)了,而且ABCD也不見(jiàn)了,如下圖所示,由于視頻所用板子為tini210,而自己手上所用為x210bv4s,因?yàn)闊衋ndroid時(shí),系統(tǒng)指定了UART2為默認(rèn)的打印串口,所以為了避免頻繁插拔串口線的麻煩,所以并沒(méi)有按照視頻一樣使用UART0進(jìn)行試驗(yàn)而是繼續(xù)使用UART2。

一開(kāi)始的思路是可能緩沖區(qū)大小不夠,先屏蔽掉0x1234ABCD的匯編打印代碼看看效果,然后發(fā)現(xiàn)第一行能完整打印,如下圖所示。

既然能完整顯示,那接下來(lái)再看看是不是能全部顯示到一行,所以這里把打印回車(chē)換行的匯編代碼給屏蔽掉,發(fā)現(xiàn)雖然多顯示了AB,但是開(kāi)頭的U和a卻不見(jiàn)了,如下圖所示,所以這里懷疑到可能是發(fā)送FIFO的大小問(wèn)題,另一個(gè)就是視頻里展示的匯編代碼,它的發(fā)送過(guò)程并沒(méi)有等待發(fā)送完成的判斷,所以造成了后面覆蓋前面的現(xiàn)象從而使U和a被頂?shù)?,因此下一步的思路就是從這兩個(gè)可能原因入手。

 

首先是第一個(gè)FIFO大小的問(wèn)題,雖然查到UART0的FIFO最大能有256byte,而UART2的FIFO最大只有16字節(jié),但是UFCON在初始化的時(shí)候并沒(méi)有對(duì)這部分內(nèi)容進(jìn)行設(shè)置,而只是將UFCON[0]置一了,也就是使能了FIFO,然后再仔細(xì)看看UFCON中發(fā)送FIFO的大小設(shè)置,會(huì)發(fā)現(xiàn)是關(guān)于中斷下才有用的,所以這里想要從FIFO大小設(shè)置入手變的無(wú)計(jì)可施,所以接下來(lái)就想到先加入等待發(fā)送完成的whlie循環(huán)判斷匯編代碼看是否有突破,如下圖所示。

 

 

 這個(gè)while的循環(huán)判斷是基于UTRSTAT[2]進(jìn)行的,在UTXH寫(xiě)入數(shù)據(jù)的前面進(jìn)行調(diào)用即可,關(guān)鍵的是編寫(xiě)這個(gè)while循環(huán)需要保存lr的值,而不能直接mov pc,lr,因?yàn)閘r的值一直被保存在r11中,而r11保存的是uart_asm_init入口地址,一旦執(zhí)行就會(huì)返回到uart_asm_init開(kāi)始的地方然后繼續(xù)往下執(zhí)行,初始化這里一共需要發(fā)送Uart2_Ok!rn,但只發(fā)了一個(gè)字節(jié)數(shù)據(jù)U就返回到入口處繼續(xù)往下,這明顯是不應(yīng)該的,而用于保存lr的寄存器,需要確保不能被當(dāng)前文件前面的某些地方使用過(guò)以保證存儲(chǔ)的返回入口地址不被沖掉,所以這里就選用lowlevel_init.S中前面沒(méi)用過(guò)的r10,與此同時(shí),在測(cè)試過(guò)程中,發(fā)現(xiàn)前面UFCON[0]已經(jīng)置一的初始化內(nèi)容需要屏蔽掉,否則會(huì)無(wú)內(nèi)容打?。ㄒ?yàn)閷?xiě)while循環(huán)的邏輯是參考的前面裸機(jī)時(shí)串口部分的C測(cè)試程序,當(dāng)時(shí)是并沒(méi)有給UFCON[0]置一的,而后面實(shí)際測(cè)試發(fā)現(xiàn)這個(gè)的確會(huì)有影響所以要屏蔽),這些都做完會(huì)發(fā)現(xiàn)第一行Uart2_Ok!能完整打印出來(lái)了,而第二行的內(nèi)容不能打印或者有時(shí)候只打印了一個(gè)x,如下圖所示。

 

 

到了這里卡的是最久的,首先是調(diào)試方式的問(wèn)題,能用于調(diào)試的就只有l(wèi)ed,但點(diǎn)亮led的子過(guò)程(相當(dāng)于子函數(shù))是在./arch/arm/cpu/armv7/start.S這個(gè)文件中,雖然用.global聲明到了外部,允許被當(dāng)前./board/samsung/goni/lowlevel_init.S調(diào)用,但是經(jīng)過(guò)前面的調(diào)試,由于點(diǎn)亮led的這個(gè)子函數(shù)也用了mov pc,lr,放到uart_asm_init和display_hex里直接調(diào)用的話就相當(dāng)給自己挖坑,改完再調(diào)用的話就相對(duì)麻煩(可以改但是需要擔(dān)心保存lr的寄存器因?yàn)闆](méi)注意而使用了一個(gè)已經(jīng)被使用的,導(dǎo)致lr內(nèi)容被沖掉就為調(diào)試添加了更多不確定性),所以決定在uart_asm_init和display_hex內(nèi)部直接再用另一個(gè)led(內(nèi)部點(diǎn)亮的這個(gè)led需要減少跳轉(zhuǎn)的干擾因此直接使用最原始的ldr、bic、str操作而不要再封裝成子過(guò)程),而在外部(uart_asm_init和display_hex前后和中間的位置)就直接調(diào)用原來(lái)的這個(gè)led,接下來(lái)就是調(diào)試過(guò)程,由于沒(méi)有別的辦法了,只能通過(guò)這兩個(gè)led一內(nèi)一外去包夾縮小來(lái)定位問(wèn)題語(yǔ)句,由于前面調(diào)試的結(jié)果已經(jīng)得知,在第一行打印完就沒(méi)有繼續(xù)打印了,所以一個(gè)led需要放在uart_asm_init內(nèi)部Uart2_OK!rn的r、n這里前后和中間分別測(cè)試是否能亮,然后再在外邊的uart_asm_init和display_hex之間放一個(gè)led,后面測(cè)試發(fā)現(xiàn),uart_asm_init和display_hex之間的led不亮,而uart_asm_init內(nèi)部Uart2_OK!rn的n后面的led還能亮,說(shuō)明在離開(kāi)uart_asm_init到進(jìn)入display_hex之前出了問(wèn)題,這個(gè)中間只有兩條語(yǔ)句,一個(gè)是標(biāo)號(hào)200:mov pc,lr,另一條是給r0賦值0x1234abcd,很明顯,問(wèn)題應(yīng)該在標(biāo)號(hào)200:mov pc,lr這條語(yǔ)句,起初定位到這里了但是沒(méi)有思路了,后來(lái)網(wǎng)上看到一句話,在子過(guò)程中調(diào)用了子過(guò)程,需要將lr保存到棧sp中(r13),剛好在lowlevel_init.S前面還沒(méi)使用過(guò)r13,然后再代入測(cè)試就可以了,如下圖所示。

 

 


關(guān)鍵字:內(nèi)存  UART 引用地址:x210-2023-02-16

上一篇:x210-2023-02-26
下一篇:x210-2023-02-13

推薦閱讀最新更新時(shí)間:2025-06-22 13:22

proteus仿真msp430,實(shí)現(xiàn)一個(gè)按鍵矩陣掃描和UART發(fā)送
功能概述: 實(shí)現(xiàn)一個(gè)4x4按鍵矩陣,通過(guò)按鍵掃描,當(dāng)有按鍵按下時(shí),識(shí)別按鍵值,并通過(guò)UART串口發(fā)送,同時(shí)在lcd1602顯示。 功能實(shí)現(xiàn): 1.按鍵掃描 void keyboardScan(){ P1OUT = 0xef;//P1.4 = 0 if((P1IN & 0x0f) != 0x0f){ delay_ms8M(5);//消抖 if((P1IN & 0x0f) != 0x0f){ if((P1IN & 0x01) == 0){ keyValue = '3';while((P1IN & 0x01) == 0);}; if((P1IN & 0x02) == 0){ keyValue
[單片機(jī)]
proteus仿真msp430,實(shí)現(xiàn)一個(gè)按鍵矩陣掃描和<font color='red'>UART</font>發(fā)送
第011課 Jz2400串口(UART)的使用
第001節(jié)硬件知識(shí)_UART硬件介紹 1.串口的硬件介紹 UART的全稱是Universal Asynchronous Receiver and Transmitter,即異步發(fā)送和接收。 串口在嵌入式中用途非常的廣泛,主要的用途有: 打印調(diào)試信息; 外接各種模塊:GPS、藍(lán)牙; 串口因?yàn)榻Y(jié)構(gòu)簡(jiǎn)單、穩(wěn)定可靠,廣受歡迎。 通過(guò)三根線即可,發(fā)送、接收、地線。 通過(guò)TxD- RxD把ARM開(kāi)發(fā)板要發(fā)送的信息發(fā)送給PC機(jī)。 通過(guò)RxD- TxD線把PC機(jī)要發(fā)送的信息發(fā)送給ARM開(kāi)發(fā)板。 最下面的地線統(tǒng)一參考地。 2.串口的參數(shù) 波特率:一般選波特率都會(huì)有9600,19200,115200等選項(xiàng)。其實(shí)意思就是每
[單片機(jī)]
第011課 Jz2400串口(<font color='red'>UART</font>)的使用
三星考慮將 MUF 技術(shù)應(yīng)用于服務(wù)器 DRAM 內(nèi)存
3 月 4 日消息,據(jù) TheElec,三星正在考慮在其下一代 DRAM 中應(yīng)用模壓填充(MUF)技術(shù)。三星最近測(cè)試了一種用于 3D 堆棧 (3DS) 內(nèi)存的 MR MUF 工藝,與 TC NCF 相其吞吐量有所提升,但物理特性卻出現(xiàn)了一定惡化。 經(jīng)過(guò)測(cè)試,該公司得出結(jié)論,MUF 不適用于高帶寬內(nèi)存 (HBM),但非常適合 3DS RDIMM,而目前 3DS RDIMM 使用硅通孔 (TSV) 技術(shù)制造,主要用于服務(wù)器。 MUF 是一種在半導(dǎo)體上打上數(shù)千個(gè)微小的孔,然后將上下層半導(dǎo)體連接的 TSV 工藝后,注入到半導(dǎo)體之間的材料,它的作用是將垂直堆疊的多個(gè)半導(dǎo)體牢固地固定并連接起來(lái)。 在此之前,三星已經(jīng)在其現(xiàn)有的注冊(cè)雙列直插式內(nèi)存
[半導(dǎo)體設(shè)計(jì)/制造]
MCS-51單片機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)器的RAM結(jié)構(gòu)詳細(xì)解析
內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元 8051單片機(jī)的內(nèi)部RAM共有256個(gè)單元,通常把這256個(gè)單元按其功能劃分為兩部分:低128單元(單元地址00H~7FH)和高128單元(單元地址80H~FFH)。如圖所示為低128單元的配置圖。 寄存器區(qū) 8051共有4組寄存器,每組8個(gè)寄存單元(各為8),各組都以R0~R7作寄存單元編號(hào)。寄存器常用于存放操作數(shù)中間結(jié)果等。由于它們的功能及使用不作預(yù)先規(guī)定,因此稱之為通用寄存器,有時(shí)也叫工作寄存器。4組通用寄存器占據(jù)內(nèi)部RAM的00H~1FH單元地址。 在任一時(shí)刻,CPU只能使用其中的一組寄存器,并且把正在使用的那組寄存器稱之為當(dāng)前寄存器組。到底是哪一組,由程序狀態(tài)字寄存器PSW中RS1、R
[單片機(jī)]
MCS-51單片機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)器的<font color='red'>RAM</font>結(jié)構(gòu)詳細(xì)解析
51單片機(jī)串口通訊UART
1、串行通信的的基本知識(shí) 在實(shí)際的工業(yè)生產(chǎn),或者生活中,計(jì)算機(jī)的CPU要與外部的設(shè)備之間進(jìn)行信息的交流,數(shù)據(jù)的交換,所有的這些信息交換均可稱為通信。 通信的方式有兩種,分別為串行通信和并行通信。我們通常根據(jù)實(shí)際信息傳輸?shù)木嚯x還決定采用哪種通信方式。 并行通信: 并行通信是指數(shù)據(jù)的各位同時(shí)進(jìn)行傳送(發(fā)送或者接收)的通信方式。其優(yōu)點(diǎn)是傳送速度快,缺點(diǎn)是數(shù)據(jù)有多少位,就需要有多少根傳送線。 串行通信: 串行通信是指數(shù)據(jù) 一位一位的按順序傳送的通信,他的優(yōu)點(diǎn)是傳送線少(只需要一對(duì)傳輸線),特別適用于遠(yuǎn)距離的數(shù)據(jù)通信,缺點(diǎn)是傳送速度低。 其通信的原理如下圖所示 串行通信的數(shù)據(jù)傳輸方式: 分為3
[單片機(jī)]
51單片機(jī)串口通訊<font color='red'>UART</font>
英特爾至強(qiáng)CPU Max系列:整合高帶寬內(nèi)存(HBM)和至強(qiáng)處理器內(nèi)核
加速內(nèi)存帶寬創(chuàng)新:英特爾至強(qiáng)CPU Max系列,率先集成高帶寬內(nèi)存的x86處理器 治療癌癥、減緩全球變暖、保護(hù)生態(tài)健康——當(dāng)今世界充滿了各種挑戰(zhàn)。因此,通過(guò)科技緊跟時(shí)代發(fā)展步伐,并充分利用不斷增長(zhǎng)的數(shù)據(jù)至關(guān)重要。這不僅涉及數(shù)據(jù)的處理速度,也涉及能夠處理的海量數(shù)據(jù),以及數(shù)據(jù)在內(nèi)存和處理器之間的傳輸速度。 英特爾設(shè)計(jì)工程部首席工程師、英特爾?至強(qiáng)? CPU Max系列(代號(hào)Sapphire Rapids HBM)首席架構(gòu)師Ugonna Echeruo如此描述這一挑戰(zhàn): 究其根本,一顆CPU是從內(nèi)存獲取信息、對(duì)其進(jìn)行處理并更新 。CPU最終可以處理的信息量受限于數(shù)據(jù)傳輸“管道”的寬窄。管道越寬,CPU處理的信息就越多,相應(yīng)地,完
[嵌入式]
英特爾至強(qiáng)CPU Max系列:整合高帶寬<font color='red'>內(nèi)存</font>(HBM)和至強(qiáng)處理器內(nèi)核
處理器架構(gòu) (六) armv4v5v6 架構(gòu)參考手冊(cè)(2) 內(nèi)存及系統(tǒng)架構(gòu)
內(nèi)存及系統(tǒng)架構(gòu) (partB) 內(nèi)存及系統(tǒng)架構(gòu)介紹 ARMv6是第一個(gè)標(biāo)準(zhǔn)化內(nèi)存模型和許多系統(tǒng)級(jí)特性的體系結(jié)構(gòu)變體。 它是第一個(gè)要求提供系統(tǒng)控制協(xié)處理器的體系結(jié)構(gòu)變體,也是系統(tǒng)級(jí)硬件和軟件設(shè)計(jì)的一致性級(jí)別。 因此,ARMv6被認(rèn)為是B部分中材料呈現(xiàn)方式的分水嶺。 1. 內(nèi)存順序模型 ARMv6之前 體系結(jié)構(gòu)沒(méi)有試圖定義顯式內(nèi)存事務(wù)的可接受內(nèi)存順序 ARMv6 定義了 顯式內(nèi)存事務(wù)的可接受內(nèi)存順序(沒(méi)有定義隱式內(nèi)存事務(wù)的可接受內(nèi)存順序) 為了解釋 (顯式內(nèi)存事務(wù)的可接受內(nèi)存順序) 1.ARMv6引入了一組內(nèi)存類(lèi)型(普通內(nèi)存、設(shè)備內(nèi)存和強(qiáng)順序內(nèi)存),定義了內(nèi)存訪問(wèn)
[單片機(jī)]
51單片機(jī)內(nèi)部E2ROM
/*main.c源程序*/ #include reg52.h #include E2ROM.c #include key.c sfr WDT_CONTR = 0xE1;//定義STC單片機(jī)中新加入的看門(mén)狗寄存器 code uchar seven_seg = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};//共陽(yáng)數(shù)碼管0--9(0時(shí)為有效斷) code uchar scan_bit = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf}; //數(shù)碼管位選 6 5 4 3 2 1 uchar
[單片機(jī)]
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved