在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

AT32講堂008 | AT32 MCU如何用Eclipse插件調試sLib

雅特力 AT32 MCU ? 2022-06-15 10:43 ? 次閱讀

概述

本文檔僅介紹如何通過使用Eclipse、ARM-GCC編譯工具、GNU-ARM插件、J-Link或AT-Link等資源來配置及調試AT32F403A的sLib,并提供sLib方案商開發算法范例及終端用戶應用范例。關于AT32F403A的sLib詳細介紹及說明,請詳閱:《AN0040_AT32F403A_407_Security_Library_Application_Note》。環境說明:本文檔安裝說明基于WINDOWS 7 x64系統下實現,開發板使用AT-START-F403A。關于Eclips調試環境的安裝及Eclipse工程的建立,請參閱《AN0033_Eclipse_with_GCC》。本文檔所使用的軟件都打包到Setup_SLIB_with_Eclipse_and_GCC_V2.0.0.zip,直接解壓重新編譯后即可運行。解壓后Eclipse的workspace位于目錄:Setup_SLIB_with_Eclipse_and_GCC_V2.0.0\utilities\slib_with_eclipse_and_gcc_demo。其中包含文件:圖1. Eclipse工作目錄2b40a05e-e6f7-11ec-aa96-dac502259ad0.png.metadata:此workspace的環境設定project_l0:方案商開發算法范例project_l1:終端用戶應用范例

Project_L0方案商范例

_在此階段的范例程序,將完成下列幾個項目:

將低通濾波器函數編譯成可執行(executr-only)的代碼;

將低通濾波器函數的代碼編排放置到主閃存區地址0x08004000~0x08004FFF(sector8~9);

將低通濾波器函數的系數編排放置到主閃存區地址0x08005000~0x08005FFF(sector10~11);

驗證成功后,將sector8~9設置為指令安全庫區,將sector10~11設置為數據安全庫區,此部分可在范例的主程序中以調用slib_enable()函數來完成,或使用Artery ICP Programmer來完成(建議使用ICP工具完成設置);

產出終端用戶程序調用低通濾波函數時,需用到的頭文件及符號定義文件。

產生只執行(Exacute-only)代碼

設置方式如下:

1) 選擇C文件群組或個別的C文件,范例中是把要保護的相關C文件都放在FIR_Filter群組,點擊FIR_Filter群組內需要設置只執行的文件,按鼠標右鍵選擇“Properties”

圖2. 設置要保護的C文件

2b6bc19e-e6f7-11ec-aa96-dac502259ad0.png

2) 點選C/C++Build->Settings->GNU ARM Cross C Complier->Miscellaneous,在”Other compiler flags”填入-mpure-code以及-mslow-flash-data這兩個關鍵字,然后按Apply使設定生效

圖3. 設置Miscellaneous

2bb66e88-e6f7-11ec-aa96-dac502259ad0.png

編排安全庫區的地址

Project_L0范例的主閃存映像及RAM的使用分區如下圖,RAM的分區主要是為了避免sLib保護區的代碼與終端用戶的代碼用到相同的RAM而產生的沖突問題。圖4. 主閃存映像及RAM的使用分區2bdffa78-e6f7-11ec-aa96-dac502259ad0.png

其中濾波器函數的代碼編排放置到主閃存區的地址0x08004000~0x08004FFF(sector8~9),并將濾波器函數的系數編排放置到主閃存區的地址0x08005000~0x08005FFF(sector10~11)。RAM的部分則是將0x20000000到0x200000FF共256個字節保留給sLib保護區的代碼使用。

步驟如下:

1) 依據”AT32F403AxC_FLASH.ld”linker descriptor文件做修改,編寫一個ld文件,如project_l0\eclipse_gcc\ld目錄下的slib.ld。2) 在slib.ld當中,將主閃存及RAM分區劃分如下:2bf8a370-e6f7-11ec-aa96-dac502259ad0.png3)?將算法代碼放到.slib_inst section,低通濾波器的系數放到.slib_data section,并將算法使用到的全局變量指定到.slib_ram section,如下圖:圖5. 配置code、data、ram section2c215f40-e6f7-11ec-aa96-dac502259ad0.png4)?在Project->Properties->C/C++Build->Setting->GNU ARM Cross C Linker->General設定中的Script files,加入slib.ld。圖6. 設置Script files2c762d7c-e6f7-11ec-aa96-dac502259ad0.png5)?本范例會使用到gcc的數學運算函數庫libm.a,在Properties->GNU ARM Cross C Linker->Miscellaneous設定中的Other linker flags填入--specs=rdimon.specs,linker才不會出現錯誤訊息。圖7. 設置Other linker flags2caecdc6-e6f7-11ec-aa96-dac502259ad0.png關于ld文件的語法,可參考GNU linker的相關名文件。

