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

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

3天內不再提示

單獨下載可執行文件到MM32F5微控制器

冬至子 ? 來源:靈動MM32MCU ? 作者:靈動MM32 ? 2023-05-24 17:24 ? 次閱讀

引言

使用Keil MDK或者IAR等使用圖形界面的開發環境,可以在圖形界面環境下編譯源碼工程,并下載編譯生成的可執行文件到目標微控制器中。但若使用ARMGCC等命令行工具鏈,需要額外的下載工具,才能將編譯生成的可執行文件下載到目標微控制器中。

若使用SEGGER J-Link調試器,可以搭配SEGGER Ozone軟件或者J-FLASH、J-FLASH Lite實現單獨下載的功能。但J-Link調試器價格昂貴,并且老版本的J-LINK調試器無法支持更新的微控制設備。相比而言,開源的DAP-Link方案更接地氣??梢赃m配DAP-Link的命令行工具有openocd、pyocd等,但這些工具對某些具體微控制器設備的兼容性并不是很好,時不時會出現不識別設備或者連接不上的情況,需要開發者自行調試才能確保它們能夠正常工作。同時,基于命令的操作方式,對于已經習慣了在圖形界面環境下調試的開發者而言,也不是很友好。不過,若是需要搭建持續集成和自動化測試系統,這些基于命令行的工具仍是不可或缺的。

對于僅專注于微控制器端的軟件開發者而言,希望能夠以最簡單的方式解決單獨下載可執行文件的問題。本文將以下載MicroPython固件文件到靈動MM32F5微控制器為例,總結了幾種簡單易用的方法,專門針對使用DAP-Link調試器的情況,通過常用圖形界面工具,實現單獨下載可執行文件的功能。

PS:針對MM32F5微控制器,不得不使用本文描述方法的原因,還在于一些主觀因素:

筆者手頭上的J-Link v8不再支持STAR-MC1(Arm Cortex-M33)內核

筆者使用pyocd+DAP-Link的組合,經過一段時間的調試,仍無法實現連接到MM32F5微控制器

使用DAP-Link在Keil中可以調試MM32F5微控制器

使用這些工具可以識別常用的可執行文件類型,例如bin、hex、axf、elf、s19等。用戶可根據需要嘗試。

借用Keil工程

Keil IDE實現下載功能的部分,相對于編譯過程,在內部應該也是一個獨立的小工具,這是筆者得以實現用Keil下載程序的關鍵。Keil沒有將內部的下載工具獨立地開放出來,因此,筆者不得不創建一個不包含任何源碼的空工程,跳過編譯部分,僅使用其中下載程序的功能。具體操作步驟如下:

1 啟動Keil IDE,創建新工程,并選定設備類型為目標微控制器設備。**

筆者實際在本機的d:\\_worksapce\\keil\\mm32f5目錄下,創建了mm32f5.uvprojx工程文件。

image.png

2options -> Output 選項卡中,指定將要下載的可執行文件的路徑。

在樣例中,筆者在mm32f5目錄下,存放了micropython.hex文件。點擊Select Folder for Objects...按鈕,指定為mm32f5目錄,然后在Name of Executable:對應的文本框中輸入了micropython.hex文件名。

image.png

從字面上看,這里指定的是編譯輸出的路徑和文件名,但實際上,下載過程是同編譯過程綁定的,編譯過程生成的可執行文件,將被Keil自動作為下載過程的輸入文件。

3 在主窗口的工具欄中,單擊LOAD按鈕,啟動下載。

image.png

通過 Build Output窗口可以查看到,當前已經擦除、下載并且校驗成功。

4 使用Keil IDE也可以實現命令行式的下載操作。

此時,可將使用Keil IDE創建的工程視作uv4.exe程序的配置文件,例如,在之前創建的mm32f5.uvprojx文件中,編輯OutputDirectoryOutputName字段,指定將要下載程序的路徑和文件名。

