嵌入式系統(tǒng)設(shè)計基于ARMCortex-A9多核處理器Linux編程孫俊喜習(xí)題答案_第1頁
嵌入式系統(tǒng)設(shè)計基于ARMCortex-A9多核處理器Linux編程孫俊喜習(xí)題答案_第2頁
嵌入式系統(tǒng)設(shè)計基于ARMCortex-A9多核處理器Linux編程孫俊喜習(xí)題答案_第3頁
嵌入式系統(tǒng)設(shè)計基于ARMCortex-A9多核處理器Linux編程孫俊喜習(xí)題答案_第4頁
嵌入式系統(tǒng)設(shè)計基于ARMCortex-A9多核處理器Linux編程孫俊喜習(xí)題答案_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第1章ARM體系結(jié)構(gòu)中的字、半字、字節(jié)的長度各是多少?32位、16位、8位。ARM系列產(chǎn)品包括幾大類?每一類的特點和應(yīng)用場合分別是什么?Cortex-A:針對高性能計算。如我們目前手機SoC中常出現(xiàn)的Cortex-A7Cortex-R:針對實時操作處理。主要是面向嵌入式實時處理器。在汽車的電子制動系統(tǒng),工業(yè)控制領(lǐng)域等領(lǐng)域比較常見。Cortex-M:專為低功耗、低成本系統(tǒng)設(shè)計。目前火熱的IOT(IoT是InternetofThings的縮寫,準確的翻譯應(yīng)該為"物聯(lián)網(wǎng)"。)領(lǐng)域常常見到采用Cortex-M架構(gòu)的處理器。ARM狀態(tài)下指令長度是多少位?Thumb狀態(tài)下指令長度是多少位?32位、16位。什么是大端存儲格式什么是小端存儲格式在ARM內(nèi)核的系統(tǒng)中常采用哪種格式?在大端存儲格式中,字數(shù)據(jù)的高字節(jié)存儲在低字節(jié)單元中,字數(shù)據(jù)的低字節(jié)則存儲在高地址單元中,如圖1-1所示。在小端存儲格式中,低地址單元存儲的是字數(shù)據(jù)的低字節(jié),高地址單元中存儲的是字數(shù)據(jù)的高字節(jié),如圖1-2所示。第2章在Linux開發(fā)中最常用的編輯軟件是那個?vi是Linux系統(tǒng)的第一個全屏幕交互式編輯程序在Linux開發(fā)中最常用的編輯和編譯軟件有哪些?它們功能有什么不同?vi和gcc在Linux開發(fā)中GNUMake作用是什么?Make工程管理器也就是個“自動編譯管理器”,這里的“自動”是指它能夠根據(jù)文件時間戳自動發(fā)現(xiàn)更新過的文件而減少編譯的工作量,同時,它通過讀入Makefile文件的內(nèi)容來執(zhí)行大量的編譯工作。用戶只需編寫一次簡單的編譯語句就可以了。它學(xué)會ifconfig命令的使用。(1)作用用于查看和配置網(wǎng)絡(luò)接口的地址和參數(shù),包括IP地址、網(wǎng)絡(luò)掩碼、廣播地址,它的使用權(quán)限是超級用戶。(2)格式ifconfig有兩種使用格式,分別用于查看和更改網(wǎng)絡(luò)接口。1.ifconfig[選項][網(wǎng)絡(luò)接口],用來查看當(dāng)前系統(tǒng)的網(wǎng)絡(luò)配置情況。2.ifconfig網(wǎng)絡(luò)接口[選項]地址,用來配置指定接口(如eth0,eth1)的IP地址、網(wǎng)絡(luò)掩碼、廣播地址等。第3章Linux常用的shell有幾種,我們常用的是那種?BourneshellCshellkornshellbash,以“#”號開頭的行作用?Shell如何處理“#”號后面的所有內(nèi)容。以“#”號開頭的行是注釋,Shell會直接忽略“#”號后面的所有內(nèi)容。變量的如何賦值和使用?在Shell中使用變量不需要事先聲明。使用等號“=”將一個變量右邊的值賦給這個變量.在一個腳本中美元提示符“$”作用?在BASH中,美元符號“$”用于對一個變量進行解析。Shell在碰到帶有“$”的變量時會自動將其替換為這個變量的值引號,單引號,倒引號使用規(guī)則?雙引號:阻止Shell對大多數(shù)特殊字符(例如#)進行解釋。但“$”、“

