計算機三級(嵌入式系統(tǒng)開發(fā)技術)機試模擬試卷(含答案)_第1頁
計算機三級(嵌入式系統(tǒng)開發(fā)技術)機試模擬試卷(含答案)_第2頁
計算機三級(嵌入式系統(tǒng)開發(fā)技術)機試模擬試卷(含答案)_第3頁
計算機三級(嵌入式系統(tǒng)開發(fā)技術)機試模擬試卷(含答案)_第4頁
計算機三級(嵌入式系統(tǒng)開發(fā)技術)機試模擬試卷(含答案)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機三級(嵌入式系統(tǒng)開發(fā)技術)機試模擬試卷(含答案)一、選擇題(每題1分,共20分)1.在ARMCortexM3內(nèi)核中,NVIC最多可支持多少個外部中斷?A.32??B.64??C.128??D.240答案:D解析:CortexM3的NVIC設計最大支持240個外部中斷源,編號16~255,0~15為系統(tǒng)異常。2.下列哪條ARM指令可在一條指令內(nèi)完成“讀取修改寫回”操作?A.LDR??B.STR??C.LDM??D.LDREX答案:D解析:LDREX/STREX構成獨占訪問對,可在多核環(huán)境下實現(xiàn)原子“讀改寫”。3.在μC/OSII中,使最高優(yōu)先級就緒任務立即獲得CPU的運行調(diào)度器函數(shù)是:A.OS_Sched()??B.OSIntExit()??C.OSSchedLock()??D.OSStart()答案:A解析:OS_Sched()完成就緒表查詢及上下文切換,是任務級調(diào)度入口;OSIntExit()僅在中斷尾調(diào)用。4.某32位MCU的GPIO寄存器偏移為0x00(MODER)、0x04(OTYPER),若MODER位域每2位控制1個引腳,則端口最多可管理:A.8??B.16??C.32??D.64答案:B解析:32位寄存器,每2位對應1引腳,共16組,故16個引腳。5.I2C總線啟動條件正確的波形順序為:A.SCL高電平期間SDA下降沿??B.SCL低電平期間SDA下降沿C.SCL高電平期間SDA上升沿??D.SDA固定低電平后SCL拉高答案:A解析:I2C啟動條件定義為SCL=1時SDA出現(xiàn)下降沿。6.在Linux內(nèi)核中,用于將高分辨率定時器轉換為內(nèi)核jiffies的宏是:A.jiffies_to_msecs()??B.msecs_to_jiffies()??C.timespec_to_jiffies()??D.ns_to_jiffies()答案:B解析:msecs_to_jiffies()把毫秒數(shù)轉換成jiffies值,常用于超時計算。7.下列關于CAN報文標識符的描述,錯誤的是:A.標準幀11位,擴展幀29位??B.標識符值越小優(yōu)先級越高C.遠程幀RTR=1??D.數(shù)據(jù)幀與遠程幀可用同一ID答案:D解析:同一ID不能同時存在數(shù)據(jù)幀與遠程幀,否則總線仲裁失敗。8.在STM32CubeMX中配置FreeRTOS時,若將configTOTAL_HEAP_SIZE設為12kB,系統(tǒng)可用的動態(tài)對象包括:A.任務控制塊、隊列、信號量??B.僅任務棧??C.僅隊列??D.僅用戶malloc答案:A解析:FreeRTOS的heap_x.c方案中,總堆尺寸覆蓋TCB、隊列、信號量、事件組等內(nèi)核對象。9.采用8N1格式的UART,每幀10位,波特率115200,則理論最大有效數(shù)據(jù)吞吐率為:A.11.52kB/s??B.10.24kB/s??C.9.216kB/s??D.12.8kB/s答案:C解析:115200÷10×0.8=9216B/s=9.216kB/s。10.在CortexM系列中,用于實現(xiàn)“非特權級線程模式”的寄存器控制位位于:A.CONTROL[0]??B.CONTROL[1]??C.PRIMASK??D.FAULTMASK答案:A解析:CONTROL[0]=0表示特權級,=1表示非特權級線程模式。11.若某ADC為12位單端,參考電壓3.3V,則量化步長為:A.0.8mV??B.0.805mV??C.0.825mV??D.0.75mV答案:B解析:3.3V÷4096≈0.805mV。12.在BSP開發(fā)中,用于將物理地址0x40021000映射為指針的宏定義最佳實踐是:A.definePERIPH((volatileunsignedlong)0x40021000UL)B.definePERIPH(((unsignedlong)0x40021000))C.definePERIPH0x40021000D.definePERIPH((volatileunsignedlong)0x40021000)答案:A解析:volatile+UL+指針解引用,確保編譯器不優(yōu)化且地址寬度正確。13.在嵌入式GUI中,雙緩沖技術主要解決:A.閃屏??B.顏色失真??C.觸控漂移??D.分辨率不足答案:A解析:雙緩沖通過后臺繪制、整體切換,消除屏幕刷新閃爍。14.下列關于看門狗的描述,正確的是:A.獨立看門狗可由軟件關閉??B.窗口看門狗在“禁止區(qū)”喂狗會復位C.看門狗時鐘源必須為LSI??D.看門狗復位屬于軟件復位答案:B解析:窗口看門狗在上下窗口之外喂狗觸發(fā)復位;獨立看門狗一旦啟用部分芯片不可關閉。15.在CMSISDSP庫中,完成16位定點向量乘加并累加的函數(shù)是:A.arm_mult_q15()??B.arm_dot_prod_q15()??C.arm_conv_q15()??D.arm_fir_q15()答案:B解析:arm_dot_prod_q15()實現(xiàn)向量點乘,即乘加并累加。16.若某任務堆棧生長方向為“向下”,則在上下文保存時,SP應:A.先減后存??B.先存后減??C.不變??D.加后存答案:A解析:向下生長棧,壓棧時SP自減,再寫入數(shù)據(jù)。17.在Linux設備樹中,用于聲明“中斷號+觸發(fā)類型”的屬性是:A.interruptsextended??B.interruptparent??C.interrupts??D.interruptmap答案:C解析:interrupts屬性列出中斷號與觸發(fā)標志,如<422>表示SPI42,下降沿。18.下列關于DMA的描述,錯誤的是:A.可減輕CPU負載??B.循環(huán)模式無需重新配置??C.雙緩沖需兩個不同地址??D.一次傳輸只能搬一個字節(jié)答案:D解析:DMA可設字節(jié)、半字、字,突發(fā)長度可達16beat。19.在CortexM4中,開啟FPU后,浮點寄存器組LazyStacking由哪個寄存器控制?A.CPACR??B.FPCCR??C.FPSCR??D.FPEXC答案:B解析:FPCCR.LSPEN位允許LazyStacking,減少中斷延遲。20.若某Flash頁大小2kB,擦除時間20ms,寫入時間1ms/256B,則順序?qū)懭?kB并校驗所需最短時間為:A.52ms??B.48ms??C.44ms??D.36ms答案:A解析:8kB÷2kB=4頁,擦除4×20=80ms;寫入8×1=8ms;共88ms,但擦寫可部分重疊,硬件流水線最小52ms。二、填空題(每空2分,共20分)21.在ARM匯編中,將立即數(shù)0x12345678加載到R0的偽指令是【LDRR0,=0x12345678】。22.若系統(tǒng)時鐘72MHz,預分頻系數(shù)71,則SysTick定時器1ms中斷的LOAD寄存器值為【720001】。23.在FreeRTOS中,將任務置于阻塞態(tài)的最長時間參數(shù)若為portMAX_DELAY,則其底層值等于【0xFFFFFFFF】。24.I2C總線中,當從機無法繼續(xù)接收數(shù)據(jù)時,應在第9個時鐘周期拉低【SDA】線實現(xiàn)ACK拉低。25.某CRC32多項式為0x04C11DB7,其正常位序表示為【0xEDB88320】(反轉)。26.在Linux內(nèi)核模塊中,用于聲明GPL許可證的宏是【MODULE_LICENSE("GPL")】。27.若CAN節(jié)點位時間設為8tq,其中同步段1tq,傳播段3tq,相位緩沖段1為3tq,相位緩沖段2為1tq,則采樣點位于【87.5】%。28.在CMSISCore中,設置優(yōu)先級分組為2,則搶占位占【2】位,子優(yōu)先級位占【2】位。29.將模擬信號帶寬限制在采樣頻率一半以內(nèi)的濾波器稱為【抗混疊】濾波器。30.在STM32HAL庫中,啟動ADCDMA轉換的函數(shù)是【HAL_ADC_Start_DMA()】。三、程序閱讀題(每題5分,共15分)31.閱讀下列代碼,指出輸出結果:```cinclude<stdint.h>__attribute__((naked))voidtest(void){__asmvolatile("movr0,5\n""movr1,3\n""subsr0,r0,r1\n""bxlr\n");}intmain(){intret=test();printf("%d\n",ret);}```答案:2解析:naked函數(shù)無開場/epilogue,返回值由R0傳遞,subs結果2存入R0。32.以下FreeRTOS代碼片段中,當vTaskDelayUntil()步長為10ms時,實際周期可能大于10ms,原因是:```cTickType_txLastWake=xTaskGetTickCount();for(;;){do_work();vTaskDelayUntil(&xLastWake,pdMS_TO_TICKS(10));}```答案:do_work()執(zhí)行時間若超過10ms,則xLastWake已過期,vTaskDelayUntil()會立即返回,導致周期累加漂移。解析:vTaskDelayUntil()為絕對阻塞,若當前tick已大于xLastWake+10,則補償0,造成“追趕”現(xiàn)象,周期變大。33.閱讀STM32HAL代碼,指出錯誤并改正:```cHAL_ADC_Start(&hadc1);uint32_tval=HAL_ADC_GetValue(&hadc1);```答案:缺少等待轉換完成,應插入`HAL_ADC_PollForConversion(&hadc1,1);`再讀取。解析:Start僅啟動,未等待EOC,讀取值可能為舊數(shù)據(jù)。四、編程填空題(每空3分,共15分)34.在CortexM3上利用systick實現(xiàn)微秒延時,系統(tǒng)時鐘48MHz,完成下列函數(shù):```cvoiddelay_us(uint32_tn){SysTick>LOAD=(①481)n;SysTick>VAL=0;SysTick>CTRL=0x5;while(!(SysTick>CTRL&(②0x00010000)));SysTick>CTRL=0;}```答案:①48?②0x00010000(COUNTFLAG)解析:48MHz即1μs=48周期,COUNTFLAG置位表示計數(shù)到0。35.在裸機環(huán)境下,將GPIOA_PIN5配置為TIM2_CH1PWM輸出,缺失寄存器:```cRCC>APB1ENR|=RCC_APB1ENR_TIM2EN;RCC>AHB1ENR|=RCC_AHB1ENR_GPIOAEN;GPIOA>MODER&=~(③0x3<<10);GPIOA>MODER|=(④0x2<<10);GPIOA>AFR[0]|=(⑤1<<20);```答案:③0x3?④0x2?⑤1解析:MODER10:11清零后設AF,AFR選擇AF1即TIM2。五、設計題(共30分)36.(10分)某工業(yè)節(jié)點需通過RS485總線實現(xiàn)“一主多從”通信,波特率38400,8N1,協(xié)議要求每幀11字節(jié),主站輪詢周期≤50ms,從站數(shù)量最多多少?給出計算過程。答案:每幀位數(shù):11×10=110bit總線往返時間:110bit÷38400≈2.87ms主站發(fā)+從站答共兩幀:2×2.87≈5.74ms預留5%余量:5.74×1.05≈6ms50ms÷6ms≈8.3,向下取整得8個從站。解析:RS485半雙工,主從各發(fā)一幀,需考慮turnarounddelay。37.(10分)基于STM32F407實現(xiàn)“雙緩沖DMA+DAC”產(chǎn)生正弦波,頻率1kHz,點數(shù)256,系統(tǒng)時鐘168MHz,APB1=42MHz,求:(1)DAC觸發(fā)定時器預分頻與周期;(2)DMA傳輸完成一半中斷服務應完成哪些操作?答案:(1)1kHz對應256點,定時器頻率=1kHz×256=256kHz定時器時鐘=42MHz,分頻系數(shù)=42M÷256k=164.0625→取164實際頻率=42M÷164≈256.097kHz周期寄存器ARR=256.097k/256k≈1→ARR=1(2)半傳輸中斷將“后臺緩沖區(qū)”填充下一周期數(shù)據(jù),防止輸出斷裂。解析:雙緩沖需維護兩個256半?yún)^(qū),半傳中斷填充已完成區(qū),全傳中斷填充另一半。38.(10分)在Linux+BusyBox環(huán)境下,需將一段物理地址0x20000000、長度1MiB的SRAM映射為用戶空間設備節(jié)點/dev/sram,請寫出關鍵步驟與代碼框架。答案:1.設備樹新增:```dtssram:sram@20000000{compatible="mmiosram";reg=<0x200000000x100000>;};```2.內(nèi)核配置CONFIG_MISC_FILESYSTEMS=y,啟用sram驅(qū)動。3.驅(qū)動模塊使用`mmap()`:```cstaticintsram_mmap(structfilefilp,structvm_area_structvma){vma>vm_page_prot=pgprot_noncached(vma>vm_page_prot);returnremap_pfn_range(vma,vma>vm_start,0x20000,vma>vm_endvma>vm_start,vma>vm_page_prot);}```4.用戶空間打開/dev/sram,mmap后直接訪問。解析:非緩存映射確保讀寫一致,pgprot_noncached防止CPUcache不一致。六、綜合應用題(共30分)39.(15分)某物聯(lián)網(wǎng)終端采用ESP32C3,需通過WiFiMQTT上傳溫度,要求:(1)深度睡眠期間RTC內(nèi)存保持數(shù)據(jù);(2)喚醒后5s內(nèi)完成連接+發(fā)布;(3)平均電流<50μA@3.7V。給出硬件與軟件低功耗設計要點,并估算電池壽命(2000mAh)。答案:硬件:使用RTC_SLOW_CLK內(nèi)部150kHz,關閉8MHzRC;外圍傳感器供電由MOS管控制,睡眠關斷;選用DCDCPMU,靜態(tài)功耗2μA。軟件:利用ESPIDF的lightsleep+RTCmemory保存MQTTClientID;連接階段使用快速掃描+緩存信道;發(fā)布完成后立即調(diào)用esp_deep_sleep(300s)。功耗預算:活躍:WiFi發(fā)射峰值200mA,持續(xù)3s,平均60mA;睡眠:RTC+RTCmemory10μA;平均電流=(60mA×3s+10μA×297s)/300s≈0.6mA;實際需更細:2000mAh÷0.6mA≈138天,滿足<50

溫馨提示

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

評論

0/150

提交評論