<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">

  <SchemaVersion>2.1<span class="hljs-name"SchemaVersion>

  <Header>### uVision Project, (C) Keil Software<span class="hljs-name"Header>

  <Targets>
    <Target>
      <TargetName>Target 1<span class="hljs-name"TargetName>
      <ToolsetNumber>0x4<span class="hljs-name"ToolsetNumber>
      <ToolsetName>ARM-ADS<span class="hljs-name"ToolsetName>
      <uAC6>1<span class="hljs-name"uAC6>
      <TargetOption>
        <TargetCommonOption>
          <Device>MM32F5277E9P<span class="hljs-name"Device>
          <Vendor>MindMotion<span class="hljs-name"Vendor>
          <PackID>MindMotion.MM32F5277E_DFP.0.0.3<span class="hljs-name"PackID>
          <PackURL>http://www.mindmotion.com.cn/Download/MDK_KEIL/<span class="hljs-name"PackURL>
          <Cpu>IRAM(0x30000000,0x1C000) IROM(0x08000000,0x40000) CPUTYPE("Cortex-M33") CLOCK(12000000) ELITTLE<span class="hljs-name"Cpu>
          <FlashUtilSpec><span class="hljs-name"FlashUtilSpec>
          <StartupFile><span class="hljs-name"StartupFile>
          <FlashDriverDll>UL2V8M(-S0 -C0 -P0 -FD30000000 -FC1000 -FN1 -FF0MM32F5270_256 -FS08000000 -FL040000 -FP0($$Device:MM32F5277E9P$Flash\\MM32F5270_256.FLM))<span class="hljs-name"FlashDriverDll>
        ...
          <OutputDirectory>.\\<span class="hljs-name"OutputDirectory>
          <OutputName>micropython.hex<span class="hljs-name"OutputName>
        ...

然后在Windows的命令行界面,輸入調用Keil下載代碼的命令:

uv4.exe -f "d:\\_workspace\\keil\\mm32f5\\mm32f5.uvprojx" -j0 -o "d:\\_workspace\\keil\\mm32f5\\download_log.txt"

image.png

使用命令行方式有一點不方便,命令行在后臺調用Keil執行下載過程沒有任何用戶交互。命令行觸發執行uv4.exe程序不是阻塞式的,所以無法通過程序是否返回判定下載過程已結束。雖然在命令中指定輸出log到指定文件中,但Keil并不是在下載結束后才創建輸出文件,而是逐條寫入輸出文件。如果用戶在下載過程中打開這個log輸出文件,將會看到已經執行的部分操作。因此,也不能通過是否創建log輸出文件判定已將下載成功。必須檢查log輸出文件的內容,待其中包含下載成功并通過驗證的記錄后,才能最終判定下載情況。

使用Ozone

常用J-Link調試器的開發者對Ozone都不陌生。Ozone和J-Link都是SEGGER公司設計發布的面向調試和下載應用的工具,Ozone是一套具有圖形界面的上位機工具,可以適配J-Link調試器,獨立下載可執行文件到目標微控制器并進行調試。

但實際上,Ozone除了適配自家發售的J-Link調試器外,還提供了對開源CMSIS-DAP(DAP-Link)的支持,即使用Ozone通過DAP-Link連接到目標微控制器,也能夠實現獨立下載而執行文件并調試的功能。不過,Ozone支持DAP-Link畢竟只是額外的福利,幾乎每個步驟都會彈窗提示,“這只是個試用功能,未經過充分測試”。

使用Ozone適配DAP-Link的操作同使用J-Link的情況相同,具體步驟如下:

1 啟動Ozone軟件,選擇目標微控制器設備。

剛啟動Ozone軟件時,Ozone會自動檢測到當前電腦上已經接入了DAP-Link調試器,然后提示警告“必須接受如下條款:

1 當前軟件僅適用非商業用途或評估;

2 SEGGER官方不會提供技術支持”。選擇接受“Accpet”。

image.png

2 選擇目標微控制器設備。

當確認目標微控制器設備后,警告提示對話框會再次彈出。仍然是接受“Accept”。

image.png

3 在“連接配置”對話框中,可以看到已經識別出來的DAP-Link了。

Ozone連接調試器的速度,在默認情況下被配置成4MHz。筆者手上的DAP-Link方案中,使用的是低速USB接口,考慮穩妥的情況,將速度改為1MHz。

image.png

4 選擇將要下載的可執行文件

image.png

5 開始下載。

再次彈出提示對話框。選擇接受“Accept”。

image.png

再次彈出提示對話框。選擇接受“Yes”。

image.png

6 下載成功

image.png

如果對頻繁彈出的警告對話框不喜,可勾選“不要重復彈出”復選框,有一定改善效果。

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

    關注

    48

    文章

    6857

    瀏覽量

    148188
  • ARM處理器
    +關注

    關注

    6

    文章

    351

    瀏覽量

    41363
  • 調試器
    +關注

    關注

    1

    文章

    292

    瀏覽量

    23441
  • Cortex-M33
    +關注

    關注

    0

    文章

    10

    瀏覽量

    1851
