本發明專利技術公開了一種地址空洞屏蔽方法及裝置,屬于軟件技術領域。所述方法包括:檢測CPU是否進入調試異常狀態;在所述CPU進入調試異常狀態后,獲取系統總線上每一個地址空洞的地址信息;基于所述地址信息,為所述每一個地址空洞設置數據斷點。在CPU進入調試異常狀態后,通過為每一個地址空洞設置數據斷點的方式來屏蔽地址空洞,由于具有猜測執行功能的CPU不會對設置有數據斷點的總線地址采取猜測執行措施,因此CPU的猜測執行行為不會落到地址空洞上,避免了由CPU的猜測執行行為引起的系統死機問題;此外,在CPU進入調試異常狀態后已完成芯片的全部設計,因此系統總線上出現的地址空洞均可獲知,所以可屏蔽全部地址空洞,進一步降低了系統死機的概率。
【技術實現步驟摘要】
本專利技術涉及軟件
,特別涉及一種地址空洞屏蔽方法及裝置。
技術介紹
對于電視機來講,CPU(Central Processing Unit,中央處理單元)實質上是一塊大規模集成的電視機處理芯片。目前電視機處理芯片在實際應用到整機項目中時,降低系統功耗和生產成本一直是大家關注的一個焦點。時下,通常采取下述兩種措施來達到上述目的。第一種,由于不同整機機型在使用同一款電視機處理芯片進行設計時,可使用到的功能模塊一般不同,因此將該機型用不到的一些功能模塊的時鐘關閉,以此來降低系統功耗。第二種,在滿足系統需求的前提下,盡量減少DDR(Double Data Rate,雙倍速率同步動態隨機存儲器)的空間大小,以此來降低生產成本。然而,無論采取上述哪一種措施均會引發地址空洞的問題。即,關閉掉時鐘的功能模塊對應的地址空間和剪裁掉那一部分DDR對應的地址空間由于不可進行數據讀寫,因此上述地址空間均會在系統總線上成為一個地址空洞。CPU在訪問到地址空洞時,系統總線是無法對其進行數據響應的。而CPU訪問系統總線是一個需要握手的操作,如果系統總線一直沒有進行數據響應,那么CPU則一直處于等待響應狀態,從而導致宏觀上的CPU死機,引起嚴重的產品問題。為了避免這種問題的出現,如何屏蔽上述地址空洞,使得CPU在訪問系統總線時對其進行規避,成為了一個亟待解決的問題。相關技術在進行地址空洞屏蔽時,通常采取下述方式實現。一方面,芯片設計人員在設計電視機處理芯片時,對已經確定的地址空洞在系統總線上進行屏蔽。比如,寄存地址空間和NORFlash(非易失閃存)地址空間都是常見的地址空洞,因此在系統總線上以加補丁的方式將上述已經確定的地址空洞進行屏蔽。另一方面,軟件開發人員在編寫軟件時通過編寫程序代碼去控制CPU不要訪問系統總線上的地址空洞。在實現本專利技術的過程中,專利技術人發現現有技術至少存在以下問題:對于一些地址空洞有時在芯片設計階段是預想不到的,因此在芯片設計階段并不能預先屏蔽系統總線上的所有地址空洞,所以依然存在造成系統死機的隱患;此外,對于具有猜測執行功能的CPU,即可提前猜測并執行可能需要程序指令的CPU來說,由于猜測執行功能是芯片設計人員按照特定算法設計的硬件功能,其對軟件開發人員來說是不可控的,因此當CPU的猜測執行路徑恰好落在會引起系統死機的地址空洞范圍內時,同樣會造成系統死機。
技術實現思路
為了解決現有技術的問題,本專利技術實施例提供了一種地址空洞屏蔽方法及裝置。所述技術方案如下:第一方面,提供了一種地址空洞屏蔽方法,所述方法包括:檢測CPU是否進入調試異常狀態;在所述CPU進入調試異常狀態后,獲取系統總線上每一個地址空洞的地址信息;基于所述地址信息,為所述每一個地址空洞設置數據斷點。在另一個實施例中,所述方法還包括:在所述CPU進入調試異常狀態后,獲取異常處理向量地址;訪問所述異常處理向量地址指示的地址空間,所述地址空間存儲了數據斷點設置指令;執行所述數據斷點設置指令,完成所述獲取系統總線上每一個地址空洞的地址信息,基于所述地址信息為所述每一個地址空洞設置數據斷點的操作。在另一個實施例中,所述基于所述地址信息,為所述每一個地址空洞設置數據斷點,包括:對于每一個地址空洞,調用調試寄存器將所述地址空洞的起始地址寫入斷點地址寄存器,將所述地址空洞的地址掩碼寫入地址掩碼寄存器;將所述起始地址和所述地址掩碼進行或運算得到所述地址空洞對應的地址區間,完成在所述地址區間上設置數據斷點的操作。在另一個實施例中,所述獲取異常處理向量地址之前,所述方法還包括:在匯編文件中指定位置添加調試指令,所述指定匯編文件為所述CPU首個執行的文件;所述檢測CPU是否進入調試異常狀態,包括:在檢測到所述CPU執行所述調試指令后,確定所述CPU進入所述調試異常狀態。在另一個實施例中,所述方法還包括:在所述CPU進入調試異常狀態后,對當前正在使用的至少一個寄存器執行寄存器現場保護處理;在為所述每一個地址空洞設置數據斷點后,執行寄存器現場恢復處理。第二方面,提供了一種地址空洞屏蔽裝置,所述裝置包括:檢測模塊,用于檢測CPU是否進入調試異常狀態;第一獲取模塊,用于在所述CPU進入調試異常狀態后,獲取系統總線上每一個地址空洞的地址信息;執行模塊,用于基于所述地址信息,為所述每一個地址空洞設置數據斷點。在另一個實施例中,所述裝置還包括:第二獲取模塊,用于在所述CPU進入調試異常狀態后,獲取異常處理向量地址;訪問模塊,用于訪問所述異常處理向量地址指示的地址空間,所述地址空間存儲了數據斷點設置指令;所述執行模塊,用于執行所述數據斷點設置指令,完成所述獲取系統總線上每一個地址空洞的地址信息,基于所述地址信息為所述每一個地址空洞設置數據斷點的操作。在另一個實施例中,所述執行模塊,用于對于每一個地址空洞,調用調試寄存器將所述地址空洞的起始地址寫入斷點地址寄存器,將所述地址空洞的地址掩碼寫入地址掩碼寄存器;將所述起始地址和所述地址掩碼進行或運算得到所述地址空洞對應的地址區間,完成在所述地址區間上設置數據斷點的操作。在另一個實施例中,所述裝置還包括:添加模塊,用于在匯編文件中指定位置添加調試指令,所述指定匯編文件為所述CPU首個執行的文件;所述檢測模塊,用于在檢測到所述CPU執行所述調試指令后,確定所述CPU進入所述調試異常狀態。在另一個實施例中,所述執行模塊,還用于在所述CPU進入調試異常狀態后,對當前正在使用的至少一個寄存器執行寄存器現場保護處理;在為所述每一個地址空洞設置數據斷點后,執行寄存器現場恢復處理。本專利技術實施例提供的技術方案帶來的有益效果是:在CPU進入調試異常狀態后,通過為系統總線上每一個地址空洞設置數據斷點的方式來屏蔽地址空洞,由于具有猜測執行功能的CPU不會對設置有數據斷點的總線地址采取猜測執行措施,因此CPU的猜測執行行為不會落到地址空洞上,從而避免了由CPU的猜測執行行為引起的系統死機問題;此外,由于在CPU進入調試異常狀態后已完成了芯片的全部設計過程,因此系統總線上出現的地址空洞均可獲知,所以可屏蔽系統總線上的全部地址空洞,進一步降低了系統死機的概率。附圖說明為了更清楚地說明本專利技術實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本專利技術實施例提供的一種地址空洞屏蔽方法的流程圖;圖2是本專利技術實施例提供的一種地址空洞屏蔽方法的流程圖;圖3是本專利技術實施例提供的一種地址空洞屏蔽裝置的結構示意圖;圖4是本專利技術實施例提供的一種智能設備400的結構示意圖。具體實施方式為使本專利技術的目的、技術方案和優點更加清楚,下面將結合附圖對本專利技術實施方式作進一步地詳細描述。在對本專利技術實施例進行詳細的解釋說明之前,先對本專利技術實施例的應用場景予以介紹。本專利技術實施例提供的方法應用于電視機。示例的,對于一個機型的電視機來說,在將電視機處理芯片上該機型用不到的功能模塊的時鐘關閉,或者將DDR的地址空間剪掉一部分,進而在系統總線上形成地址空洞后,為了防止具有猜測執行功能的CPU執行的猜測行為落到上述地址空洞上,本專利技術實施例本文檔來自技高網...

