[發明專利]一種固件修復方法、固態硬盤控制器及固態硬盤在審
| 申請號: | 202011581160.1 | 申請日: | 2020-12-28 |
| 公開(公告)號: | CN112650519A | 公開(公告)日: | 2021-04-13 |
| 發明(設計)人: | 劉紹全;陳祥 | 申請(專利權)人: | 深圳大普微電子科技有限公司 |
| 主分類號: | G06F8/658 | 分類號: | G06F8/658;G06F11/07 |
| 代理公司: | 深圳市六加知識產權代理有限公司 44372 | 代理人: | 孟麗平 |
| 地址: | 518000 廣東省深圳市龍崗*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 修復 方法 固態 硬盤 控制器 | ||
1.一種固件修復方法,其特征在于,應用于固態硬盤,所述方法包括:
獲取熱補丁包,其中,所述熱補丁包包括至少一個缺陷函數的函數名、函數地址以及與所述至少一個缺陷函數對應的新函數對應的二進制代碼;
基于所述熱補丁包,在線修復待修復的缺陷函數,具體包括:
將所述新函數的二進制代碼加載到運行內存,確定所述新函數的運行區域,并記錄所述新函數的函數地址;
獲取所述缺陷函數的函數地址,修改所述缺陷函數的函數地址對應的第一個匯編指令為跳轉指令,其中,所述跳轉指令指向新函數的函數地址,以使固件在運行到所述缺陷函數時跳轉到所述缺陷函數對應的新函數。
2.根據權利要求1所述的方法,其特征在于,所述獲取熱補丁包,包括:
基于下載命令,將所述熱補丁包下載到所述固態硬盤正在運行的固件;
基于激活命令,激活所述熱補丁包。
3.根據權利要求1所述的方法,其特征在于,所述方法還包括:
將所述熱補丁包存儲于非易失性存儲介質中;
在所述固態硬盤上電之后,檢測所述非易失性存儲介質中是否存在熱補丁包;
若是,則將所述熱補丁包加載到所述運行內存,并執行在線修復待修復的缺陷函數的步驟。
4.根據權利要求1所述的方法,其特征在于,在獲取熱補丁包之前,所述方法還包括:制作熱補丁包,具體包括:
編譯至少一個缺陷函數一一對應的至少一個新函數,生成每一新函數對應的新函數二進制代碼;
組合每一新函數對應的新函數二進制代碼,生成熱補丁包。
5.根據權利要求1所述的方法,其特征在于,在基于所述熱補丁包,在線修復待修復的缺陷函數之前,所述方法還包括:暫停主機業務,在待修復缺陷函數被所述熱補丁包中對應的新函數替換之后,重啟主機業務。
6.根據權利要求1所述的方法,其特征在于,在基于所述熱補丁包,在線修復待修復的缺陷函數之前,所述方法還包括:
判斷固件是否將函數地址設置為只讀屬性;
若是,則將所述函數地址設置為可寫屬性,在缺陷函數被替換之后,再將所述函數地址設置為只讀屬性。
7.根據權利要求1所述的方法,其特征在于,所述確定所述新函數的運行區域,包括:
根據所述新函數的性能需求,確定所述新函數在所述運行內存中的運行區域;
其中,所述運行內存包括動態隨機存取存儲器和靜態隨機存取存儲器,所述根據所述新函數的性能需求,確定所述新函數在所述運行內存中的運行區域,包括:
若所述新函數的性能需求大于預設需求閾值,則確定所述新函數的運行區域為靜態隨機存取存儲器的區域;
若所述新函數的性能需求小于或等于預設需求閾值,則確定所述新函數的運行區域為動態隨機存取存儲器的區域。
8.根據權利要求7所述的方法,其特征在于,所述性能需求包括讀取速度和/或寫入速度。
9.一種固態硬盤控制器,應用于固態硬盤,其特征在于,用于執行如權利要求1-8任一項所述的固件修復方法。
10.一種固態硬盤,其特征在于,包括:
如權利要求9所述的固態硬盤控制器;
至少一個閃存介質,與所述固態硬盤控制器通信連接。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳大普微電子科技有限公司,未經深圳大普微電子科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011581160.1/1.html,轉載請聲明來源鉆瓜專利網。





