衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

安全驅動示例代碼和實現

麥辣雞腿堡 ? 來源:TrustZone ? 作者:TrustZone ? 2023-10-30 16:07 ? 次閱讀

示例代碼獲取和集成

本示例中的驅動只實現了對內存的讀寫操作,并提供了測試使用的TA和CA。

讀者可使用如下指令從GitHub上獲取到示例源代碼:

git clone https://GitHub.com/shuaifengyun/opentee_driver.git

下載完代碼后就需要將該TA和CA集成到OP-TEE中,需修改OP-TEE源代碼build目錄下的qemu.mk(開發者板級對應的mk文件)和common.mk文件,同時也需要將安全驅動集成到OP-TEE的內核中。

然后編譯整體OP-TEE后就能夠使用該份示例代碼來驗證本書提供的安全驅動示例是否運行正常。

獲取到示例代碼后將opentee_driver/my_test目錄全部復制到op-tee的根目錄下,再切換到根目錄的build目錄中,然后使用git apply命令合入補丁文件后就可完成測試使用的TA和CA集成到OP-TEE,合入全部補丁的操作步驟如下:

1)將示例代碼中的my_test_common_3.0.0.patch文件和my_test_qemu_3.0.0.patch文件復制到build目錄中,將0001-Integrate-secure-driver-test-into-op-tee.patch文件復制到optee_os目錄中。

2)切換到build目錄,使用如下命令合入補丁:

git apply my_test_common_3.0.0.patch
        git apply my_test_qemu_3.0.0.patch

3)切換到optee_os目錄,使用如下命令合入安全驅動在內核中的補丁:

git am 0001-Integrate-secure-driver-test-into-op-tee.patch

將補丁合入完成后就可使用make -f qemu.mk all編譯整個工程,然后使用make -f qemu.mk run-only來啟動OP-TEE,在啟動的正常世界狀態的終端執行secStorTest命令就能實現該示例的CA對TA的調用。示例代碼的運行效果如圖22-3所示。

圖片

3.2 驅動實現

開發一個安全驅動時,需要在optee_os/core/drivers目錄中建立該安全驅動的源文件,在源文件中實現驅動的初始化函數、操作設備的接口函數(read、write、ioctl),具體的接口函數由開發者自行定義。

若該驅動需要在系統啟動過程中執行一些初始化操作則可使用driver_init宏進行定義, 編譯完成后需要被執行的內容將會被保存到鏡像文件的initcall段中, 這些使用driver_init宏定義的內容將在OP-TEE啟動時被調用。 (相當于提前為驅動的調用準備了環境與初始條件)

示例源代碼中的driver_test.c文件需要放在optee_os/core/drivers目錄中,然后修改optee_os/core/drivers目錄下的sub.mk文件,將driver_test.c文件添加編譯系統中。在sub. mk文件中添加如下內容:

srcs-y += driver_test.c

若需要使用宏的方式來控制該驅動的編譯,可將添加到sub.mk的內容修改成“srcs-$(CFG_XXX) += driver_test.c”,然后在optee_os/mk/config.mk文件中定義CFG_XXX變量,通過將CFG_XXX變量賦值成y或n來控制該驅動是否需要被編譯進系統。 (這個還是蠻有用的)

該驅動對應的頭文件driver_test.h文件需保存到optee_os/core/inlcude/drivers目錄中,該文件中聲明了該驅動暴露給外界調用的接口和相關結構體。

實現完驅動接口實現,現在來實現添加系統服務

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 驅動
    +關注

    關注

    12

    文章

    1851

    瀏覽量

    85644
  • 內存
    +關注

    關注

    8

    文章

    3055

    瀏覽量

    74331
  • 設備
    +關注

    關注

    2

    文章

    4543

    瀏覽量

    70858
  • 代碼
    +關注

    關注

    30

    文章

    4827

    瀏覽量

    69054
