国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

雅特力AT32WB415 Security Library使用指南

雅特力 AT32 MCU ? 2023-10-10 09:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

目前越來越多的微控器(MCU)應用需要使用到復雜的算法及中間件解決方案(middlewaresolution),因此,如何保護軟件方案商開發出來的核心算法等知識產權代碼(IP-Code),便成為微控制器應用中一項很重要的課題。因為這一重要的需求,AT32WB415系列提供了安全庫區(SLIB)的功能,以防止重要的IP-Code被終端用戶的程序做修改或讀取,進而達到保護的目的。本文檔將詳細闡述AT32WB415系列安全庫區的應用原理和軟件使用方法。

應用原理

安全庫區的應用原理

  • 設定以密碼保護指定范圍的程序區(即安全庫區),軟件方案商可將核心算法存放到此區域,以達到保護的功能,其余空白程序區可以提供給終端商客戶進行二次開發。
  • 安全庫區劃分為指令安全庫區(SLIB_INSTRUCTION)及數據安全庫區(SLIB_DATA),并可選擇部分或是整個安全庫區存放指令,但不支持整個安全庫區存放數據。
  • 指令安全庫區(SLIB_INSTRUCTION)內的程序代碼僅能被MCU透過I-Code總線抓取指令(僅能被執行),不能透過D-Code總線以讀取數據的方式讀取(包含ISP/ICP調適模式以及從內部RAM啟動的程序),以讀取數據的方式去訪問SLIB_INSTRUCTION時,讀到的數值全都是0xFF。
  • 數據安全庫區(SLIB_DATA)的數據僅能透過D-Code總線讀取,不能寫入。
  • 安全庫區的程序代碼及數據,除非輸入正確的密碼,否則無法被擦除。在密碼不正確時,對安全庫區執行寫入或擦除,將會在FLASH_STS寄存器的EPPERR位置"1"提出警告。
  • 終端用戶執行主閃存的整片擦除時,安全庫區的程序代碼及數據不會被擦除。
  • 當安全庫區的保護功能被啟動后,可以透過在SLIB_PWD_CLR寄存器寫入先前設置的密碼來解除保護功能。解除安全庫區的保護時,芯片將會執行主閃存的整片擦除(包含安全庫區的內容)。因此即使軟件方案商設置的密碼被泄漏,也不會有程序代碼外泄的疑慮。

下圖是包含安全庫區的主閃存區映射示意圖,安全庫區的程序代碼可以很容易地被終端用戶調用并執行, 但不能直接被讀取,因而達到保護的功能。圖1. 帶有安全庫區的主閃存區映射6c2a27f4-670f-11ee-9788-92fbcf53809c.png

安全庫區的范圍大小是以扇區(sector)為單位做設定,每一扇區的大小以實際MCU型號為準。表1是AT32WB415系列各型號的主閃存大小、每扇區大小及可設置范圍。另外啟動程序代碼區開啟了主存擴展功能后,整個18KB區域也是可以作為安全庫區。表1. AT32WB415各型號閃存大小總表6c35297e-670f-11ee-9788-92fbcf53809c.png

如何啟動安全庫區保護

默認狀態下,安全庫區設定寄存器始終是不可讀且被寫保護。要想對安全庫區設定寄存器進行寫操作,首先要對安全庫區設定寄存器解鎖,對SLIB_UNLOCK寄存器寫入解鎖0xA35F6D24值,通過查看SLIB_MISC_STS寄存器的SLIB_ULKF位確認解鎖成功,隨后便允許對安全庫區設定寄存器寫入設定值。啟動主閃存安全庫區的步驟如下:

  • 檢查FLASH_STS寄存器的OBF位,以確認沒有其他正在進行的閃存操作;
  • 對SLIB_UNLOCK寄存器寫入0xA35F6D24,以進行安全庫區解鎖;
  • 檢查SLIB_MISC_STS寄存器的SLIB_ULKF位,以確認解鎖成功;
  • 在SLIB_SET_RANGE寄存器設定要保護的區域,包含指令區與數據區的地址;
  • 等待OBF位變為‘0’;
  • 在SLIB_SET_PWD寄存器設定安全區域密碼;
  • 等待OBF位變為‘0’;
  • 燒錄將存入安全庫區的代碼;
  • 進行系統復位,重裝載安全庫區設定字;
  • 讀出SLIB_STS0/STS1寄存器用于判斷安全庫區設定結果。

