久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5479|回復: 0
打印 上一主題 下一主題
收起左側(cè)

IAR調(diào)用openOCD腳本實現(xiàn)燒錄程序功能

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:351097 發(fā)表于 2020-4-13 21:23 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 沒有你 于 2020-4-13 21:31 編輯

    在IAR for ARM編譯使用STM32,有個不方便的地方,就是如果只下載程序不進行仿真,程序下載完需要手動按復位按鈕才能執(zhí)行程序,比較麻煩。其實很多時候我們都是直接燒錄程序,并不會用到仿真功能,這樣比較省時間。另外一種方式就是在IAR編譯產(chǎn)生hex文件,然后再用其他軟件如STM32 Cube Programmer或者FlyMCU下載hex文件到STM32中。如果有一種工具,可以在IAR編譯完就直接燒錄程序,并且自動重啟,那就方便了。無意之間我看到了openOCD,openOCD是一款開源片上調(diào)試器,旨在提供針對嵌入式設備的調(diào)試、系統(tǒng)編程和邊界掃描功能。IAR不像eclipse支持用戶使用第三方片上調(diào)試器,所以無法直接在IAR上用openOCD。接下來我介紹如何在IAR使用openOCD的程序燒錄功能。一、選擇一款調(diào)試器
    我們需要一款調(diào)試工具,這里我選擇DAP Link。因為DAP Link不僅支持芯片的燒錄和調(diào)試,更重要的是它帶有虛擬串口功能。DAP Link支持免驅(qū)HID,直接接上電腦就可以使用。在IAR for ARM上是支持DAP Link調(diào)試器的,調(diào)試器選項選擇CMSIS DAP即可,DAP Link是CMSIS DAP的升級版本。
二、構(gòu)建腳本文件
    這里我選擇構(gòu)建腳本文件,因為IAR for ARM可以執(zhí)行。我們需要下載openOCD資料文件,我的單片機是STM32F103RC,要在目錄openocd-toolbox\OpenOCD-20190426-0.10.0\share\openocd\scripts\target找到stm32f1x.cfg。然后復制到openocd-toolbox\OpenOCD-20190426-0.10.0\tcl\target中,再這個目錄新建一個stm32f1x_cmsisdap.cfg文件,內(nèi)容為:
interface cmsis-dap
transport select swd

#set FLASH_SIZE 0x20000

source [find target/stm32f1x.cfg]

adapter_khz 10000

點擊保存,在目錄openocd-toolbox\openocd-toolbox\scripts\windows\stm32f1x新建一個flash_write.bat文件,內(nèi)容如下:
..\..\..\OpenOCD-20190426-0.10.0\bin\openocd.exe ^
    -f ..\..\..\OpenOCD-20190426-0.10.0\tcl\target\stm32f1x_cmsisdap.cfg ^
    -c "init;halt;reset halt;flash write_image erase flash_image.hex;reset;shutdown;"
pause

三、測試腳本文件
    flash_write.bat相同目錄粘貼一個STM32F103RC單片機可以執(zhí)行的hex文件,文件命名為flash_image.hex。電腦插上DAP LINK,用SWD接口連接STM32F103RC,然后點擊執(zhí)行flash_write.bat,這時可以看到如下圖:


    顯示DAP LINK下載256k大小的文件用時10.76秒,實測比STLINK V2快1秒。這個速度比串口下載程序快多了,串口波特率選擇460800,下載256k的程序也要36秒左右,簡直令人抓狂。
四、復制文件到工程
    由于腳本文件用到OpenOCD-20190426-0.10.0目錄的文件,我們需要將OpenOCD-20190426-0.10.0文件夾復制到STM32工程里面,將flash_write.bat腳本復制到工程hex文件生成的目錄下。flash_write.bat的內(nèi)容還有做修改,以便IAR可以正常調(diào)用。修改如下:
@echo off
cd /D %~dp0
..\..\TOOL\OpenOCD-20190426-0.10.0\bin\openocd.exe ^
    -f ..\..\TOOL\OpenOCD-20190426-0.10.0\tcl\target\stm32f1x_cmsisdap.cfg ^
    -c "init;halt;reset halt;flash write_image erase STM32F103.hex;reset;shutdown;"
::pause

    說明:“@echo off”和“cd /D %~dp0”是給IAR識別用的,加上這兩句,IAR就能正常調(diào)用該腳本。“::pause”表明pause被注釋掉的,這樣執(zhí)行窗口在程序下載完成后會自動關(guān)閉。對openocd.exe 和stm32f1x_cmsisdap.cfg的相對路徑也有根據(jù)實際情況更改。
五、IAR調(diào)用腳本文件
    人在IAR的Options-Build Actions-Bulid Actions Configuration-Post Build Command Line填寫"$EXE_DIR$\flash_write.bat",如下圖所示:


    點擊確認后,就配置完成了。現(xiàn)在只要按下快捷鍵F7,IAR就會編譯程序,然后調(diào)用腳本下載hex文件,腳本會在下載后讓STM32F103會重啟執(zhí)行程序,不用人工按復位按鍵。如果需要程序仿真,則點擊debugger without download,IAR就會直接進入仿真,省去重新下載程序的時間。
    編譯同一個大工程IAR的速度會比kei明顯快不少,這也是部分人喜歡用IAR的原因之一,長期下來,節(jié)省的時間可不是一點點了。現(xiàn)在加上這個功能,就更快了,直接按F7就可以自動編譯和燒錄程序,連鼠標都不用點。目前國內(nèi)IAR用戶還是比keil少,有部分原因是很多人從51就一直用keil,使用習慣問題導致后面開發(fā)也選擇keil。其實我們沒有必要局限在keil,除了IAR,eclipse也是一個不錯的開發(fā)平臺。
    IAR for ARM版本為:8.32.1,本次STM32F103最小工程(帶自動下載程序腳本)的分享鏈接如下:https://pan.baidu.com/s/1bGJnWNIr0fH0bC9X6WCYdQ  提取碼:6qxc。有興趣的可以下載使用。



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 二区欧美 | www.se91| 久久久久久久电影 | 欧美久久影院 | 久久99久久99精品免视看婷婷 | 亚洲一区二区在线视频 | 免费观看一级黄色录像 | 亚洲欧美在线视频 | 日韩一区二区三区在线观看 | 欧美日韩中文字幕 | 秋霞电影院午夜伦 | 国产日韩视频 | 性生活毛片 | 亚洲在线 | 中文字幕高清av | 国产日韩欧美 | 91免费在线看 | 免费毛片网站在线观看 | 日本不卡一区二区三区在线观看 | 国产一区成人 | 三级在线免费 | 在线免费黄色 | 亚洲精品在线免费观看视频 | 午夜日韩视频 | 97人人澡人人爽91综合色 | 日韩黄 | 91视视频在线观看入口直接观看 | 日韩欧美在线观看一区 | 在线看h| 亚洲一区二区三区在线播放 | 国产成人艳妇aa视频在线 | 久久久精品一区二区三区 | av毛片 | 99久久99久久精品国产片果冰 | 精品久久久一区二区 | 天天爽夜夜爽精品视频婷婷 | 欧美黄色网 | 91热在线 | 午夜伦理影院 | 91精品久久久久久久久中文字幕 | 国产精品一区二区三区久久久 |