<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 物聯(lián)網(wǎng)與傳感器 > 設計應用 > 多核處理器下智能車(chē)載平臺的設計與實(shí)現

多核處理器下智能車(chē)載平臺的設計與實(shí)現

——
作者:盧朝洪 金曦 唐岳東 楊國青 時(shí)間:2013-06-26 來(lái)源:電子產(chǎn)品世界 收藏

  資源分區方案

本文引用地址:http://dyxdggzs.com/article/146841.htm

  本文采用OMAP4430型開(kāi)發(fā)板作為硬件平臺。在該處理器上兩個(gè)同構的核上分別部署Android OS和SmartOSEK OS。

  用戶(hù)在應用設計階段,對SmartOSEK OS進(jìn)行靜態(tài)配置,確定其占用的內存情況,從而在系統初始化階段將固定的一段物理內存空間分配給SmartOSEK的實(shí)時(shí)內核。通過(guò)修改Android OS中Linux內核的頁(yè)表項,將該段物理空間對于A(yíng)ndroid OS是不可見(jiàn)的,使得虛擬地址空間無(wú)法映射到該段物理地址。另外預留出一段物理內存作為兩個(gè)操作系統的共享內存空間,以方便二者的通信。

  對于各種硬件外設資源,將其分為三種不同的類(lèi)型。第一類(lèi)是硬件不同內核私有的外設資源,如時(shí)鐘源。第二類(lèi)是將公用的硬件外設資源分配到各自的操作系統上,將其視為該操作系統的私有資源。第三類(lèi)是Android OS和SmartOSEK OS共享的硬件外設資源,在資源分配時(shí)要盡可能避免使用第三類(lèi)資源,針對這種類(lèi)型的資源需要一定的鎖機制對其統一管理。

  內核通信方式

  Android OS與SmartOSEK OS之間提供同步和異步兩種通信方式。

  同步的通信方式只應用于從Android內核向SmartOSEK內核的消息發(fā)送。當Android系統通過(guò)同步方式發(fā)送消息時(shí),首先將消息發(fā)送到共享內存的同步數據緩沖區中,然后向SmartOSEK發(fā)送同步信號進(jìn)行通知,SmartOSEK內核在接收到這個(gè)同步的數據接收信號后,需要立即響應,讀取共享內存中同步數據緩沖區存儲的消息,并在讀取結束后通知Android發(fā)送方數據接收成功或接收失敗。

  異步的通信方式支持Android和SmartOSEK內核雙向通信。當一方向另一方發(fā)送消息時(shí),發(fā)送方首先將數據拷貝到該方的共享內存中的異步消息隊列中,完成該操作后向接收方發(fā)送異步通信請求的信號。此時(shí)接收方只需要更新異步消息隊列的狀態(tài)信息。讀取隊列中消息的工作由一個(gè)周期性查詢(xún)異步消息隊列的進(jìn)程或任務(wù)完成,以緩沖Android內核和SmartOSEK內核實(shí)時(shí)性的差異。

  平臺實(shí)現

  平臺實(shí)現的主要工作為以下三部分:在編譯階段實(shí)現SmartOSEK OS的存儲映射;在雙操作系統的啟動(dòng)過(guò)程中實(shí)現包括內存、中斷、外設等資源的分配;通過(guò)共享內存、核間中斷等手段實(shí)現兩個(gè)操作系統之間相互通信。

  SmartOSEK OS存儲映射

  存儲器分區是實(shí)現兩個(gè)操作系統資源分區的關(guān)鍵之處。在編譯階段利用MMU機制減少兩個(gè)操作系統數據在存儲空間上的耦合性,使每個(gè)操作系統靜態(tài)分配的內存空間盡可能連續,簡(jiǎn)化資源分區的難度。SmartOSEK OS是完全靜態(tài)的操作系統,在目標鏈接文件vmlinux.lds.S中新建物理段osek,通過(guò)使用GNU C編譯器的編譯指令將SmartOSEK OS的數據定義歸于此段中。

  雙核系統啟動(dòng)

  在U-boot完成對系統鏡像文件的引導加載后,主核cpu0處于SVC模式,cpu1執行WFI指令循環(huán)等待cpu0觸發(fā)的核間中斷。此時(shí),將在主核cpu0上基于分區的機制執行對各種資源進(jìn)行初始化分配。圖2描述了雙核啟動(dòng)及資源分配的具體流程?! ?/p>

?
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>