注意事項:

  • 只可在主閃存中設置安全庫區,實際可設置范圍參見表1;
  • 啟動程序代碼區中設置安全庫區(需開啟AP模式),設置范圍為整個啟動程序代碼區;
  • 主閃存和啟動程序代碼區,安全庫區只能設置其中一個,不可同時設置;
  • 安全庫區代碼必須以扇區為單位進行燒錄,且起始地址必須與主閃存地址對齊;
  • 中斷向量表是數據型態且通常會被放置在閃存的第一扇區(扇區0)內,請勿將閃存的第一扇區設定為安全庫區;
  • 要被安全庫區保護的程序代碼,不可放置在閃存的前4KB內;

關于安全庫區設定寄存器的詳細說明,請參閱AT32WB415系列技術手冊。啟動安全庫區的程序可參考安全庫區應用范例project_l0中位于main.c中的slib_enable()函數。亦可使用雅特力的ICP或ISP刻錄工具做設定,后面章節將會有詳細的說明。

如何解除安全庫區保護

當安全庫區的保護功能被啟動后,可以透過在SLIB_PWD_CLR寄存器寫入先前設置的密碼來解除保護功能。解除安全庫區的保護時,芯片將會執行主閃存的整片擦除(包含安全庫區的內容)。解除主閃存安全庫區的步驟如下:

  • 檢查FLASH_STS寄存器的OBF位,以確認沒有其他正在進行的編程操作;
  • 在SLIB_PWD_CLR寄存器寫入先前設置的安全區域密碼;
  • 進行系統復位,重裝載安全庫區設定字;
  • 讀出SLIB_STS0寄存器用于判斷安全庫區設定結果。

編排及執行安全庫區的程序

如前面章節所提到,在指令安全庫區(SLIB_INSTRUCTION)內的的程序代碼可以被MCU經由I-Code總線抓取,但不能經由D-Code總線以讀取數據的方式去讀出,這樣的保護是全面性的,也就是說在指令安全庫區之內的程序代碼,也不能讀取同樣被放置在指令安全庫區之內的數據,例如C程序代碼常被編譯成的文字池(literal pool)、分支表(branch table)或常數(constant)等之類當指令被執行時會經由D-Code總線去讀取的數據。這代表指令安全庫區之內只能放置指令,不能放置任何數據。因此用戶在編排要放置在指令安全庫區之內的程序代碼時,必須配置編譯程序(compiler)的設定去產生只執行(execute-only)的代碼以避免上述那些型態的數據產生。圖2及圖3是一般常見的文字池跟分支表的例子:switch()是C程序中常用的跳轉指令,此例子中的sclk_source變量是去讀取CRM_CFG寄存器,圖2可看到編譯出來的匯編代碼(assembly code)“LDR R7, [PC, #288]”,會用程序計數器(program counter, PC)間接尋址的方式去取得CRM_CFG寄存器的地址,而CRM_CFG的地址會被以常數的方式存放在鄰近的指令區(也在指令安全庫區之內),因此執行switch()指令時就會發生數據的讀取。如果指令安全庫區內有這類的程序代碼,在執行的時候就會產生錯誤。AN0127第三章的范例程序將會說明如何設定編譯程序的配置來避免這樣的問題。圖2. 文字池例子(1)6c4bc85a-670f-11ee-9788-92fbcf53809c.png圖3. 文字池例子(2)6c60e96a-670f-11ee-9788-92fbcf53809c.png

一、不可將中斷向量表設置為安全庫區

中斷向量表包含每個中斷處理程序的入口點地址,由MCU通過D-Code總線讀取。通常,中斷向量表位于主閃存第一扇區(sector 0)的起始地址0x08000000,因此在設置指令安全庫區時,必須遵守以下的規則:

  • 不可將主閃存的第一扇區設置為安全庫區
  • 要被安全庫區保護的程序代碼,不可放置在閃存的第一扇區內

二、安全庫區代碼與用戶區代碼的關聯性

受安全庫區保護的程序代碼(IP-code)可以從位于用戶代碼區(安全庫區之外的區域)的函數庫中調用函數。在這種情形下,IP-Code將會包含這些函數的地址,允許PC(程序計數器)在執行IP-Code時跳轉到這些函數。一旦安全庫區被啟動,這些函數的地址就不能被改變,此時,這些位于用戶代碼區的函數的地址就必須固定下來,否則PC將跳轉到錯誤的地址而無法正常工作。因此在設置安全庫區的時候,應該將所有與IP-Code相關聯的函數都一起編排到安全庫區之內以避免此情況發生。下圖顯示出一個被保護的函數Function_A()調用到用戶區內的函數Function_B()的例子。圖4. 安全庫區的函數調用用戶區函數的例子6c765a3e-670f-11ee-9788-92fbcf53809c.png

此外,另一個最常見的情形就是使用到C語言的標準函式庫,例如memset()及memcpy()這類函數。如果IP-Code跟用戶區代碼都有調用到這類函數,就會有上述問題的困擾。列舉兩種常用的解決方法:1) 將其編譯到安全庫區范圍內,具體如何實現可以查看keil或IAR的相關文檔。2) 避免在IP-Code內使用C的標準函式庫,若非要使用,就必須將用到的函數改寫為其他名稱,以下是一個范例,在IP-Code中寫一個my_memset()函數取代原先的memset()。圖5. 自定義函數范例6c83c9ee-670f-11ee-9788-92fbcf53809c.png