【技術保護點】
一種地址空洞屏蔽方法,其特征在于,所述方法包括:檢測中央處理單元CPU是否進入調試異常狀態;在所述CPU進入調試異常狀態后,獲取系統總線上每一個地址空洞的地址信息;基于所述地址信息,為所述每一個地址空洞設置數據斷點。
【技術特征摘要】
1.一種地址空洞屏蔽方法,其特征在于,所述方法包括:檢測中央處理單元CPU是否進入調試異常狀態;在所述CPU進入調試異常狀態后,獲取系統總線上每一個地址空洞的地址信息;基于所述地址信息,為所述每一個地址空洞設置數據斷點。2.根據權利要求1所述的方法,其特征在于,所述方法還包括:在所述CPU進入調試異常狀態后,獲取異常處理向量地址;訪問所述異常處理向量地址指示的地址空間,所述地址空間存儲了數據斷點設置指令;執行所述數據斷點設置指令,完成所述獲取系統總線上每一個地址空洞的地址信息,基于所述地址信息為所述每一個地址空洞設置數據斷點的操作。3.根據權利要求1所述的方法,其特征在于,所述基于所述地址信息,為所述每一個地址空洞設置數據斷點,包括:對于每一個地址空洞,調用調試寄存器將所述地址空洞的起始地址寫入斷點地址寄存器,將所述地址空洞的地址掩碼寫入地址掩碼寄存器;將所述起始地址和所述地址掩碼進行或運算得到所述地址空洞對應的地址區間,完成在所述地址區間上設置數據斷點的操作。4.根據權利要求2所述的方法,其特征在于,所述獲取異常處理向量地址之前,所述方法還包括:在匯編文件中指定位置添加調試指令,所述指定匯編文件為所述CPU首個執行的文件;所述檢測中央處理單元CPU是否進入調試異常狀態,包括:在檢測到所述CPU執行所述調試指令后,確定所述CPU進入所述調試異常狀態。5.根據權利要求1所述的方法,其特征在于,所述方法還包括:在所述CPU進入調試異常狀態后,對當前正在使用的至少一個寄存器執行寄存器現場保護處理;在為所述每一個地址空洞設置數據斷點后,執行寄存器現場恢復處理。6...
【專利技術屬性】
技術研發人員:李洋,陳世雷,曾小光,
申請(專利權)人:青島海信電器股份有限公司,
類型:發明
國別省市:山東;37
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。