產生頭文件及符號定義文件

頭文件(header file)跟符號定義文件(symbol definition file)是終端客戶應用范例Project_L1在調用FIR低通濾波函數時需要用到。在范例中,就是main.c中包含的fir_filter.h文件。符號定義文件則是定義低通濾波函數的實際地址。

產生符號定義文件的方法:

1)進入Project->Properties->C/C++Build->Setting的Build Steps設定畫面。圖8. 設置Build Steps2cdc3914-e6f7-11ec-aa96-dac502259ad0.png

在Post-build steps的命令行中輸入以下命令:

arm-none-eabi-objcopy.exe--keep-symbols="..\keep_sym.txt"-S--remove-section=.ARM.attributes--extract-symbol"${BuildArtifactFileBaseName}.elf""..\fir_filter_symbol.sym"2) 此處fir_filter_symbol.sym是要產出的符號定義文件,keep_sym.txt放在project_l0\eclipse_gcc目錄下,是用來選擇要產生哪些函數的符號,內容如下:2d0830e6-e6f7-11ec-aa96-dac502259ad0.png3)?重新編譯整個項目后,在project_l0\eclipse_gcc目錄下,就會產生一個名為fir_filter_symbol.sym的符號定義文件。

啟用安全庫區保護

要啟用安全庫區的保護功能,有以下兩種方式:1) 使用ICP刻錄工具Artery ICP Programmer(建議用此方式)。使用ICP Programmer啟用sLib的方法,請參閱《AT32F403A Security Library Application Note》。2) 使用范例程序main.c之中的slib_enable()函數。在低通濾波函數測試正確后執行過一次此函數,就可以啟用安全庫區的保護功能。要執行此函數,只要在main.c中使能#define USE_SLIB_FUNCTION即可。

Project_L1終端用戶范例

_

Project_L1范例會使用到在Project_L0中調試好,并已經被刻錄到AT32F403A芯片的主閃存中且被sLib保護的FIR低通濾波器函數。根據Project_L0提供的頭文件、符號定義文件以及主閃存區塊映像,終端用戶就可以參照Project_L1做到

建立一個應用項目;

引用Project_L0提供的頭文件及符號定義文件到項目里;

調用FIR低通濾波器函數;

開發并調試用戶自己的應用程序。

注:Project_L1必須使用跟Project_L0開發時一樣的工具鏈及相同版本的編譯程序,不然有可能會因為版本差異的兼容性問題,而無法使用Project_L0提供的代碼。

建立用戶的應用項目

因為Project_L0啟用的安全庫區已經占用了一些特定的主閃存頁面,Project_L1的代碼必須參照Project_L0提供的主閃存區塊映像來編排放置的地址。其中sector8~11為安全庫區所占用,終端用戶需使用ld文件將這個區域隔離起來,避免代碼在編譯時被編排到這個區域內,方式如下:

參照project_l1\eclipse_gcc\ld目錄下的end_user_code.ld文件,將主閃存空間切成兩個區塊FLASH_1及FLASH_2,中間空出來的區域就是sLib保護區。此外,RAM的區域也要保留0x20000000到0x200000FF的區域。如下圖:

圖9. end-user-code.ld配置2d2d96b0-e6f7-11ec-aa96-dac502259ad0.png

其中SLIB_CODE及SLIB_DATA兩個區域,方案商已事先刻錄代碼,所以設定為NOLOAD,在下載Project_L1代碼到主閃存時,就不會再次被下載。

在項目中加入符號定義文件

Project_L0所產生的符號定義文件fir_filter_symbol.sym必須被添加到Project_L1項目中,才能被正確的編譯并鏈結到sLib保護區的代碼。方法如下:

1) 將fir_filter_symbol.sym這個文件加到FIR_Filter群組;

2) 打開Project->Properties->C/C++Build->Settings->Tool Setting->GNU ARM Cross C Linker->Miscellaneous設定畫面,在Other objects選單中加入此文件,在編譯項目時就會可以被引用到。圖10. 設置Other objects