三、軟件浮點運算庫的使用與編排

由于AT32WB415沒有硬件符點運算單元(FPU),所以項目中如有符點數運算,Keil或IAR編譯程序就會使用ARM提供的軟件浮點運算庫函數。但因為軟件浮點運算庫函數是已經編譯過的代碼,無法做修改,且其中有些函數內會有如同前面章節提到的文字池格式的代碼,所以不能將浮點運算庫函數一起編排到SLIB_CODE保護區之內,必須放到安全庫區之外。如下圖中Keil浮點運算庫中的除法函數,就有文字池格式的匯編代碼。圖6. 除法函數匯編代碼6c9ccec6-670f-11ee-9788-92fbcf53809c.png

當sLib啟用后,sLib保護區內的全部內容就不能被改動,所以SLIB_CODE調用到的每個浮點運算庫函數的地址也就不能被改變。第三章的范例將會說明如何將使用到的浮點運算庫函數,編排到SLIB-CODE保護區外且固定地址的區域,在啟用SLIB保護之后,讓SLIB-CODE保護區內的程序可以正確無誤的調用。Keil軟件浮點運算庫的詳細說明,可參考安裝目錄下的ARM DUI0378G文檔《ARMCompiler v5.06 for μVision ARM C and C++ Libraries and Floating-Point SupportUser Guide》。IAR軟件浮點運算庫的詳細說明,可參考安裝目錄下的EWARM_DevelopmentGuide文檔《IAR C/C++ Development Guide》的PREBUILT RUNTIME LIBRARIES章節。

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

    關注

    0

    文章

    7

    瀏覽量

    7218
  • 雅特力
    +關注

    關注

    1

    文章

    195

    瀏覽量

    9380
  • AT32
    +關注

    關注

    1

    文章

    121

    瀏覽量

    3155
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    科技通過ISO 26262汽車功能安全ASIL D認證

    近日,科技正式通過ISO26262汽車功能安全ASILD流程認證,并由國際公認的測試、檢驗和認證機構SGS頒發認證證書。此次認證標志著
    的頭像 發表于 02-06 18:33 ?769次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>科技通過ISO 26262汽車功能安全ASIL D認證

    工業級MCUAT32F455RCT7核心技術解析

    AT32F455RCT7基于192MHz Cortex-M4F內核,集成豐富通信接口與硬件加密單元,具備-40℃~105℃工業級工作溫度范圍,為工業控制、電機驅動及物聯網網關提供高性能、高可靠性的單芯片解決方案。
    的頭像 發表于 01-29 09:53 ?695次閱讀
    工業級MCU<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F455RCT7核心技術解析

    AT32WB415推動無線技術集成革新

    AT32WB415系列MCU集成ARM Cortex-M4內核(150MHz)與藍牙5.0射頻模塊,提供256KB閃存與32KB內存,支持sLib安全庫。其接收靈敏度達-97dB
    的頭像 發表于 12-31 10:36 ?415次閱讀
    <b class='flag-5'>AT32WB415</b>推動無線技術集成革新

    AT32 MCU推動低空經濟發展

    AT32系列MCU憑借288MHz主頻與高精度外設,為無人機飛控、電調及云臺提供核心算支持,實現厘米級定位與高效動力控制,顯著提升在電力巡檢、農林植保等低空經濟場景下的作業精度
    的頭像 發表于 12-04 09:53 ?1662次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32 MCU推動低空經濟發展

    喜訊!科技榮獲“2025年度優秀電機控制技術產品獎”

    11月6日,由電子發燒友主辦的“2025電機控制先進技術研討會暨電機控制技術市場表現獎頒獎典禮”在深圳順利召開。科技AT32M412憑借其在電機控制領域的技術突破與創新應用,榮膺“2025年度
    的頭像 發表于 11-07 19:03 ?2743次閱讀
    喜訊!<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>科技榮獲“2025年度優秀電機控制技術產品獎”

    喜訊!科技榮獲“電機創新設計先鋒企業”

    旨,覆蓋電機全產業鏈。憑借在電機控制領域的持續創新與卓越表現,科技榮獲“電機創新設計先鋒企業”殊榮。在電機控制領域,傳統MCU普遍存在主頻不足、存儲受限、算法支持
    的頭像 發表于 11-04 11:51 ?638次閱讀
    喜訊!<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>科技榮獲“電機創新設計先鋒企業”

    活動預告|與您相約2025電機控制先進技術研討會

    11月6日,由電子發燒友主辦的2025電機控制先進技術研討會將在深圳益田威斯汀酒店召開。本次研討會現場,科技將展示基于AT32MCU的多款高效電機應用方案,涵蓋機器人、無人機、出行工具、家電
    的頭像 發表于 11-04 11:51 ?2651次閱讀
    活動預告|<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>與您相約2025電機控制先進技術研討會

    AT32F413芯片推動洗衣機節能升級

    AT32F413系列MCU以150MHz Cortex-M4內核和無感FOC算法,實現洗衣機直驅電機精準控制,將運行噪音降至45dB以下,能耗達國標一級能效。其集成多重安全防護與智能交互接口,助力高端洗衣機實現靜音、節能與
    的頭像 發表于 11-04 09:45 ?592次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F413芯片推動洗衣機節能升級

    AT32F421吊扇控制芯助力綠色節能

    AT32F421 MCU 主打吊扇控制器,憑無感 FOC、高集成、多保護優勢,滿足工程師降本提效、用戶舒適節能需求,適配智能家居與能效趨勢。
    的頭像 發表于 10-22 09:45 ?421次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F421吊扇控制芯助力綠色節能

    AT32F421定義高速吹風機控制新標準?

    AT32F421 MCU為高速吹風機提供方案,支持10000-120000rpm轉速,采用無感FOC控制,低噪高效且有過流保護,解決傳統吹風機痛點,推動行業技術升級。
    的頭像 發表于 09-24 09:35 ?688次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F421定義高速吹風機控制新標準?

    MCU智能監測系統為電鉆提供全鏈路保護

    AT32M412EBP7以240 MHz Cortex-M4F硬核驅動無刷FOC,65 N·m零速啟停,4 MSPS ADC精檢電流,-40~105 ℃寬溫運行,動態功耗僅80 μA/MHz,為工業與家用智能電鉆提供極致算
    的頭像 發表于 09-10 09:25 ?1171次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>MCU智能監測系統為電鉆提供全鏈路保護

    ??AT32F435:240MHz多軸伺服控制成本最優解?

    AT32系列以“納米級精度、微秒級響應、全棧式生態”重構伺服控制系統邊界,其算架構、實時控制鏈及安全機制精準匹配工業自動化高可靠性需求,成為中國制造2025戰略下國產伺服方案的
    的頭像 發表于 07-25 10:35 ?873次閱讀
    ??<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F435:240MHz多軸伺服控制成本最優解?

    科技精彩亮相2025 MCU及嵌入式技術論壇

    7月24日,由AspenCore主辦的2025MCU及嵌入式技術論壇,在深圳科興科學園圓滿落幕。在此次論壇上展示了覆蓋電機控制、智能家電、AIoT等眾多場景的創新產品與應用方案。電機控制,智能
    的頭像 發表于 07-25 08:14 ?1616次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>科技精彩亮相2025 MCU及嵌入式技術論壇

    Quartus工具使用指南

    電子發燒友網站提供《Quartus工具使用指南.pdf》資料免費下載
    發表于 07-15 16:34 ?1次下載

    喜訊!榮獲21ic“技術先鋒成就獎”

    近日,21ic電子網2024年度獎項評選結果正式揭曉!這些獎項旨在表彰在芯片研發、市場拓展、生態協作等領域表現卓越的企業與團隊。科技憑借深厚的技術實力與銳意進取的創新精神,榮獲21ic電子網
    的頭像 發表于 03-07 18:46 ?938次閱讀
    喜訊!<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>榮獲21ic“技術先鋒成就獎”