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

查看: 1808|回復: 0
打印 上一主題 下一主題

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

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2018-7-1 10:14:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
面試某公司嵌入式底層,由于還在上班,所以是電話面試。原本以為會考很難的題目,但是問的都很基礎。有些自己明明懂的也蒙圈了,所以有必要做個記錄。      
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語言電子PCBSTM32LinuxFPGA、Python等課程。
想學習的你和我聯系預約就可以免費聽課了。宋工Q35--24-65--90-88   Tel/WX:173--17--95--19--08


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 最新亚洲精品 | gay80岁帅老头毛都白了 | 亚洲一级毛片在线观 | 欧美黄色片网站 | 成人久草 | 男人天堂新 | 99re8在线这里只有精品 | 久久久这里只有精品加勒比 | 产国语一级特黄aa大片 | 国产亚洲欧美一区二区三区 | 日韩毛片最新看 | 香蕉久人久人青草青草 | 国产日韩久久久久69影院 | 污污的免费网站 | 一区二区高清在线观看 | 韩国一级大片 | 日本在线高清不卡 | 国产精品自在线拍 | 一级毛片aaaaaa视频免费看 | 日韩欧美在 | 日本免费一区二区三区中文字幕 | 大伊香蕉精品视频在线 | 就操成人网| 在线观看视频99 | 在线毛片网 | 欧美高清hd| a看片| 日本中文字幕一区二区高清在线 | 国产区视频在线观看 | 免费观看一区二区 | 欧美亚洲国产视频 | 三级视频在线播放 | 四虎永久在线观看 | 福利在线一区 | 日本人内谢69xxxx | 婷婷尹人香蕉久久天堂 | 国产乱弄视频在线观看 | 午夜精品一区二区三区免费视频 | 天天久久狠狠伊人第一麻豆 | 在线国产二区 | 精品国产品国语在线不卡丶 |