收藏 人收藏

    評論

    相關推薦

    【實用開發工具】將BAT腳本打包成exe可執行文件

    【實用開發工具】將BAT腳本打包成exe可執行文件
    的頭像 發表于 08-21 19:51 ?2.4w次閱讀
    【實用開發工具】將BAT腳本打包成exe<b class='flag-5'>可執行文件</b>

    C語言變成可執行文件的四大步驟

    從C語言變成最終的可執行文件,需要經過四步。
    發表于 10-18 10:37 ?4577次閱讀

    怎樣生成可執行文件??

    怎么不能生成可執行文件呢大家幫幫忙
    發表于 04-02 23:00

    labview生成可執行文件

    程序做了錯誤提示功能,但是生成可執行文件后,不提示錯誤呢
    發表于 05-09 18:22

    寫好的LabView程序怎么生成可執行文件

    寫好的LabView程序怎么生成可執行文件,客戶端只要安裝可執行文件就能操作運行了,
    發表于 12-17 10:51

    【視頻分享】如何調試可執行文件

    在LabVIEW中,經常發現可執行文件和源代碼執行結果有出入。本視頻講解如何調試可執行文件。在優酷上面看到的關于如何調試可執行文件視頻,感覺還是挺受益的,分享給大家!
    發表于 07-20 14:46

    關于生成可執行文件的問題

    生成了一個可執行文件,在打開.exe文件時,出現了如圖所示的錯誤,請問該怎么處理?
    發表于 01-29 16:19

    LabVIEW可執行文件作為后臺進程運行

    函數, 如何從LabVIEW LabVIEW可執行文件中退出而不必關閉它? 。否則,需要關閉Windows任務管理中的可執行文件,或者以編程方式從另一個VI關閉應用程序,如何以編程方式打開和關閉
    發表于 03-18 21:15

    用MDK生成bin格式的可執行文件

    用MDK 生成bin 文件1用MDK 生成bin 文件Embest 徐良平在RV MDK 中,默認情況下生成*.hex 的可執行文件,但是當我們要生成*.bin 的可執行文件時怎么辦呢
    發表于 08-02 10:52 ?71次下載

    基于LabVIEW的可執行文件調用的研究與實現

    LabVIEW 是美國NI 公司推出的一種基于G 語言的虛擬儀器軟件開發工具。在LabVIEW 開發的軟件中,用戶可能需要調用.exe 可執行文件。本文結合實例詳細介紹了三種調用方法:通過Call
    發表于 08-14 11:42 ?65次下載

    了解在Linux下可執行文件格式

    Linux下面,目標文件、共享對象文件、可執行文件都是使用ELF文件格式來存儲的。程序經過編譯之后會輸出目標文件,然后經過鏈接可以產生
    發表于 05-15 08:49 ?1785次閱讀

    CCES創建可執行文件的操作流程

    本模塊將介紹用CrossCore? Embedded Studio (CCES)創建可執行文件的整個流程。涉及的主題包括使用新項目向導、配置系統和工具選項,以及構建過程。
    的頭像 發表于 07-11 06:06 ?3193次閱讀

    使用Java語言編寫戰機的設計報告和源代碼以及可執行文件

    本文檔的主要內容詳細介紹的是使用Java語言編寫戰機的設計報告和源代碼以及可執行文件免費下載導入eclipse即可運行。
    發表于 11-05 08:00 ?0次下載
    使用Java語言編寫戰機的設計報告和源代碼以及<b class='flag-5'>可執行文件</b>

    【Python】如何將Python腳本打包成exe可執行文件

    【Python實用技巧】如何將Python腳本打包成exe可執行文件?
    的頭像 發表于 08-18 12:40 ?1.8w次閱讀
    【Python】如何將Python腳本打包成exe<b class='flag-5'>可執行文件</b>

    單獨下載可執行文件MM32F5微控制器

    使用Keil MDK或者IAR等使用圖形界面的開發環境,可以在圖形界面環境下編譯源碼工程,并下載編譯生成的可執行文件到目標微控制器中。但若使用ARMGCC等命令行工具鏈,需要額外的下載
    的頭像 發表于 02-17 09:32 ?625次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>