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

電子工程網

標題: 看你會多少 記2018的一次嵌入式底層面試 [打印本頁]

作者: 技術小白    時間: 2018-7-1 10:14
標題: 看你會多少 記2018的一次嵌入式底層面試
面試某公司嵌入式底層,由于還在上班,所以是電話面試。原本以為會考很難的題目,但是問的都很基礎。有些自己明明懂的也蒙圈了,所以有必要做個記錄。      
1、自我介紹。
答:-------------------

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

注:在跳轉到內核之前,要滿足CPU出在SVC模式下。

2、對cp15協處理器進行設置,這里主要是關閉MMU和cache

3、進入到板級初始化階段,這里會進行時鐘、內存、串口的初始化。最后還要關閉看門狗。

4、接下來就是設置棧,為c語言準備運行環境,調用board_init_f,填充gd結構體。

5、對代碼重定位,搬運到內存中去,搬運之后,跳轉到內存中去執行board_init_r,這里就可以開啟cache了,當然也可以不開啟。然后初始化其他設備。比如flash、網卡、emmc等。初始化完之后,在執行main_loop

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

注:Dcache只能在MMU開啟之后使用,因為沒有MMU就沒法完成虛實地址映射,也就不能索引Dcache了。

4、nandflash和norflash的區別,對norflash的操作方式的理解
答:兩種芯片的結構不同 NORflash之所以可以片內執行,就是因為他符合CPU去指令譯碼執行的要求。CPU送一個地址出來,NORflash就能給一個數據讓CPU執行,中間不需要額外的處理操作。   

NAND flash不一樣是因為nandflash有地址,數據,命令共用IO口的問題,cpu把地址發出來之后,并不能直接得到數據,還需要控制線的操作才能完成。就是他沒有專用的SRAM接口。

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

5、uboot怎么傳參給內核的
答: 簡單的講,uboot利用函數指針及傳參規范,它將
R0: 0x0
R1: 機器號
R2: 參數地址
三個參數傳遞給內核。
其中,R2寄存器傳遞的是一個指針,這個指針指向一個TAG區域。

6、linux怎么進行內存管理
早期計算機中,由于應用程序比較小,可以直接在物理內存中運行,但現在計算機里面程序那么多又那么大,所以就需要對內存進行管理。
1、對內存的分配和管理,也就是平時應用層malloc和內核層vmalloc、kmalloc之類的內存申請的管理。

2、虛擬內存和物理內存之間的轉換。

7、說說進程和線程的區別
答:  簡單的來說,一個程序至少有一個進程,一個進程至少有一個線程。

第一點、進程有自己的獨立地址空間,每啟動一個進程,系統就會為它分配地址空間,建立數據表來維護代碼段、堆棧段和數據段,這種操作非常昂貴。而線程是共享進程中的數據的,使用相同的地址空間,因此CPU切換一個線程的花費遠比進程要小很多,同時創建一個線程的開銷也比進程要小很多。

但這樣帶來的缺點就是,多線程程序只要有一個線程掛掉了,那么整個進程也就掛掉了,而進程則不會影響另外一個進程,它有自己的獨立地址空間。

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

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

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

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

9、在應用層調用一個read,是怎么傳到內核中去的,流程是啥。
答:     應用程序通過系統調用進入內核,然后 (這個回答的比較亂。。。)

10、ext4的文件系統單層目錄可以創建多少文件?

答:按網上查資料來看:Ext3 目前只支持 32,000 個子目錄,而 Ext4 本身支持無限數量的子目錄

11、創建一個文件的時候,會創建一個怎么樣的節點。

答:一個文件被創建后至少要占用一個inode和一個block

12、進程有幾種狀態
一般來說,進程有三個狀態,即就緒狀態,運行狀態,阻塞狀態

總結:fork一個進程之后,進程加入隊列,處在就緒態,等待被調用,此時如果得到運行就進入運行態,這時如果遇到阻塞狀態就進入等待態等待再條件滿足后再次進入就緒態,如果運氣不好,在運行態時直接被結束了,就進入了僵尸態,如果被信號給終止了,就進入停止態。

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







歡迎光臨 電子工程網 (http://m.qingdxww.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 奇米一二区 | 黑人又大又粗猛烈 | 天堂亚洲欧美日韩一区二区 | 美女天天操 | 国产91精品新入口 | www.噜噜噜| 欧美视频在线观看第一页 | 天堂网www在线观看 天堂网www在线 | 香蕉视频成人在线观看 | 大伊人青草狠狠久久 | 精品亚洲456在线播放 | 欧美日韩在线国产 | 一级片在线免费看 | 亚洲欧美日韩国产 | 天天五月天丁香婷婷深爱综合 | 欧美一区二区三区四区视频 | 国产麻豆精品 | 456亚洲人成影视在线观看 | 亚洲综合偷自成人网第页色 | 韩国av片永久免费 | 欧美videos另类精品 | 搞黄网站在线观看 | 亚洲国产精品日韩高清秒播 | 原千岁超溺爱中文字幕 | 久久精品国产91久久麻豆自制 | 香蕉视频一区二区 | 亚洲欧美国产精品第1页 | 两个人在线观看完整 | 日日噜噜夜夜狠狠视频欧美人 | 99免费在线视频 | a毛片免费在线观看 | 国产一区二区三区在线免费 | 四虎国产精品高清在线观看 | 欧美日韩一区二区三区在线观看 | 国产精品一区二区不卡的视频 | 欧美大片在线观看 | 九九热视频这里只有精品 | 欧美视频日韩专区午夜 | 欧美日韩视频一区二区 | 在线免费观看日本视频 | 黄色视屏免费观看 |