国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 1809|回復(fù): 0
打印 上一主題 下一主題

看你會(huì)多少 記2018的一次嵌入式底層面試

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2018-7-1 10:14:32 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: 嵌入式底層、面試
面試某公司嵌入式底層,由于還在上班,所以是電話面試。原本以為會(huì)考很難的題目,但是問的都很基礎(chǔ)。有些自己明明懂的也蒙圈了,所以有必要做個(gè)記錄。      
1、自我介紹。
答:-------------------

2、請(qǐng)問uboot啟動(dòng)過程都做了些什么?
答:
1、cpu剛開始初始化的時(shí)候,還未設(shè)置棧,所以先使用匯編代碼,構(gòu)建異常項(xiàng)鏈表,然后設(shè)置cpu為svc(特權(quán))模式,同時(shí)關(guān)閉FIQ和IRQ(防止突發(fā)中斷程序跑飛了)

注:在跳轉(zhuǎn)到內(nèi)核之前,要滿足CPU出在SVC模式下。

2、對(duì)cp15協(xié)處理器進(jìn)行設(shè)置,這里主要是關(guān)閉MMU和cache

3、進(jìn)入到板級(jí)初始化階段,這里會(huì)進(jìn)行時(shí)鐘、內(nèi)存、串口的初始化。最后還要關(guān)閉看門狗。

4、接下來就是設(shè)置棧,為c語言準(zhǔn)備運(yùn)行環(huán)境,調(diào)用board_init_f,填充gd結(jié)構(gòu)體。

5、對(duì)代碼重定位,搬運(yùn)到內(nèi)存中去,搬運(yùn)之后,跳轉(zhuǎn)到內(nèi)存中去執(zhí)行board_init_r,這里就可以開啟cache了,當(dāng)然也可以不開啟。然后初始化其他設(shè)備。比如flash、網(wǎng)卡、emmc等。初始化完之后,在執(zhí)行main_loop

3、為什么uboot要關(guān)掉cache?
答: 根據(jù)cache的定位可以看出來,它是用來加快cpu從內(nèi)存中取出指令的速度,但我們都知道,在設(shè)備上電之初,我們的內(nèi)存初始化比較慢一拍,當(dāng)cpu初始化了,但內(nèi)存還沒準(zhǔn)備好之后,就對(duì)內(nèi)存進(jìn)行數(shù)據(jù)讀,那么勢必會(huì)造成了指令取址異常,系統(tǒng)就會(huì)掛了。所以,在u-boot的上電之初,就得關(guān)閉掉數(shù)據(jù)cache,指令的cache關(guān)閉與不關(guān)閉沒有太大的關(guān)系。

注:Dcache只能在MMU開啟之后使用,因?yàn)闆]有MMU就沒法完成虛實(shí)地址映射,也就不能索引Dcache了。

4、nandflash和norflash的區(qū)別,對(duì)norflash的操作方式的理解
答:兩種芯片的結(jié)構(gòu)不同 NORflash之所以可以片內(nèi)執(zhí)行,就是因?yàn)樗螩PU去指令譯碼執(zhí)行的要求。CPU送一個(gè)地址出來,NORflash就能給一個(gè)數(shù)據(jù)讓CPU執(zhí)行,中間不需要額外的處理操作。   

NAND flash不一樣是因?yàn)閚andflash有地址,數(shù)據(jù),命令共用IO口的問題,cpu把地址發(fā)出來之后,并不能直接得到數(shù)據(jù),還需要控制線的操作才能完成。就是他沒有專用的SRAM接口。

嵌入式系統(tǒng)中代碼的執(zhí)行方式主要有3種:
完全映射\按需分頁\eXecute In Place (XIP)片上執(zhí)行。

5、uboot怎么傳參給內(nèi)核的
答: 簡單的講,uboot利用函數(shù)指針及傳參規(guī)范,它將
R0: 0x0
R1: 機(jī)器號(hào)
R2: 參數(shù)地址
三個(gè)參數(shù)傳遞給內(nèi)核。
其中,R2寄存器傳遞的是一個(gè)指針,這個(gè)指針指向一個(gè)TAG區(qū)域。

6、linux怎么進(jìn)行內(nèi)存管理
早期計(jì)算機(jī)中,由于應(yīng)用程序比較小,可以直接在物理內(nèi)存中運(yùn)行,但現(xiàn)在計(jì)算機(jī)里面程序那么多又那么大,所以就需要對(duì)內(nèi)存進(jìn)行管理。
1、對(duì)內(nèi)存的分配和管理,也就是平時(shí)應(yīng)用層malloc和內(nèi)核層vmalloc、kmalloc之類的內(nèi)存申請(qǐng)的管理。

2、虛擬內(nèi)存和物理內(nèi)存之間的轉(zhuǎn)換。

7、說說進(jìn)程和線程的區(qū)別
答:  簡單的來說,一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程。

第一點(diǎn)、進(jìn)程有自己的獨(dú)立地址空間,每啟動(dòng)一個(gè)進(jìn)程,系統(tǒng)就會(huì)為它分配地址空間,建立數(shù)據(jù)表來維護(hù)代碼段、堆棧段和數(shù)據(jù)段,這種操作非常昂貴。而線程是共享進(jìn)程中的數(shù)據(jù)的,使用相同的地址空間,因此CPU切換一個(gè)線程的花費(fèi)遠(yuǎn)比進(jìn)程要小很多,同時(shí)創(chuàng)建一個(gè)線程的開銷也比進(jìn)程要小很多。