收藏 人收藏

    評論

    相關推薦

    實現多種重映射綜合示例_《OpenCV3編程入門》書本配套源代碼

    《OpenCV3編程入門》書本配套源代碼:實現多種重映射綜合示例
    發表于 06-06 15:39 ?4次下載

    excel vba代碼 示例講解

    excel vba代碼 示例講解
    發表于 09-07 09:36 ?25次下載
    excel vba<b class='flag-5'>代碼</b> <b class='flag-5'>示例</b>講解

    AD593X代碼示例

    AD593X代碼示例
    發表于 03-23 08:18 ?14次下載
    AD593X<b class='flag-5'>代碼</b><b class='flag-5'>示例</b>

    BeMicro代碼示例

    BeMicro代碼示例
    發表于 05-10 12:21 ?0次下載
    BeMicro<b class='flag-5'>代碼</b><b class='flag-5'>示例</b>

    ezLINX?示例PC應用程序源代碼

    ezLINX?示例PC應用程序源代碼
    發表于 06-05 19:12 ?1次下載
    ezLINX?<b class='flag-5'>示例</b>PC應用程序源<b class='flag-5'>代碼</b>

    機器學習必學的Python代碼示例

    機器學習必學的Python代碼示例
    發表于 06-21 09:35 ?14次下載

    單片機實現PT2262解碼示例代碼

    單片機實現PT2262解碼示例代碼
    發表于 11-16 15:21 ?44次下載
    單片機<b class='flag-5'>實現</b>PT2262解碼<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>

    華為游戲服務示例代碼教程案例

    概述 游戲服務kit安卓示例代碼集成了華為游戲服務的眾多API,提供了示例代碼程序供您參考和使用,下面是對示例
    發表于 04-11 11:09 ?4次下載

    基于keil的AD7366示例代碼

    基于keil的AD7366示例代碼分享
    發表于 10-08 14:58 ?3次下載

    RAA489204 示例代碼軟件手冊

    RAA489204 示例代碼軟件手冊
    發表于 01-10 18:52 ?0次下載
    RAA489204 <b class='flag-5'>示例</b><b class='flag-5'>代碼</b>軟件手冊

    教程 5:BLE 安全示例

    教程 5:BLE 安全示例
    發表于 03-15 20:34 ?0次下載
    教程 5:BLE <b class='flag-5'>安全</b><b class='flag-5'>示例</b>

    RAA489204 示例代碼軟件手冊

    RAA489204 示例代碼軟件手冊
    發表于 06-30 19:23 ?0次下載
    RAA489204 <b class='flag-5'>示例</b><b class='flag-5'>代碼</b>軟件手冊

    安全驅動示例的測試

    通過TA調用到該示例安全驅動,指令說明如下。 1.向驅動中寫入數據 my_test writeDev [offset] [len] offset:表示需將數據寫入
    的頭像 發表于 10-30 16:32 ?523次閱讀
    <b class='flag-5'>安全</b><b class='flag-5'>驅動</b><b class='flag-5'>示例</b>的測試

    自己編寫函數示例代碼很難嗎?分享幾個示例

    Q A 問: Arduino Uno的函數示例 我決定自己編寫函數示例代碼,因為這應該是Arduino中的基本示例。網絡上確實有關于使用函數的文檔,但是,如果要嘗試使用
    的頭像 發表于 11-16 16:05 ?576次閱讀
    自己編寫函數<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>很難嗎?分享幾個<b class='flag-5'>示例</b>!

    使用TSIP驅動程序(Azure RTOS)的TLS實現示例

    電子發燒友網站提供《使用TSIP驅動程序(Azure RTOS)的TLS實現示例.pdf》資料免費下載
    發表于 01-31 10:13 ?3次下載
    使用TSIP<b class='flag-5'>驅動</b>程序(Azure RTOS)的TLS<b class='flag-5'>實現</b><b class='flag-5'>示例</b>
    百家乐官网生活馆拖鞋| 百家乐官网稳一点的押法| 有钱人百家乐的玩法技巧和规则| 广州百家乐官网赌场娱乐网规则 | 正品百家乐网站| 百家乐官网高手论| 永利百家乐官网现金网| 德州扑克比赛规则| 百家乐有诈吗| 在线百家乐官网策| 菲律宾百家乐官网娱乐网| 太阳城娱乐城管理网| 狮威百家乐的玩法技巧和规则| 做生意家里摆什么招财| 百家乐官网桌子10人| 娱乐城开户| 新梦想百家乐的玩法技巧和规则| 澳门百家乐心德| 百家乐官网屏风| 百家乐官网单注技巧| 元游视频棋牌游戏| 电投百家乐网站| 澳门百家乐官网心| 百家乐官网稳赚秘籍| 金冠娱乐城 安全吗| 威尼斯人娱乐城真钱赌博| 赌博百家乐下载| 手机百家乐官网游戏| kk娱乐城送彩金| 至尊百家乐| 一共33楼24楼风水怎么说| 百家乐官网双筹码怎么出千| 网上百家乐官网靠谱吗| 天天乐娱乐城| 大发888娱乐场老虎机| 百家乐技巧经| 百家乐牌九| 爱赢百家乐开户送现金| 澳门百家乐官网官方网站破解百家乐官网技巧 | 德令哈市| 亲朋棋牌大厅下载|