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

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
    +關注

    關注

    147

    文章

    18925

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CW32系列MCUEclipse GCC + JLink下的使用示例分享

    CW32系列MCUEclipse GCC + JLink下的使用示例: 1、下載安裝Eclipse IDE for Embedded C/C++ Developers。 2、下載安裝
    發表于 02-02 06:57

    AT32硬件除法器應用指南

    AT32硬件除法器應用指南 AT32F011 提供了 32 位硬件除法器,并且可以執行無符號及有符號運算,本應用指南將介紹基礎概念及實際案例。 支持型號: AT32F011 系列 1. AT32
    發表于 01-30 13:49

    如何使用AT32 EdgeAI Sensor EV Board

    AT32 EdgeAI Sensor EV Board隨著邊緣人工智能(EdgeAI)的興起,為了便于用戶在AT32系列芯片上進行 EdgeAI開發,Artery 提供了一塊包含多種 EdgeAI
    發表于 01-30 13:44

    AT32開源鴻蒙開發環境搭建

    本帖最后由 jf_77210199 于 2026-1-19 09:49 編輯 AT32開源鴻蒙開發環境搭建 主要介紹兩部分內容: 1、如何快速搭建起開源鴻蒙的開發環境。 2、如何獲取
    發表于 01-16 13:56

    從實驗室到藍天:雅特力AT32 MCU如何成為無人機飛控的“中國芯”?

    最近幫客戶調試一款工業級無人機飛控時,對方研發總監甩來一句靈魂拷問:“你們國產MCU能做到288MHz主頻下,同時跑通FOC電機控制+多傳感器融合算法嗎?” 當時我直接把AT32F435的測試數據甩
    的頭像 發表于 01-08 14:38 ?335次閱讀

    國產MCU替代優選!雅特力AT32系列憑高性能+高兼容,橫掃工控/消費/AIoT多場景

    在國產化替代加速背景下,雅特力AT32系列MCU成工程師優選。該系列基于ARM Cortex-M4/M0+內核,具備高主頻、豐富外設及工業級可靠性,關鍵性能對標國際一線品牌。核心優勢在于與STM32
    的頭像 發表于 01-07 17:15 ?1238次閱讀

    經驗分享 | eclipse搭建先楫開發環境

    最近有小伙伴留言,想在eclipse平臺下開發先楫的MCU,但是苦于沒有工程模板,自己折騰了半天又遇到一堆報錯,很費時間。基于此需求,筆者基于HPM6E00EVK一步一步搭建在eclipse下的開發環境,可以順利實現仿真和
    的頭像 發表于 12-19 08:32 ?876次閱讀
    經驗分享 | <b class='flag-5'>eclipse</b>搭建先楫開發環境

    雅特力AT32 MCU推動低空經濟發展

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

    在windows上用Eclipse IDE調試蜂鳥E203,用的開發板是哪個型號的?

    在windows上用Eclipse IDE調試蜂鳥E203,用的開發板是哪個型號的,有哪位大佬調試出來了,求告知
    發表于 11-07 07:19

    AT32 MCU如何使用IAP

    AT32 MCU使用IAP的方法涉及在微控制器上創建特定固件,以實現在應用編程(In-Application Programming,簡稱IAP)功能,主要通過USART通信接口進行固件更新操作
    發表于 08-08 17:13

    AT32 IAP using the USART

    對于AT32 MCU,除了出廠固化的bootloader,用戶也可以在應用程序中編寫自己的bootloader程序,用于最終產品的固件更新。此功能稱為應用程序內編程(IAP)。 本應用筆記的目的
    發表于 07-11 10:51

    AT32的ERTC與RTC的區別

    AT32單片機系列中包含兩種實時時鐘(RTC)模塊:標準的RTC和增強型RTC(ERTC)。以下是兩者的區別: 功能豐富性 RTC :提供基本的計數功能,以秒為單位遞增,范圍從0x00000000到
    發表于 07-11 10:48

    調試工具:Eclipse調試工具欄與窗口的深入分析

    科技有限公司自研AS32 系列 MCU 芯片的調試應用為研究背景,通過詳細闡述 Eclipse 調試環境的搭建、工具欄各功能模塊的原理與應用,以及各類
    的頭像 發表于 07-07 11:32 ?872次閱讀
    <b class='flag-5'>調試</b>工具:<b class='flag-5'>Eclipse</b><b class='flag-5'>調試</b>工具欄與窗口的深入分析

    Modus工具箱調試錯誤怎么解決?

    : Listening on port 4444 for telnet connections Started by GNU MCU Eclipse Started by GNU MCU E
    發表于 07-01 06:53

    雅特力AT32F402/F405入門使用指南

    搭建AT32開發環境一、調試工具及開發板目前AT32F402/AT32F405開發板都自帶AT-Link-EZ調試工具,AT-Link-EZ如下圖左邊紅框所示,它也可拆開后單獨搭配其他電路板使用,支持IDE在線
    的頭像 發表于 03-28 18:59 ?2890次閱讀
    雅特力AT32F402/F405入門使用指南