`”和“仍然保持其特殊含義。單引號:阻止Shell對所有字符進行解釋。倒引號:“

`”,這個符號通常位于鍵盤上Esc鍵的下方。當(dāng)用倒引號括起一個Shell命令時,這個命令將會被執(zhí)行,執(zhí)行后的輸出結(jié)果將作為這個表達式的值。倒引號中的特殊字符一般都被解釋。Shell中的循環(huán)結(jié)構(gòu)有幾種?有3種:while、until和for第4章Exynos4412是幾核處理器,其工作頻率能達到多少G?是三星第一款四核處理器。主頻達到1.4~1.6Ghz2.Exynos4412有幾24位I2S接口3個24位I2S接口Exynos4412有個幾個I2C接口8個I2C接口Exynos4412幾個SPI接口3個SPI接口Exynos4412幾個UART接口4個UART接口。第5章Exynos4412有多少多功能的輸入/輸出引腳,分為多少組通用GPIO和MemoryGPIO。4412芯片上共有304個多功能的輸入/輸出引腳,分為37組通用GPIO和2組MemoryGPIO。熟悉通用GPIO的功能控制寄存器、數(shù)據(jù)寄存器用法。端口控制寄存器:GPA0CON~GPZCON。在4412中端口控制寄存器控制了每個管腳的功能。所以使用這些管腳時必須通過控制寄存器對管腳進行設(shè)置。熟悉通用GPIO寄存器上拉、下拉、能力驅(qū)動做法。端口上拉或下拉寄存器:GPA0PUD~GPZPUD,端口上拉或下拉寄存器控制了該端口的上拉或下拉的禁止或使能,提高端口的驅(qū)動和抗干擾能力。端口驅(qū)動能力寄存器:GPA0DRV~GPZDRV,該寄存器提高了端口的驅(qū)動能力。第6章1,Exynos4412通過GIC管理多少中斷,其中軟件中斷有幾個?私有外設(shè)中斷有幾個?共享外設(shè)中斷有幾個?Exynos4412采用中斷控制器(GIC)來管理中斷資源,它支持160個中斷源,包括16個軟件中斷(SGI),16個私有外部中斷(PPI),128個公共外部中斷(SPI)。2,Exynos4412EXT_INT41CON配置寄存器作用?EXT_INT41_MASK、EXT_INT41_PEND、ICDISERn(n=0~4)_CPUn(n=0~3)、ICCICR_CPUn(n=0~3)、ICDDCR、ICCPMR_CPUn(n=0~3)、ICCIAR_CPUn(n=0~3)、ICCEOIR_CPUn(n=0~3)、ICDICPRn(n=0~4)_CPUn(n=0~3)作用是什么?外部觸發(fā)方式有5種,分別是低電平、高電平、下降沿、上升沿和雙沿。對應(yīng)的觸發(fā)方式配置為EXT_INT41CON[6:4]對應(yīng)GPX1_1:EXT_INT41[10:8],對應(yīng)GPX1_2。WAKEUP_INT1[1])對應(yīng)的中斷使能和禁止為EXT_INT41_MASK[1]位,EXT_INT41_MASK[1]設(shè)置為0,表示允許中斷。CPU0中斷響應(yīng)總開關(guān)是ICCICR_CPU0。優(yōu)先級過濾寄存器是ICCPMR_CPUn(n=0~3)。ICDDCR是全局中斷使能寄存器,當(dāng)ICDDCR[0]為1時,GIC開始監(jiān)控中斷源,當(dāng)中斷條件滿足時給相應(yīng)CPU發(fā)中斷響應(yīng)信息。EINT9和EINT10分別是SPI25和SPI26,中斷ID號是57,58則對應(yīng)ICDIPTR14[15:8]和ICDIPTR14[23:16]。當(dāng)處理器完成某一種中斷,需要通過ICCEOIRCPUn(n=0~3)寄存器清除處理器該中斷狀態(tài)位3,EINT9和EINT10中斷ID是多少?是第幾個SPI中斷?EINT9和EINT10中斷ID號是57,584,EINT9和EINT10是第幾個SPI中斷?EINT9和EINT10是第SPI25和SPI26號中斷。第7章1,利用串口調(diào)試工具完成PC和Exynos4412互傳一個字符串。見書中實例。2,Exynos4412UART有幾種通信模式?三種,查詢,中斷和DMA.3,Exynos4412UART有幾個通道,每通道通信目的?Exynos4412提供了5個獨立的異步串行通信接口,每個接口都支持中斷或DMA模式。4,熟悉例子程序,學(xué)會Exynos4412UART編程。見書中實例。第8章1,熟悉ADCCON各位的含義及其用法ADC控制寄存器ADCCON各位的含義及其用法ADCCON位定義初值REX[16]ADC轉(zhuǎn)換分辨率選擇:0,10位輸出;1,12位輸出0ECFLG[15]AD轉(zhuǎn)換結(jié)束標志,0,AD轉(zhuǎn)換正在進行;1,AD轉(zhuǎn)換結(jié)束0PRSCVL[14]A/D轉(zhuǎn)換分頻值使用選擇:0,不使用預(yù)分頻值,1,使用預(yù)分頻值0xffPRSCVL[13:6]預(yù)分頻值PRSVL,取值19~2550保留[5:3]保留1READ_START[1]A/D轉(zhuǎn)換結(jié)束讀使能,0禁止讀,1=允許讀0ENABLE_START[0]啟動A/D轉(zhuǎn)換允許:0=無操作;1=啟動A/D轉(zhuǎn)換啟動后該位清00熟悉A/D轉(zhuǎn)換控制程序的編寫步驟。設(shè)置A/D轉(zhuǎn)換的時鐘頻率選通道動轉(zhuǎn)換判斷轉(zhuǎn)換是否結(jié)束令READ_START=1(ADCCON[1]=1),啟動讀功能3,學(xué)習(xí)并熟悉示例程序,在開發(fā)系統(tǒng)上實現(xiàn)A/D轉(zhuǎn)換實驗。見書中內(nèi)容。4,如何啟動一個A/D轉(zhuǎn)換和判斷A/D轉(zhuǎn)換結(jié)束。啟動轉(zhuǎn)換rADCCON=0x01;//啟動ADCWhile(rADCCON&0x01); //ADC啟動后該位自動清0判斷轉(zhuǎn)換是否結(jié)束While(rADCCON[15]&0x8000);//檢查ECFLG位是否為高第9章1,Exynos4412共有多少個DMA通道,其中內(nèi)存到內(nèi)存有幾個,內(nèi)存到外設(shè)幾幾個。Exynos4412共有24個DMA通道,其中內(nèi)存到內(nèi)存有8個,內(nèi)存到外設(shè)有16個2,簡述DMA工作過程。(1)當(dāng)外設(shè)準備就緒,向DMA控制器(DMAC)發(fā)出DMA請求信號(DREQ)。DMAC收到此信號后,向CPU發(fā)出總線請求信號(HOLD)。(2)CPU在完成當(dāng)前總線操作后立即對DMA請求信號做出響應(yīng)。DMAC獲得總線的控制權(quán)。(3)DMAC獲得總線的控制權(quán)后,向地址總線發(fā)出地址信號,指出傳送過程需使用的內(nèi)存地址。向外設(shè)發(fā)出DMA應(yīng)答信號(DACK),實現(xiàn)該外設(shè)與內(nèi)存之間的DMA傳送。(4)在DMA傳送期間,DMAC發(fā)出內(nèi)存和外設(shè)的讀/寫信號。(5)為了決定數(shù)據(jù)塊傳輸?shù)淖止?jié)數(shù),在DMAC內(nèi)部必須有一個“字節(jié)計數(shù)器”。在開始時,由軟件設(shè)置數(shù)據(jù)塊的長度,在DMA傳送過程中,每傳送一個字節(jié),字節(jié)計數(shù)器減1,減為0時,該次DMA傳輸結(jié)束。(6)?DMA過程結(jié)束時,DMAC向CPU發(fā)出結(jié)束信號(撤消HOLD請求),將總線控制權(quán)交還CPU。3,參見書中實例。4,用什么結(jié)構(gòu)完成1次DMA轉(zhuǎn)輸所需要的所用參數(shù)structdma_slave_config結(jié)構(gòu),完成1次DMA轉(zhuǎn)輸所需要的所用可能參數(shù)。structdma_slave_config{enudma_transfer_directiondirection;phys_addr_tsrc_addr;phys_addr_tdst_addr;enumdma_slave_buswidthsrc_addr_width;enumdma_slave_buswidthdst_addr_width;u32src_maxburst;u32dst_maxburst;u32src_port_window_size;u32dst_port_window_size;booldevice_fc;unsignedintslave_id;};第10章簡述PWM的工作原理及使用場合。假定用定時器控制在微處理器的I/O端口輸出周期為500μs的方波,一個周期中,高低電平各占250μs。人們把高電平占整個周期的時間比率稱為“占空比”,上面周期為500μs的方波的占空比為50%。用占空比可以改變的方波控制直流電機,就可以改變直流電機的輸入平均電壓,進而控制電機速度。占空比可以改變的方波叫作PWM。定時器的輸入頻率如何計算?定時器輸入時鐘頻率的計算公式如下:fTCLK=(fPCLK/(Prescaler+1))/分頻器其中,Prescaler為預(yù)定標值(0~255);分頻器(表8-3中的4選1開關(guān))的分頻值為2、PWM的輸出頻率和占空比如何計算?PWM輸出時鐘頻率=定時器輸入時鐘頻率(fTCLK)/定時器計數(shù)緩沖器值(TCNTBn)。PWM輸出占空比=定時器比較緩沖器值(TCMPBn)/定時器計數(shù)緩沖器值(TCNTBn)。什么是預(yù)定標器和分頻器?它們各有什么作用?定時器輸入時鐘頻率的計算公式如下:fTCLK=(fPCLK/(Prescaler+1))/分頻器其中,Prescaler為預(yù)定標值(0~255);分頻器(表8-3中的4選1開關(guān))的分頻值為2、4、8和16。如果已確定定時器TOUT的輸出頻率和輸入頻率,如何求定時器的初值?div=(PCLK/256/4)/freq; //求定時器的計數(shù)初值TCNTBrTCNTB0=div;PWM控制寄存器有幾個?這些寄存器各有什么作用?定時器配置寄存器0(TCFG0)的配置含義位描述初值保留[31:24]無0x00死區(qū)長度[23:16]單位是定時器0的1個計數(shù)長度0x00預(yù)定標器1[15:8]定時器2、3和4的定標值0x00預(yù)定標器2[7:0]定時器0、1的定標值0x00定時器配置寄存器1(TCFG1)的配置含義位描述初值DMA方式[23:20]選DMA通道:0000=全部中斷方式;0001:定時器0;0010:定時器1;0011:定時器2;0100:定時器3;0101:定時器4;0110,保留0000多路開關(guān)4[19:16]0000=1/2,0001=1/4,0010=1/8,0011=1/16,0100=外部時鐘0000多路開關(guān)3[15:12]0000=1/2,0001=1/4,0010=1/8,0011=1/16,0100=外部時鐘0000多路開關(guān)2[11:8]0000=1/2,0001=1/4,0010=1/8,0011=1/16,0100=外部時鐘0000多路開關(guān)1[7:4]0000=1/2,0001=1/4,0010=1/8,0011=1/16,0100=外部時鐘0000多路開關(guān)0[3:0]0000=1/2,0001=1/4,0010=1/8,0011=1/16,0100=外部時鐘0000分析實驗程序,說明定時器用到哪幾個I/O端口?各端口的作用是什么?本例使用定時器0的TOUT0,其對應(yīng)的引腳是GPD0_0,因此要對GPD0CON進行設(shè)置,使GPD0_0具有TOUT0功能第11章簡述看門狗電路的功能及其工作原理。嵌入式系統(tǒng)運行時若受到外部干擾或者發(fā)生系統(tǒng)錯誤,程序有時會出現(xiàn)“跑飛”,導(dǎo)致整個系統(tǒng)癱瘓。為了防止這一現(xiàn)象發(fā)生,在對系統(tǒng)穩(wěn)定性要求較高的場合往往要加入看門狗(Watchdog)電路??撮T狗的作用就是當(dāng)系統(tǒng)“跑飛”而進入死循環(huán)時,恢復(fù)系統(tǒng)的運行?;驹頌椋呵度胧娇刂葡到y(tǒng)的軟件結(jié)構(gòu)基本是一個循環(huán)結(jié)構(gòu),假設(shè)系統(tǒng)程序完整運行一個周期的時間為tp,選定1個定時器,定時周期為ti,且ti>tp,在程序正常運行tp周期中修改定時器的計數(shù)值1次,重新設(shè)定定時器的原定時間周期ti(俗稱“喂狗”)。只要程序正常運行,運行時間永遠不會達到ti,定時器就不會溢出。如果由于干擾等原因使系統(tǒng)不能在tp時段修改定時器的計數(shù)值,定時器就會在ti時刻溢出,引發(fā)定時器溢出中斷。在中斷程序中編寫代碼,修改PC值為0,可使系統(tǒng)再回到正常的循環(huán)結(jié)構(gòu)中,恢復(fù)系統(tǒng)的正常運行??撮T狗電路的輸入時鐘周期、看門狗的定時周期如何計算?輸入到計數(shù)器的時鐘周期:t_watchdog=1/(PCLK/(prescalervalue+1)/division_factor)看門狗電路的控制寄存器(WTCON)有哪些功能?看門狗定時器控制寄存器WTCON的定義WTCON位描述初值預(yù)定標值[15:8]有效值0~2550x80保留[7:6]必須為000看門狗電路使能[5]0=禁止;1=使能1時間分頻[4:3]00=1/16,01=1/32,10=1/64,11=1/12800中斷使能[2]0=禁止中斷,1=使能中斷0保留[1]必須為00復(fù)位功能[0]0=禁止看門狗復(fù)位,1=引發(fā)復(fù)位信號0簡述看門狗電路的數(shù)據(jù)寄存器(WTDAT)和計數(shù)器寄存器(WTCNT)的使用場合。作為常規(guī)定時器使用,并且可以產(chǎn)生中斷。作為看門狗定時器使用,期滿時,可以產(chǎn)生128個時鐘周期的復(fù)位信號。第12章1.Exynos4412RTC具有哪些特點?有以下特點:(1)時鐘數(shù)據(jù)采用BCD編碼或二進制表示。(2)能夠?qū)﹂c年的年、月、日進行自動處理。(3)具有告警功能,當(dāng)系統(tǒng)處于關(guān)機狀態(tài)時,能產(chǎn)生告警中斷。(4)具有獨立的電源輸入。(5)提供毫秒級的時鐘中斷(時鐘滴答中斷),該中斷可用于嵌入式系統(tǒng)的內(nèi)核時鐘。2.Exynos4412RTC控制寄存器(RTCCON)各位的定義是什么?如何使用?實時時鐘控制寄存器各位的定義RTCCON位定義初值TICEN[8]滴答功能使能,0=禁止;1=使能0CLKRST[3]實時時鐘計數(shù)器復(fù)位:=0,不復(fù)位;=1,復(fù)位0CNTSEL[2]BCD計數(shù)選擇:=0,BCD模式;=1,保留0CLKSEL[1]BCD時鐘選擇:=0,將輸入時鐘1/2分頻;=1,保留0RTCEN[0]RTC讀寫使能:0=禁止;1=允許0Exynos4412RTC時鐘寄存器有幾個?它們以什么格式表示?包括BCDSEC、BCDMIN、BCDHOUR、BCDHOUR、BCDDAYWEEK、BCDDAY、BCDMON、BCD、BCDYEAR、CURTICCNT。4.熟悉示例程序,學(xué)會修改時間。5.熟悉示例程序,學(xué)會讀取時間。6.如何在超級終端上按一定格式顯示讀取的時間。printf("year20%x:month%x:date%x:day%x",RTC.BCDYEAR,\RTC.BCDMON,\RTC.BCDDAY,\RTC.BCDWEEK);7.RTC滴答時鐘發(fā)生器有什么用途?如何使用?滴答時鐘計數(shù)器CURTICCNT主要用于需要在固定時間產(chǎn)生中斷的場合,滴答時鐘計數(shù)器中的值在每個滴答周期自動減1,減到0時產(chǎn)生中斷。第13章簡述I2C總線的原理及適用場合。I2C總線是由Philips公司開發(fā)的一種簡單、雙向二線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。這種總線的主要特點如下:(1)總線只有兩根線,即串行時鐘線(SCL)和串行數(shù)據(jù)線(SDA),這在設(shè)計中大大減少了硬件接口。(2)每個連接到總線上的器件都有一個用于識別的器件地址,器件地址由芯片內(nèi)部硬件電路和外部地址引腳同時決定,避免了片選線的連接方法,并建立了簡單的主從關(guān)系,每個器件既可作為發(fā)送器,又可作為接收器。(3)同步時鐘允許器件采用不同的波特率進行通信。(4)同步時鐘可作為停止或重新啟動串行口發(fā)送的握手信號。(5)串行數(shù)據(jù)傳輸位速率在標準模式下可達100kbps,在快速模式下可達400kbps,在高速模式下可達3.4Mbps。簡述I2C總線的讀/寫操作格式。(1)指定單元寫圖11-3所示的是以EEPROM為例,向總線寫一字節(jié)數(shù)據(jù)的過程。圖11-3I2C總線指定單元寫信號時序在圖11-3中,只給出寫一字節(jié)SDA的時序,當(dāng)SCL為高,SDA從高到低跳變時,啟動I2C。I2C向總線寫第一字節(jié)數(shù)據(jù),1010是器件的類型,表示EEPROM,LSB=0是寫命令,接到ACK應(yīng)答后,再發(fā)一字節(jié)數(shù)據(jù),該字節(jié)數(shù)據(jù)是EEPROM內(nèi)的單元地址,然后收到ACK后就可以向SDA線上串行寫入一字節(jié)數(shù)據(jù),再收到ACK,直接發(fā)高電平結(jié)束本次操作。(2)指定單元讀該操作從所選器件的內(nèi)部地址讀一字節(jié)數(shù)據(jù),格式如圖11-4所示。圖11-4I2C總線讀時序在圖11-4中,當(dāng)SCL為高,SDA從高到低跳變時,啟動I2C。I2C向總線寫第一字節(jié)數(shù)據(jù),1010是器件的類型,表示EEPROM,LSB=0是寫命令,接到ACK應(yīng)答后,再發(fā)一字節(jié)數(shù)據(jù),該字節(jié)數(shù)據(jù)是EEPROM內(nèi)的單元地址;接到ACK后,因為要從寫命令轉(zhuǎn)換為讀命令,所以I2C要重新啟動一次(控制/狀態(tài)寄存器IICSTAT[5]=1),并發(fā)一個讀命令,接到ACK后就可以從總線上讀數(shù)據(jù)了。I2C讀數(shù)據(jù)要比I2C寫數(shù)據(jù)多一個重新啟動過程。給出I2C控制寄存器的名稱和各位的定義。I2C控制寄存器(I2CCON)功能位描述初值A(chǔ)CK使能[7]0=禁止產(chǎn)生ACK信號,1=允許產(chǎn)生ACK信號0Tx時鐘選擇[6]=0,I2CCLK=PCLK/16;=1,I2CCLK=PCLK/5120Tx/Rx中斷使能[5]=0,禁止Tx/Rx中斷;=1,允許Tx/Rx中斷0清除中斷標記[4]不能對該位寫1,系統(tǒng)自動寫1時,I2CSCL被拉低,I2C傳輸停止。寫0,清除中斷標記,重新恢復(fù)中斷響應(yīng);讀出結(jié)果是1,正在執(zhí)行中斷程序,不能進行寫操作;讀出結(jié)果是0,沒有中斷發(fā)生0發(fā)送時鐘[3:0]發(fā)送時鐘分頻值:Tx_CLOCK=I2CCLK/(I2CCON[3:0]+1)不定第14章1.什么是SPI接口?它和I2C接口有什么相同點和不同點?SPI接口是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在EEPROM、Flash、實時時鐘、AD轉(zhuǎn)換器,以及數(shù)字信號處理器和數(shù)字信號解碼器之間。SPI接口在CPU和外圍低速器件之間進行同步串行數(shù)據(jù)傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,低位在后,為全雙工通信,數(shù)據(jù)傳輸速度總體來說比I2C總線要快,速度可達到數(shù)Mbps。SPI接口是以主從方式工作的,這種模式通常有一個主器件和一個或多個從器件。接口包括以下4種信號。MOSI:主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入。MISO:主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出。SCLK:時鐘信號,由主器件產(chǎn)生。4.:從器件使能信號,由主器件控制。在點對點通信中,SPI接口不需要進行尋址操作,且為全雙工通信,簡單高效。在多個從器件的系統(tǒng)中,每個從器件都需要獨立的使能信號,由于SPI接口比I2C總線多兩根信號線,因此硬件上比I2C系統(tǒng)要稍微復(fù)雜一些。2.SPI接口有哪些特性?SPI接口具有如下特性:1.與SPI接口協(xié)議v2.11兼容;2.8位/16位/32位用于發(fā)送的移位寄存器;3.8位/16位/32位用于接收的移位寄存器;4.查詢、中斷和DMA傳送模式。3.簡述SPI接口操作和編程的步驟。見書中編程實例。Exynos4412SPI支持的數(shù)據(jù)傳輸格式有幾種?各有什么特點?Exynos4412支持4種不同的數(shù)據(jù)傳輸格式,圖12-4所示的是具體的波形圖。圖12-4SPI數(shù)據(jù)傳輸格式在圖12-4中,(a)與(b)極性相同,但相序差一個相位;(a)與(c)相序相同,都是格式A,但極性相反;(b)與(d)相序相同,都是格式B,但極性相反。總之,在分析不同的數(shù)據(jù)傳輸格式時,如果SCK的靜止狀態(tài)為低電平,數(shù)據(jù)高電平傳輸(圖12-4中MSB從采樣到穩(wěn)定),CPOL=0,如圖12-4(a)和圖12-4(b)所示;如果SCK的靜止狀態(tài)為高電平,數(shù)據(jù)低電平傳輸,CPOL=1,如圖12-4(c)和圖12-4(d)所示。如果數(shù)據(jù)采樣時刻在第1個脈沖的上升沿或下降沿,在第2個脈沖的下降沿或上升沿輸出,CPHA=0,格式A,如圖12-4(a)和圖12-4(c)所示;如果數(shù)據(jù)采樣時刻在第2個脈沖的上升沿或下降沿,在第1個脈沖的下降沿或上升沿輸出,CPHA=1,格式B,如圖12-4(b)和圖12-4(d)所示。第15章簡述字符設(shè)備讀寫函數(shù)。讀文件用read();寫文件用write();熟悉驅(qū)動程序操作框架。structfile_operationsfs4412_dt_adc_fops={ .owner=THIS_MODULE, .open=fs4412_adc_open, .release=fs4412_adc_release, .read=fs4412_adc_read,};讀ADC文件,賦值給變量DATA。data=readl(adc_base+FS4412_ADCDAT)&0xfff;熟讀ADCmake文件,了解程序中命令含義。參見書13.3節(jié)內(nèi)容。第16章Linux支持的設(shè)備驅(qū)動可分為那幾類,其中字符設(shè)備的處理是以什么為單位來進行的。Linux支持的設(shè)備驅(qū)動可分為3類,字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。其中字符設(shè)備的處理是以字節(jié)為單位來進行的。Linux是通過什么形式對設(shè)備進行訪問,使用哪些函數(shù)來完成打開、讀寫、I/O控制等操作。Linux是通過文件形式對設(shè)備進行訪問,使用與文件I/O相同的函數(shù)來完成打開、讀寫、I/O控制等操作。驅(qū)動程序主要就是設(shè)計這些系統(tǒng)調(diào)用函數(shù)。Linux把設(shè)備文件放在什么目錄下,設(shè)備命名規(guī)律是什么。Linux把設(shè)備文件放在/dev目錄下,設(shè)備命名一般是“設(shè)備文件名+數(shù)字或字母”,如/DEV/hda1等。設(shè)備操作宏MAJOR(ddev)和MINOR(dev)可以獲得主次設(shè)備號。主要功能是什么。設(shè)備操作宏MAJOR(ddev)和MINOR(dev)可以獲得主次設(shè)備號。宏MKDEV(ma,mi)的功能是根據(jù)主設(shè)備號和次設(shè)備號來得到相應(yīng)dev,dev是kdev_t結(jié)構(gòu),它主要功能是保存設(shè)備號。設(shè)備驅(qū)動程序都有哪些共性,都要要完成什么任務(wù)。向系統(tǒng)申請主次設(shè)備號。實現(xiàn)設(shè)備初始化和卸載功能。設(shè)計設(shè)備文件操作,如定義file_operations結(jié)構(gòu)。設(shè)計設(shè)備文件操作調(diào)用,如讀寫等操作。實現(xiàn)中斷服務(wù)函數(shù),用requset_irq向內(nèi)核注冊。將驅(qū)動程序編譯到內(nèi)核或編譯成模塊,用ismod命令加載。生成設(shè)備節(jié)點文件。我們常用動態(tài)方法對設(shè)備驅(qū)動程序完成一些操作:加載在系統(tǒng)啟動時用ismod命令把驅(qū)動程序(.o文件)加到內(nèi)核去。卸載不需要時用rmmod來卸載內(nèi)核模塊。10.設(shè)備初始化向系統(tǒng)添加一個驅(qū)動程序相當(dāng)于添加一個主設(shè)備號,可以調(diào)用register_chrdev();實現(xiàn)。11.注銷一個驅(qū)動程序可以調(diào)用unregister();實現(xiàn)。12.打開文件用open();。13.關(guān)閉文件用close();。14.讀文件用read();。15.寫文件用write();。內(nèi)核模塊的加載和卸載:內(nèi)核模塊和和一般應(yīng)用程序主要不同是內(nèi)核模塊沒有主程序main()。內(nèi)核模塊加載用init_moddule(void);。讀懂LinuxLED驅(qū)動程序,熟悉一些函數(shù)的使用。第17章1,LinuxPWM驅(qū)動程序主要工作什么完成?(1)編寫設(shè)備驅(qū)動程序,將PWM底層控制工作編入LinuxPWM驅(qū)動程序文件操作框架中。(2)將PWM驅(qū)動程序文件框架結(jié)構(gòu)體(structjile_operation)注冊進內(nèi)核,并與驅(qū)動程序主設(shè)備號相關(guān)聯(lián)。(3)編譯設(shè)備驅(qū)動程序。(4)在/dev/目錄下,創(chuàng)建設(shè)備文件。(5)編寫和編譯測試程序,安裝PWM驅(qū)動程序,通過應(yīng)用程序測試PWM驅(qū)動程序。第18章什么是線程、什么是進程、什么是任務(wù)。任務(wù)是一個邏輯概念,指由一個軟件完成的一個目標,或是一系列軟件共同達到一個目的的操作。一個任務(wù)可以包括一個或多個完成獨立功能的子任務(wù)。這個完成獨立功能子任務(wù)的操作我們叫進程或線程。例如我們要沖一杯咖啡,可以包括燒水和研磨咖啡豆兩個獨立的工作過程。我們可以把燒水和研磨咖啡豆兩個獨立的工作過程叫兩個線程,或兩個進程。因此線程和進程分的不是很清楚,一般把輕量級的進程也叫線程。2,簡述進程的并發(fā)性,動態(tài)性,交互性,獨立性。并發(fā)性,如上面煮咖啡例子,燒水和研磨咖啡豆可同時進行。動態(tài)性,如上面煮咖啡例子,燒水和研磨咖啡豆狀態(tài)是變化的。交互性,指在進程中兩個進程要互相交流,例如考慮燒水和研磨咖啡豆進度,這就要增加處理機制。異步性,指燒水和研磨咖啡豆每個進程都是獨立進行,以不可知進度向前執(zhí)行。獨立性,指各個進程的地址空間是相互獨立的,只有采用特定的通信機制才可以實現(xiàn)不同進程間通信。3多線程創(chuàng)建函數(shù)是什么?多線程創(chuàng)建編程常用的3個基本函數(shù)包括:創(chuàng)建線程函數(shù)、等待線程的結(jié)束函數(shù)和終止線程函數(shù)。在調(diào)用它們前均要包括pthread.h頭文進程間通信主要涉及那三個概念。進程間通信主要涉及信號、消息隊列、共享內(nèi)存三個概念。 5,PS、Kill命令有什么作用?PS是常用的監(jiān)視進程命令。這個命令給出了有關(guān)進程的所有信息。PSaux用于顯示當(dāng)前系統(tǒng)上運行的所有進程的信息。如圖1Kill命令殺死某進程。第19章1,簡述TCP/IP的分層模型。網(wǎng)絡(luò)接口層(NetworkInterfaceLayer):網(wǎng)絡(luò)接口層是TCP/IP協(xié)議軟件的最底層,負責(zé)將二進制流轉(zhuǎn)換為數(shù)據(jù)幀,并進行數(shù)據(jù)幀的發(fā)送和接收。數(shù)據(jù)幀是網(wǎng)絡(luò)傳輸?shù)幕締卧?。網(wǎng)絡(luò)層(InternetLayer):網(wǎng)絡(luò)層負責(zé)在主機之間的通信中選擇數(shù)據(jù)報的傳輸路徑,即路由。傳輸層(TransportLayer):傳輸層負責(zé)提供應(yīng)用程序之間的通信服務(wù)。這種通信又稱為端到端通信。應(yīng)用層(ApplicationLayer):應(yīng)用層是分層模型的最高層,在這個最高層中,用戶調(diào)用應(yīng)用程序通過TCP/IP互聯(lián)網(wǎng)來訪問可行的服務(wù)。2,簡述UDP傳輸協(xié)議。UDP是一種面向無連接的不可靠傳輸協(xié)議,不需要通過3次握手來建立一個連接,同時,一個UDP應(yīng)用可同時作為應(yīng)用的客戶或服務(wù)器方。Linux中的網(wǎng)絡(luò)編程是通過socket接口來進行的。簡述套接字概念。套接字(socket)是一種特殊的I/O接口,它也是一種文件描述符。socket是一種常用的進程之間通信機制,通過它不僅能實現(xiàn)本地機器上的進程之間的通信,而且通過網(wǎng)絡(luò)能夠在不同機器上的進程之間進行通信。4,見書中內(nèi)容。第20章1,什么是Linux交叉開發(fā),什么是Linux嵌入式開發(fā)在宿主機上開發(fā),在目標機上運行的開發(fā)模式我們叫Linux交叉開發(fā),簡稱交叉開發(fā)。把開發(fā)環(huán)境都放在目標機上的開發(fā)模式我們叫Linux嵌入式開發(fā),簡稱嵌入式開發(fā)。2,在Linux開發(fā)中共享文件夾有什么作用?共享文件夾非常重要,這里共享是指windows系統(tǒng)和Linux系統(tǒng)共享。因此該文件夾是windows系統(tǒng)和Linux系統(tǒng)相互聯(lián)系的橋梁。在windows系統(tǒng)下我們寫入該文件夾的程序、文件在Linux系統(tǒng)相應(yīng)文件夾中可以看到和使用。3,熟悉Linux開發(fā)中網(wǎng)絡(luò)適配器設(shè)置。見文件中內(nèi)容。熟悉USB變串口操作。打開CH340,點擊驅(qū)動安裝,系統(tǒng)就會自動安裝,一般都會安轉(zhuǎn)成功。此時我們要打開windows設(shè)備管理器,看一下增加的串口是那個,要記住這個串口號。4確認開發(fā)板相關(guān)信息。SOC,Arch,CPU,Vendor,Samsung0.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論