2d5ac7ca-e6f7-11ec-aa96-dac502259ad0.png

關于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創新趨勢的芯片設計公司,專注于ARM Cortex-M4/M0+的32位微控制器研發與創新,全系列采用55nm先進工藝及ARM Cortex-M4高效能或M0+低功耗內核,締造M4業界最高主頻288MHz運算效能,并支持工業級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當多元的終端產品成功案例:如微型打印機、掃地機、光流無人機、熱成像儀、激光雷達、工業縫紉機、伺服驅控、電競周邊市場、斷路器、ADAS、T-BOX、數字電源、電動工具等終端設備應用,廣泛地覆蓋5G物聯網、消費、商務及工控等領域。

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

    關注

    146

    文章

    17319

    瀏覽量

    352649
收藏 人收藏

    評論

    相關推薦

    STM32轉AT32代碼轉換

    1.引言在嵌入式開發中,我們經常會遇到更換單片機芯片的事情,若芯片是同一廠家的還好說,若是不同廠家的則需要重新寫,重新調,重新去學習其底層驅動程序,比較費時費力。如:ST32轉AT32、ST32轉
    的頭像 發表于 09-28 08:09 ?385次閱讀
    STM32轉<b class='flag-5'>AT32</b>代碼轉換

    AT32講堂088 | 雅特力AT32F402/F405時鐘配置

    簡介時鐘是芯片正確高效運行的基礎,正確的時鐘配置是芯片能正確運行的必要條件,其重要性不言而喻。AT32各系列產品的時鐘配置部分可能存在細微的差異和需要注意的事項,本文檔就著重針對各系列的情況來詳細
    的頭像 發表于 09-15 08:08 ?609次閱讀
    <b class='flag-5'>AT32</b><b class='flag-5'>講堂</b>088 | 雅特力AT32F402/F405時鐘配置

    AT32講堂087 | 雅特力AT32 IDE快速入門指南

    新建項目新項目向導AT32ID提供支持雅特力MCU的C語言項目模板,方便用戶快速創建項目。菜單欄【File】>【New】>【CProject】。新建項目向導的對話框將出現。在對
    的頭像 發表于 09-15 08:08 ?557次閱讀
    <b class='flag-5'>AT32</b><b class='flag-5'>講堂</b>087 | 雅特力<b class='flag-5'>AT32</b> IDE快速入門指南

    C2000 MCU JTAG 連接調試

    電子發燒友網站提供《C2000 MCU JTAG 連接調試.pdf》資料免費下載
    發表于 09-09 09:30 ?0次下載
    C2000 <b class='flag-5'>MCU</b> JTAG 連接<b class='flag-5'>調試</b>

    雅特力AT32 MCU的隨機數生成

    概述產品和生態系統安全性的需求比以往任何時候都更加重要。真隨機數是所有安全系統的核心,其質量會影響設計的安全性。因此在沒有內置硬件TRNG的AT32的微控制器系列中,如何提高隨機數的有效,來符合
    的頭像 發表于 08-30 12:26 ?708次閱讀
    雅特力<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>的隨機數生成

    AT32講堂085 | 雅特力AT32 MCU HICK時鐘校準

    簡介AT32系列MCU內部都有提供適合運行的內部高速時鐘(HICK),其本質就是內置于芯片的RC振蕩器。在25℃下,其典型值頻率8MHz的精度由工廠校準到±1%,在-40到105℃,該內部高速時鐘
    的頭像 發表于 08-30 12:26 ?835次閱讀
    <b class='flag-5'>AT32</b><b class='flag-5'>講堂</b>085 | 雅特力<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> HICK時鐘校準

    雅特力攜多款AT32 MCU新品與應用方案亮相2024慕尼黑上海電子展

    AT32MCU與應用方案齊亮相,呈現了多款電機控制、工業控制、汽車電子、智能家居、消費、商務,及新能源等應用方案。現場人流攢動、氛圍熱烈!多元產品布局助力產業升級
    的頭像 發表于 07-09 08:15 ?732次閱讀
    雅特力攜多款<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>新品與應用方案亮相2024慕尼黑上海電子展

    請問vscode和eclipse哪個好使?

    如題,最近開發esp32,在windows環境下。 說實話,idf的開發環境比以前搭建起來簡單多了,無論是vscode還是eclipse里都有一鍵安裝的插件,從前的環境搭建失敗勸退多次噩夢不再重演
    發表于 06-21 06:43

    芯海 32 位 MCU 開發調試 ,基于 VS Code 插件實現芯海 32 位 MCU 開發調試

    編譯/鏈接等腳本語法,只需要簡單配置參數、新建工程、增加代碼文件后,就可以開始編譯 和調試了。如果要生成靜態庫文件也只需要修改輸出格式,再編譯就可能生成.a 的文件。*附件:基于VSCode插件實現芯海32位MCU開發
    發表于 05-16 10:46

    freertos啟用IAR自帶插件調試時不能查看隊列信息怎么解決?

    在IAR平臺上調試freertos,想利用IAR自帶的freertos插件進行調試,但是只能看task的信息,不能看隊列信息顯示
    發表于 05-07 06:54

    請問如何用一個mcu監測另一個mcu是否死機?

    板子上有兩個mcu,如何用mcu監視大mcu是否死機?
    發表于 03-08 06:06

    MCU不復位調試的小技巧

    場景,也并非無路可循。原則上只要我們通過仿真器調試時,做到代碼不被重新下載覆蓋,MCU 不被復位,就可能保留當前程序運行的狀態,讓 Bug 無處藏身。 02 實現方法 首先,我們將編譯完成的工程燒錄到 MCU,保證
    發表于 02-26 11:30 ?1388次閱讀
    <b class='flag-5'>MCU</b>不復位<b class='flag-5'>調試</b>的小技巧

    雅特力AT32 MCU與SEGGER攜手合作,開發量產事半功倍

    近日,雅特力與SEGGER共同宣布J-Link仿真調試器與Flasher在線燒錄器全面支持AT32 MCU產品,SEGGER工具鏈的加持使AT32
    的頭像 發表于 02-23 10:27 ?461次閱讀

    雅特力AT32 MCU與SEGGER攜手合作,開發量產事半功倍

    近日,雅特力與SEGGER共同宣布J-Link仿真調試器與Flasher在線燒錄器全面支持AT32MCU產品,SEGGER工具鏈的加持使AT32MCU開發如虎添翼。雅特力自2018年對外銷售以來
    的頭像 發表于 02-22 08:13 ?536次閱讀
    雅特力<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>與SEGGER攜手合作,開發量產事半功倍

    調試器連接MCU不穩定怎么辦?

    有沒有小伙伴遇到使用GDlink或者Jlink調試GD32 MCU的時候出現不穩定的情況,剛要發現問題時調試器和MCU斷開連接了,這個時候可能抓狂的心都有了。今天就教給大家幾個提高
    的頭像 發表于 02-21 09:44 ?1016次閱讀
    <b class='flag-5'>調試</b>器連接<b class='flag-5'>MCU</b>不穩定怎么辦?
    主站蜘蛛池模板: a理论片 | 分分操免费视频在线观看 | 人人看人人看人做人人模 | 亚洲一区二区高清 | 午夜寂寞影视 | 欧美成人精品一级高清片 | 插插插天天 | 五月天激情开心网 | 深夜视频在线观看免费 | 国产综合色在线视频区色吧图片 | 久久黄色精品视频 | 51vv福利视频在线精品 | 一区二区不卡免费视频 | 日本免费在线一区 | 精品国产一二三区在线影院 | 天天干天天草天天 | 天天曰天天干天天操 | 国产小视频免费在线观看 | 日韩免费一级毛片 | 美国色网站 | 特别黄的免费视频大片 | 日韩一级片在线播放 | 亚洲乱亚洲乱妇41p 亚洲乱亚洲乱妇41p国产成人 | 好大好硬好长好爽a网站 | 国产成人精品曰本亚洲77美色 | 四虎成人免费观看在线网址 | 午夜精品在线免费观看 | 午夜看黄网站免费 | 美国一级大黄香蕉片 | 狠狠色狠狠色综合日日不卡 | tube性欧美另类 | 国产成人精品免费视频大全可播放的 | 五月激情综合丁香色婷婷 | 免费看片免 | 爱啪网站| 视频在线观看一区二区三区 | 天天爱天天干天天操 | 亚洲精品在线视频观看 | 欧美怡红院免费全部视频 | 1024免费看片 | 午夜理伦 |