一種系統休眠狀態下的信息顯示方法與裝置製造方法
2023-05-10 11:52:21 1
一種系統休眠狀態下的信息顯示方法與裝置製造方法
【專利摘要】本發明公開了一種系統休眠狀態下的信息顯示方法和裝置,實現在系統休眠狀態下的信息顯示,與現有技術中喚醒系統後顯示信息相比,可以降低系統運行功耗。預先申請一幀緩衝區;設置定時器的周期性觸發機制和待顯示信息的存儲路徑,所述觸發機制用於定時器定時響應時,觸發信息顯示;系統進入深度休眠狀態之前,根據所述存儲路徑獲取待顯示信息並加載至預設的緩衝區;系統休眠後,若顯示功能被觸發,判斷是否是所述定時器定時響應觸發;若是,則開啟像素時鐘和顯示設備的電源;從所述預設緩衝區中將待顯示內容拷貝到所述幀緩衝區;從所述幀緩衝區中讀取待顯示信息並根據像素時鐘指示的顯示時序在顯示設備上顯示。
【專利說明】一種系統休眠狀態下的信息顯示方法與裝置
【技術領域】
[0001]本發明涉及信息顯示【技術領域】,尤其涉及一種系統休眠狀態下的信息顯示方法與
>J-U ρ?α裝直。
【背景技術】
[0002]現在的帶顯示的可休眠的設備或系統,如基於安卓(Android)系統平臺的智能設備、基於Iinux系統平臺的智能設備,系統進入休眠後,顯示屏上無法再顯示任何信息,只有當用戶按下電源鍵、電話進入等可以觸發系統喚醒的操作發生後,整個系統喚醒才可顯示信息和進行其他操作。
[0003]現有技術中,對於以上提到的帶顯示的可休眠的設備或系統來說,在沒有上述喚醒系統的動作發生的條件下,還沒有設備或系統深度休眠後依舊可顯示信息的技術。
【發明內容】
[0004]發明人經過大量研究發現,現有技術中,如果設備或系統進入深度休眠,如果沒有用戶按下電源鍵、電話進入等喚醒系統的操作,系統無法進行信息的顯示。以基於Android系統的智能手錶為例,現有的技術使得手錶休眠之後無法實現隨時看時間的功能,也就是說用戶想看時間必須抬 起手並按下電源鍵讓整個系統喚醒之後才能看到時間,對於用戶來說,如果需要設備顯示信息則必須觸發整個系統喚醒,系統的所有功能均啟動,系統運行的功耗較高。
[0005]為此,本發明提供一種系統休眠狀態下的信息顯示方法與裝置,以實現在沒有上述系統喚醒操作的基礎上,實現信息的顯示,提高用戶體驗,並且降低系統運行的功耗。
[0006]本發明實施例一方面提供一種系統休眠狀態下的信息顯不方法,可包括:
[0007]預先申請一幀緩衝區;
[0008]設置定時器的周期性觸發機制和待顯示信息的存儲路徑,所述觸發機制用於定時器定時響應時,觸發信息顯示;
[0009]系統進入深度休眠狀態之前,根據所述存儲路徑獲取待顯示信息並加載至預設的緩衝區;
[0010]系統休眠後,若顯示功能被觸發,判斷是否是所述定時器定時響應觸發;若是,則開啟像素時鐘和顯示設備的電源;
[0011]從所述預設緩衝區中將待顯示內容拷貝到所述幀緩衝區;
[0012]從所述幀緩衝區中讀取待顯示信息並根據像素時鐘指示的顯示時序在顯示設備上顯示。
[0013]優選的,判斷是否是所述定時器定時響應觸發,包括:
[0014]讀取所述定時器對應的計數寄存器的值;
[0015]判斷所述計數寄存器的值是否與設置的定時器的計數目標值相等;
[0016]若相等,則確定是所述定時器定時響應觸發。[0017]優選的,當需要喚醒系統內核時,所述方法還包括:
[0018]計數寄存器的值與設置的定時器的計數目標值相等時,設置寄存器狀態標誌位,用於指示為定時器定時響應觸發;
[0019]在內核喚醒後,根據所述標誌位確定是所述定時器定時響應觸發的信息顯示。
[0020]優選的,所述方法還包括:
[0021]編輯讀取的待顯示信息,並根據像素時鐘指示的顯示時序在顯示設備上顯示編輯之後的信息。
[0022]本發明還提供一種系統休眠狀態下的信息顯示方法,所述方法包括:
[0023]預先申請一幀緩衝區;
[0024]設置定時器的周期性觸發機制,所述觸發機制用於定時器定時響應時,觸發信息顯示;
[0025]系統休眠後,若顯示功能被觸發,判斷是否是所述定時器定時響應觸發;若是,則開啟像素時鐘和顯示設備的電源;
[0026]執行預設的信息生成程序,以生成待顯示信息,並將生產的待顯示信息緩存至申請的幀緩衝區;
[0027]根據像素時鐘指示的顯示時序在顯示設備上顯示生成的信息。
[0028]本發明還提供一種系統休眠狀態下的信息顯示裝置,所述裝置包括:
[0029]第一申請模塊,用於預先申請一幀緩衝區;
[0030]第一設置模塊,用於設置定時器的周期性觸發機制和待顯示信息的存儲路徑,所述觸發機制用於定時器定時響應時,觸發信息顯示;
[0031]獲取模塊,用於系統進入深度休眠狀態之前,根據所述存儲路徑獲取待顯示信息並加載至預設的緩衝區;
[0032]加載模塊,用於將獲取的待顯示信息加載至預設的緩衝區;
[0033]第一判斷模塊,用於系統休眠後,若顯示功能被觸發,判斷是否是所述定時器定時響應觸發;
[0034]第一啟動模塊,用於系統顯示功能由定時器定時響應觸發時,開啟像素時鐘和顯示設備的電源;
[0035]拷貝模塊,用於從所述預設緩衝區中將待顯示內容拷貝到所述幀緩衝區;
[0036]第一顯示模塊,用於從所述幀緩衝區中讀取待顯示信息並根據像素時鐘指示的顯示時序在顯示設備上顯示。
[0037]優選的,所述第一判斷模塊包括:讀取子模塊,用於讀取所述定時器對應的計數寄存器的值;判斷子模塊,用於判斷所述計數寄存器的值是否與設置的定時器的計數目標值相等;確定子模塊,用於所述計數寄存器的值與設置的定時器的計數目標值相等時,確定是所述定時器定時響應觸發。
[0038]優選的,所述裝置還包括:
[0039]標誌位設置模塊,用於需要喚醒系統內核時,若計數寄存器的值與設置的定時器的計數目標值相等,設置寄存器狀態標誌位,用於指示為定時器定時響應觸發;
[0040]則所述確定子模塊,還用於在內核喚醒後,根據所述標誌位確定是所述定時器定時響應觸發的信息顯示。[0041]優選的,所述裝置還包括:
[0042]編輯模塊,用於編輯讀取的待顯示信息;
[0043]對應的,所述第一顯示模塊,還用於根據像素時鐘指示的顯示時序在顯示設備上顯示編輯之後的信息。
[0044]本發明還提供一種系統休眠狀態下的信息顯示裝置,所述裝置包括:
[0045]第二申請模塊,用於預先申請一幀緩衝區;
[0046]第二設置模塊,用於設置定時器的周期性觸發機制,所述觸發機制用於定時器定時響應時,觸發信息顯示;
[0047]第二判斷模塊,用於系統休眠後,若顯示功能被觸發,判斷是否是所述定時器定時響應觸發;
[0048]第二啟動模塊,用於顯示功能是所述定時器定時響應觸發時,開啟像素時鐘和顯示設備的電源;
[0049]執行模塊,用於執行預設的信息生成程序,生成待顯示信息;
[0050]緩存模塊,用於將生成的待顯示信息緩存至申請的幀緩衝區;
[0051]第二顯示模塊,用於根據像素時鐘指示的顯示時序在顯示設備上顯示生成的信肩、O
[0052]由本發明提供的技術方案可知,通過設置定時器周期性的定時觸發機制,即定時器一旦定時響應時即觸發信息顯示,在系統進入深度休眠之前,將待顯示的信息緩存到一緩衝區,系統休眠後,當定時器定時響應觸發信息顯示的時候,只需使像素時鐘和顯示設備的電源工作,然後從緩衝區將待顯示信息拷貝到申請的幀緩衝區即可,然後按照像素時鐘指示的時序將信息顯示在顯示設備上。整個的信息顯示過程,均在系統的休眠狀態下進行,無需喚醒整個系統即可實現信息的顯示。與現有技術相比,無需觸發整個系統喚醒顯示信息,降低了整個系統運行功耗。
【專利附圖】
【附圖說明】
[0053]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0054]圖1為本發明提供的一種系統休眠狀態下的信息顯示方法實施例1的流程圖;
[0055]圖2為本發明提供的系統默認framebuffer與新申請framebuffer的關係圖;
[0056]圖3為本發明提供的一種系統休眠狀態下的信息顯示方法實施例2的流程圖;
[0057]圖4為本發明提供的一種系統休眠狀態下的信息顯示方法實施例3的流程圖;
[0058]圖5為本發明提供的一種系統休眠狀態下的信息顯示裝置實施例1的結構示意圖;
圖6為本發明提供的一種系統休眠狀態下的信息顯示裝置實施例4的結構示意圖。 【具體實施方式】
[0059]為使本發明的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0060]下面對本發明提供的技術方案做詳細公開的說明,首先,參考圖1所示,為本發明提供的一種系統休眠狀態下的信息顯示方法實施例1的流程圖,本實施例具體可以包括如下步驟:
[0061]Sll:預先申請一幀緩衝區;
[0062]系統顯示信息時,待顯示數據是寫入系統默認的幀緩衝區framebuffer中的,為了避免與系統本身顯示信息發生衝突,本實施例預先申請新的巾貞緩衝區framebuffer (在LCD (iquid Crystal Display,液晶顯示器)驅動註冊的時候申請的),由於該巾貞緩衝區不會被用戶更改,所以不需要動態分配,減少動態分配帶來的損耗。該緩衝區與系統默認的幀緩衝區大小一樣,而且要求虛擬地址和物理地址都是連續的,因為這個framebuffer中的數據是需要通過LCD控制器按照一定的時序搬運到屏幕上顯示的,如果動態分配會導致內存碎片的產生,時間長了之後有可能出現內存分配不到的問題。參考圖2所示,為系統默認framebuffer與新申請framebuffer的關係圖。
[0063]S12:設置定時器的周期性觸發機制和待顯示信息的存儲路徑;
[0064]所述觸發機制用於定時器定時響應時,觸發信息顯示,其中,所述周期即為定時器的定時周期,在實際應用中,定時器的定時周期可以自定義設置。
[0065]所述待顯示信息的類別這裡不作限定,可以是數據也可以是圖片;待顯示信息的存儲路徑為所述信息在系統中的文件路徑。
[0066]S13:系統進入深度休眠之前,根據所述存儲路徑獲取待顯示信息並緩存在預設的緩衝區;
[0067]所述預設緩衝區與所述申請的幀緩衝區不同,除了要求虛擬地址連續外,只要該緩衝區的大小足夠緩存待顯示信息即可。
[0068]S14:系統休眠後,若顯示功能被觸發,判斷是否是所述定時器定時響應觸發;
[0069]由現有技術可知,在系統休眠後,如果用戶按下電源鍵,對於手機來說,有電話進入等,均會觸發系統從休眠狀態喚醒,系統喚醒實質上可以理解為恢復顯示功能及其他所有的功能,所以本實施例中,如果在系統休眠後系統被觸發顯示信息,比如接收到指示顯示信息的指令,對於信息顯示的指令的形式可以有多種,比如採用開關控制的方式,或明文信息的方式均可,這裡不作限定。需要判斷是否是所述定時器定時響應觸發的,進而確定下一步是否要執行整個系統的喚醒。如果是定時器定時響應觸發,則進入步驟S15。
[0070]S15:開啟像素時鐘和顯示設備的電源;
[0071]顧名思義,所述顯示設備的電源用於給顯示設備供電,以使顯示設備可以工作;所述像素時鐘是為屏幕顯示提供時序的,顯示時序的時間長度最小單位為一個時鐘周期(為顯示時鐘/像素時鐘提供)。
[0072]舉例說明:比如一個1024*768解析度大小的屏幕,一個像素點的格式為RGB888(指的是輸出信號用RGB格式,RGB的顏色深度均為8),那麼一個像素所佔的位寬為24,對於一個有24根數據線的屏幕來說,發送一個像素點的數據只需要發一次即可,那麼對應的所花的時間只需要一個時鐘周期,對於只有8根數據線的屏幕來說,發送一個像素點的數據要發3次,一次發8位,共24位。所以可以認為此時需要花掉3個時鐘周期。[0073]時序實際上指的是顯示一幀數據時,IXD控制器需要按一定的時間順序(由像素時鐘提供時鐘)來控制對應的數據或者命令線將數據發送給屏幕,時序包括有行同步信號,場同步信號,數據信號等,時序的格式具體由顯示屏決定。
[0074]S16:從所述預設緩衝區中將待顯示內容拷貝到所述幀緩衝區;
[0075]S17:從所述緩衝區中讀取待顯示信息並根據顯示時鐘指示的顯示時序在顯示設備上顯示。
[0076]本實施例提供的技術方案中,整個的信息顯示過程,均在系統的休眠狀態下進行,無需喚醒整個系統即可實現信息的顯示。與現有技術相比,無需觸發整個系統喚醒顯示信息,降低了整個系統運行功耗。
[0077]在實施例1的基礎上,優選的,讀取待顯示信息後,可以對信息進行編輯之後,再進行顯示,比如,如果待顯示的信息為兩張圖片,則可以對兩張圖片進行合成,然後顯示合成之後的圖片。
[0078]在實施例1的基礎上,為了進一步加深對本發明提供的技術方案的理解,下面以不同的應用場景為例,詳細介紹本發明提供的技術方案在不同應用場景下對應的具體執行方式。
[0079]場景一、參考圖3所示,為系統休眠狀態下顯示信息方法實施例2的流程圖,本實施例以不需要喚醒內核為例進行說明,假設系統已經申請了一新的幀緩衝區。
[0080]本實施例具體可以包括如下步驟:
[0081]S31:應用層打開實時時鐘RTC定時響應觸發信息顯示的功能;
[0082]所述實時時鐘RTC為本實施例採用的定時器的一種具體實現,定時響應觸發機制可以在kernel中利用宏來控制該功能是否需要打開,如CONFIG_SLCD_SUSPEND_ALARM_WAKEUP_REFRESH,如果該宏被定義了,那麼該功能將被打開,相關的程序將被編譯進去。
[0083]S32:應用層設置RTC的定時周期和待顯示信息的存儲路徑;
[0084]S33:系統深度休眠之前,調用prepare接口加載待顯示信息至預設緩衝區;
[0085]應用層通過特定的接口將定時周期和圖片路徑設置好以後,在系統將要休眠的時候會調用prepare接口,該接口主要是根據應用層設置的待顯示信息的容量和路徑,比如圖片張數和圖片的路徑,來申請對應的緩衝區buffer,並將待顯示信息加載到預設的buffer中,這裡的緩衝區不同於幀緩衝區,只要虛擬地址連續,緩衝區大小足夠緩存待顯示信息即可。
[0086]S34:系統休眠狀態下,若信息顯示功能被觸發,讀取RTC對應計數寄存器的值;
[0087]S35:判斷所述計數寄存器的值是否與RTC預設的計數值相等,若相等,進入步驟S36 ;
[0088]系統休眠之後處於低功耗狀態,此時CPU將停止工作,DDR (Double Data Rate,雙倍速率同步動態隨機存儲器)進行自刷新,RTC (Real-Time Clock,實時時鐘)正常工作,其他模塊都進入了休眠狀態。進入休眠狀態之後系統的顯示功能可能被電話(智慧型手機)、藍牙或者是用戶按下電源按鈕等操作觸發,也會被設置的RTC觸發,所以在後續需要對是否是RTC觸發進行判斷。與現有技術中整個系統喚醒的情況不同的是,本實施例中系統的顯示功能被觸發之後,僅僅是CPU從睡眠狀態轉到運行狀態,以支持系統的正常顯示功能。
[0089]所述步驟S34和S35共同完成信息顯示是否是RTC定時響應觸發的判斷,具體為:RTC相關的寄存器有RTCSAR和RTCSR寄存器,這些寄存器是32位的,RTCSR寄存器是用來計數的,RTCSAR是用來設置計數值的。定義一個變量來存取要設置的值,如int last_refresh_alarm_value (定義一個整形變量);假如現在RTCSR中的值為700,若在800這個時候觸發(假設定時周期為100),那麼可以將RTCSAR和int last_refresh_alarm_value設置為800,那麼RTC每來一個時鐘會使RTCSR的值加1,當RTCSR的值增加到800的時候,RTC模塊會產生一個中斷,將RTCSR的值與last_refresh_alarm_value進行比較,如果相等說明是RTC觸發的。
[0090]S36:開啟顯示需要的像素時鐘和電源;
[0091]buffer中的數據最終要顯示到屏幕上依賴於系統內部的IXD控制器,在系統進入休眠的時候LCD控制器的工作時鐘是關閉的,對應的像素時鐘也是關閉的,現在需要顯示的話就需要將這些時鐘打開。對於Eink屏幕來說,該屏幕具有雙穩態的特性,且顯示不需要背光,所以只需要在顯示的時候為Eink屏幕提供電壓即可。
[0092]S37:調用update_framebuffer接口,從緩衝區將待顯示信息拷貝到申請的幀緩衝區中;
[0093]S38:從幀緩衝區讀取信息內容進行顯示。
[0094]update_framebuffer接口將預設buffer中的信息搬運到幀緩衝區中,顯示設備從幀緩衝區中讀取信息並按照像素時鐘的時序進行信息的顯示。當信息顯示完成之後,可以將LCD控制器的時鐘關閉,不需要的電斷掉,然後CPU再進入睡眠狀態。
[0095]優選的,update_framebuffer接口還可以編輯待顯示信息,並根據顯示時鐘指示的顯示時序在顯示設備上 顯示編輯之後的信息。
[0096]上述應用場景對應的軟體實現的主要函數如下:
[0097]
【權利要求】
1.一種系統休眠狀態下的信息顯示方法,其特徵在於,預先申請一幀緩衝區,所述方法包括: 設置定時器的周期性觸發機制和待顯示信息的存儲路徑,所述觸發機制用於定時器定時響應時,觸發信息顯示; 系統進入深度休眠狀態之前,根據所述存儲路徑獲取待顯示信息並加載至預設的緩衝區; 系統休眠後,若顯示功能被觸發,判斷是否是所述定時器定時響應觸發;若是,則開啟像素時鐘和顯示設備的電源; 從所述預設緩衝區中將待顯示內容拷貝到所述幀緩衝區; 從所述幀緩衝區中讀取待顯示信息並根據像素時鐘指示的顯示時序在顯示設備上顯示。
2.根據權利要求1所述的方法,其特徵在於,判斷是否是所述定時器定時響應觸發,包括: 讀取所述定時器對應的計數寄存器的值; 判斷所述計數寄存器的值是否與設置的定時器的計數目標值相等; 若相等,則確定是所述定時器定時響應觸發。
3.根據權利要求2所述的方法,其特徵在於,當需要喚醒系統內核時,所述方法還包括: 計數寄存器的值與設置的定時器的計數目標值相等時,設置寄存器狀態標誌位,用於指示為定時器定時響應觸發; 在內核喚醒後,根據所述標誌位確定是所述定時器定時響應觸發的信息顯示。
4.根據權利要求1-3任一項所述的方法,其特徵在於,所述方法還包括: 編輯讀取的待顯示信息,並根據像素時鐘指示的顯示時序在顯示設備上顯示編輯之後的信息。
5.一種系統休眠狀態下的信息顯示方法,其特徵在於,預先申請一幀緩衝區,所述方法包括: 設置定時器的周期性觸發機制,所述觸發機制用於定時器定時響應時,觸發信息顯示; 系統休眠後,若顯示功能被觸發,判斷是否是所述定時器定時響應觸發;若是,則開啟像素時鐘和顯示設備的電源; 執行預設的信息生成程序,以生成待顯示信息,並將生產的待顯示信息緩存至申請的幀緩衝區; 根據像素時鐘指示的顯示時序在顯示設備上顯示生成的信息。
6.一種系統休眠狀態下的信息顯示裝置,其特徵在於,所述裝置包括: 第一申請模塊,用於預先申請一幀緩衝區; 第一設置模塊,用於設置定時器的周期性觸發機制和待顯示信息的存儲路徑,所述觸發機制用於定時器定時響應時,觸發信息顯示; 獲取模塊,用於系統進入深度休眠狀態之前,根據所述存儲路徑獲取待顯示信息並加載至預設的緩衝區;加載模塊,用於將獲取的待顯示信息加載至預設的緩衝區; 第一判斷模塊,用於系統休眠後,若顯示功能被觸發,判斷是否是所述定時器定時響應觸發; 第一啟動模塊,用於系統顯示功能由定時器定時響應觸發時,開啟像素時鐘和顯示設備的電源; 拷貝模塊,用於從所述預設緩衝區中將待顯示內容拷貝到所述幀緩衝區; 第一顯示模塊,用於從所述幀緩衝區中讀取待顯示信息並根據像素時鐘指示的顯示時序在顯示設備上顯示。
7.根據權利要求6所述的裝置,其特徵在於,所述第一判斷模塊包括:讀取子模塊,用於讀取所述定時器對應的計數寄存器的值;判斷子模塊,用於判斷所述計數寄存器的值是否與設置的定時器的計數目標值相等;確定子模塊,用於所述計數寄存器的值與設置的定時器的計數目標值相等時,確定是所述定時器定時響應觸發。
8.根據權利要求7所述的裝置,其特徵在於,所述裝置還包括: 標誌位設置模塊,用於需要喚醒系統內核時,若計數寄存器的值與設置的定時器的計數目標值相等,設置寄存器狀態標誌位,用於指示為定時器定時響應觸發; 則所述確定子模塊,還用於在內核喚醒後,根據所述標誌位確定是所述定時器定時響應觸發的信息顯示。
9.根據權利要求6-8任一項所述的裝置,其特徵在於,所述裝置還包括: 編輯模塊,用於編輯讀取的待顯示信息; 對應的,所述第一顯示模塊,還用於根據像素時鐘指示的顯示時序在顯示設備上顯示編輯之後的信息。
10.一種系統休眠狀態下的信息顯示裝置,其特徵在於,所述裝置包括: 第二申請模塊,用於預先申請一幀緩衝區; 第二設置模塊,用於設置定時器的周期性觸發機制,所述觸發機制用於定時器定時響應時,觸發信息顯示; 第二判斷模塊,用於系統休眠後,若顯示功能被觸發,判斷是否是所述定時器定時響應觸發; 第二啟動模塊,用於顯示功能是所述定時器定時響應觸發時,開啟像素時鐘和顯示設備的電源; 執行模塊,用於執行預設的信息生成程序,生成待顯示信息; 緩存模塊,用於將生成的待顯示信息緩存至申請的幀緩衝區; 第二顯示模塊,用於根據像素時鐘指示的顯示時序在顯示設備上顯示生成的信息。
【文檔編號】G06F3/14GK103942020SQ201410085249
【公開日】2014年7月23日 申請日期:2014年3月10日 優先權日:2014年3月10日
【發明者】嚴偉卿 申請人:北京君正集成電路股份有限公司