但這樣帶來的缺點(diǎn)就是,多線程程序只要有一個(gè)線程掛掉了,那么整個(gè)進(jìn)程也就掛掉了,而進(jìn)程則不會(huì)影響另外一個(gè)進(jìn)程,它有自己的獨(dú)立地址空間。

第二點(diǎn)、線程之間的通信更方便,同一進(jìn)程下的線程共享全局變量、靜態(tài)變量等數(shù)據(jù),而進(jìn)程之間的通信需要以通信的方式(IPC)進(jìn)行。

8、進(jìn)程間通信都有些什么?
答:     1、無名管道通信
內(nèi)核維護(hù)一塊內(nèi)存,有讀端和寫端。只能在具有親緣關(guān)系的進(jìn)程間使用。進(jìn)程的親緣關(guān)系通常是指父子進(jìn)程關(guān)系。

2、有名管道通信
內(nèi)核維護(hù)一塊內(nèi)存,表現(xiàn)形式為一個(gè)有名字的文件。傳輸方式:半雙工
3、消息隊(duì)列通信
4、信號(hào)量通信
5、信號(hào)     信號(hào)量是一個(gè)計(jì)數(shù)器,可以用來控制多個(gè)進(jìn)程對(duì)共享資源的訪問。它常作為一種鎖機(jī)制,防止某進(jìn)程正在訪問共享資源時(shí),其他進(jìn)程也訪問該資源。因此,主要作為進(jìn)程間以及同一進(jìn)程內(nèi)不同線程之間的同步手段。
6、共享內(nèi)存通信
7、套接字通信

套接口也是一種進(jìn)程間通信機(jī)制,與其他通信機(jī)制不同的是,它可用于不同機(jī)器間的進(jìn)程通信。

9、在應(yīng)用層調(diào)用一個(gè)read,是怎么傳到內(nèi)核中去的,流程是啥。
答:     應(yīng)用程序通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核,然后 (這個(gè)回答的比較亂。。。)

10、ext4的文件系統(tǒng)單層目錄可以創(chuàng)建多少文件?

答:按網(wǎng)上查資料來看:Ext3 目前只支持 32,000 個(gè)子目錄,而 Ext4 本身支持無限數(shù)量的子目錄

11、創(chuàng)建一個(gè)文件的時(shí)候,會(huì)創(chuàng)建一個(gè)怎么樣的節(jié)點(diǎn)。

答:一個(gè)文件被創(chuàng)建后至少要占用一個(gè)inode和一個(gè)block

12、進(jìn)程有幾種狀態(tài)
一般來說,進(jìn)程有三個(gè)狀態(tài),即就緒狀態(tài),運(yùn)行狀態(tài),阻塞狀態(tài)

總結(jié):fork一個(gè)進(jìn)程之后,進(jìn)程加入隊(duì)列,處在就緒態(tài),等待被調(diào)用,此時(shí)如果得到運(yùn)行就進(jìn)入運(yùn)行態(tài),這時(shí)如果遇到阻塞狀態(tài)就進(jìn)入等待態(tài)等待再條件滿足后再次進(jìn)入就緒態(tài),如果運(yùn)氣不好,在運(yùn)行態(tài)時(shí)直接被結(jié)束了,就進(jìn)入了僵尸態(tài),如果被信號(hào)給終止了,就進(jìn)入停止態(tài)。

13、對(duì)內(nèi)核各種鎖的了解
內(nèi)核鎖
1、原子操作(atomic):
2、自旋鎖(spinlock/spinlock_irqsave):
3、讀寫自旋鎖(rwlock):
4、順序自旋鎖(seqlock):
5、RCU(讀-拷貝-更新):
6、信號(hào)量(semaphore):
7、讀寫信號(hào)量:
信盈達(dá)免費(fèi)試聽C語言、電子、PCB、STM32、Linux、FPGA、Python等課程。
想學(xué)習(xí)的你和我聯(lián)系預(yù)約就可以免費(fèi)聽課了。宋工Q35--24-65--90-88   Tel/WX:173--17--95--19--08


本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 性视频久久 | 69国产成人综合久久精品91 | 我们不能是朋友电视剧免费观看 | 窝窝影院午夜色在线视频 | 在线看欧美 | a毛片在线还看免费网站 | 日韩精品一区二区三区中文字幕 | 国产尤物二区三区在线观看 | 国产一区二三区 | 国产又色 | 亚洲成人黄色 | 日韩成人免费 | 一区二区三区亚洲视频 | 99re这里只有精品国产精品 | 失乐园在线 | 精品香蕉在线观看免费 | 国产麻豆精品免费视频 | 香蕉视频在线看 | 欧美日韩国产在线播放 | 久爱www成人网免费视频 | 亚洲一区二区三区不卡在线播放 | 69视频在线下载 | 久久9966e这里只有精品 | 精品一区二区在线欧美日韩 | 国产在线观看午夜不卡 | 天天摸天天摸色综合舒服网 | 久久免费特黄毛片 | 国产精品国产三级国产在线观看 | 亚洲不卡免费视频 | 日韩一区二区在线免费观看 | 黄色视屏免费在线观看 | 色人久久 | 能免费观看的韩剧 | 九九热视频精品在线观看 | 欧美地区一二三区 | 久插视频 | 欧美性插视频 | 国产精品成人va在线观看 | a看片 | 视频网站免费看 | 在线免费观看色视频 |