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

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

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

3天內不再提示

關于STM32芯片的三種燒寫方式對比

茶話MCU ? 2019-08-29 10:49 ? 次閱讀

我們做STM32產品開發,最終是要將編寫的程序代碼寫進芯片存儲器,通常指Flash存儲器【含可以映射到芯片存儲空間的片外存儲器】,讓程序正常運行起來以實現相應的功能。

一般來講,將我們準備好的機器代碼HEX或BIN文件等寫進片上FLASH可以有三種常用的燒寫方式。【溫馨提示:下面提到的燒寫方式的術語或稱謂不是絕對的,對于不同的器件可能有不同的表述甚至內涵,這里僅針對STM32,知道怎么回事就好】

第一種,ICP【In circuit programming】,即在電路編程或在線編程【注:不必太糾結該術語名字或稱謂。平常稱之為ICP也挺好】。一般是指利用調試器通過調試接口將程序代碼寫進芯片存儲器的過程。調試器可以是ST官方的STLINK或其它公司的產品,比如JLINK,ULink等。 這里的調試端口可以是SWD或JTAG接口。

針對ICP編程方式,ST官方有提供相應的軟件工具,比如STLINK_UtilitySTM32cbueProgrammer。至于其它公司的調試器,也有配套的軟件工具。

第二種,IAP【In application programming】,即在應用編程。一般是指芯片里已經存在具有升級更新功能的代碼在里面了,用戶基于該部分功能代碼再將另外的程序代碼寫進芯片存儲器的過程。也就是說芯片里平常有兩套代碼,一套用于實現代碼的更新升級,往往稱之為用戶引導代碼或啟動代碼。另外一套就是芯片平常運行的功能代碼,我們稱之為用戶應用代碼。

第三種,ISP【In system programming】,即在系統編程。我們可以把該模式看做一種特殊的IAP模式,只是片內的啟動代碼是由芯片廠家這個特定用戶出廠時寫好提供的。一般來講該段代碼位于特定存儲位置、用戶不可更改。

我們使用ISP方式編程的話,可以選擇內嵌系統啟動代碼認可的通信接口,比如USART,I2C,SPI,CANUSB等,借助于芯片廠家或第三方提供的軟件工具來實現。具體到STM32系列芯片,欲利用ISP方式進行編程燒寫的話,軟件工具可以使用ST官方提供的Stm32CubeProgrammer。

對于STM32芯片的ISP方式燒錄編程,往往需要對硬件BOOT腳做合適的電平設置,以及對選項字進行正確配置,確保芯片從系統存儲區啟動、運行。另外,燒錄完畢后,記得將相關BOOT腳電平進行調整,以保證下次芯片啟動后運行在正確的程序空間,一般是指調整回芯片主程序區。

上面介紹了ICP和ISP燒錄所涉及的軟件工具。至于IAP,程序的更新升級就是基于MCU現有的通信接口并借助用戶之前寫進芯片的啟動代碼來完成。比方,用戶通過UART接口借助于內部引導程序來完成應用程序的更新。這里可能會有人會問,那用戶準備的啟動程序如何寫進芯片呢?顯然,我們可以通過ICP方式或ISP方式來完成用戶啟動代碼的事先燒寫。

下面是三種燒寫方式的一個簡單比較匯總表。三種方式各有特點.。表格中提到的無特定軟硬件接口需求是相對的,意思是指基于芯片現有常用接口和通用軟硬件工具,比方串口調試助手等。其中IAP方式對特定軟硬件的依賴性最弱,使用更為靈活。但開發工程師須多做一件事,即自己寫用戶引導程序。當然,對于STM32來講,各個系列都有一些IAP例程供用戶參考。而ICP方式往往是產品調試過程中最為常用的一種燒寫方式。ISP方式是生產環節較為常用的一種代碼燒寫方式。

關于STM32芯片的三種燒寫方式對比

下面就STM32F746芯片使用ISP方式的燒寫流程做個簡單介紹,順便做些提醒。

一般來講絕大部分STM32芯片都是支持ISP方式的。在選用這個燒寫方式之前先確認下它是否支持ISP方式,即片內是否內置了system memory,該處存放著系統啟動程序。我們可以通過各芯片所屬的參考手冊BOOT章節和AN2606應用筆記查看確認。

經確認,STM32F746支持ISP,不妨選用UART3接口。【當然,它還支持其它通信接口】

查看其所對應的參考手冊,了解使用ISP方式所需的配置。一般指BOOT腳的電平確定、選項字的配置。具體到這里,就是確定BOOT腳的電平和System memory的啟動入口地址。

對于STM32F7而言,芯片的啟動地址可以通過啟動地址選項字節任意配置,且有兩種配置方式,對應于BOOT腳的電平為高或為低時啟動地址選項字節所給出的地址。其地址范圍在0x0000 0000 to 0x3FFF FFFF之間。如果配置的地址越界,硬件將使用默認啟動入口地址。

我們現在要使用system memory,故需找出它所在的地址范圍,根據手冊可以查到。

從上面表格得知,訪問System memory可以有兩個地址,分別源自不同的訪問接口。

我們不妨選用ICTM接口地址作為其入口地址,即0x00100000,將BOOT腳電平設置為高,則需配置BOOT_ADDR1【15:0】選項字節。這個選項字節是怎么擬定的呢?它是將程序啟動入口地址的bit29~bit14對應過來的。比方我們選擇system_memory的啟動入口地址為0x0010,0000,則它所對應的選項字節數據就是0x0040。這點要弄清楚,否則當我們想通過修改啟動地址選項字節來改變啟動地址時就不知怎么填寫數據了。

當然,對于BOOT_ADDR0和BOOT_ADDR1都有默認值。BOOT_ADDR0的默認值是0080,對應于ITCM接口的0x00200000。BOOT_ADDR1的默認值是0040,即對應于ITCM接口的0x00100000,結合上面的介紹可知它剛好是system memory的入口地址。顯然,對于一顆沒有更改過BOOT_ADDR1的STM32F7芯片來說,欲使用ISP的話,只需將BOOT腳置高即可,無須再手動調整啟動地址選項字節。

剩下的事情就是確認硬件線路、打開STM32CubeProgrammer、連機下載即可。當然下載前可以根據需要做好各自配置,比如讀寫保護、看門狗啟動選擇等。

再次提醒下,通過ISP燒寫完畢后,記得調整BOOT腳的電平以保證芯片重啟后運行主程序區的用戶代碼。

總的來講,基于ISP方式的STM32芯片燒寫過程不復雜。最后一點建議,目標板上最好弄個復位鍵,操作方便點,如果板上不方便設計復位鍵,燒寫工位上安排個也可以。基于STM32F746芯片使用ISP方式進行燒錄就提醒這么多。畢竟說得再多,不如一試。

本文的主要目的就是讓剛接觸STM32的人對STM32芯片的燒寫方式有個基本的了解,至于具體的實現,除了上面提到的基于ST的工具外,還有其它第三方的編程燒寫工具可以選用。

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

    關注

    0

    文章

    57

    瀏覽量

    14295
  • STM32芯片
    +關注

    關注

    0

    文章

    38

    瀏覽量

    4382

原文標題:STM32芯片的幾種燒寫方式簡介

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32失敗錯誤的處理方法

    STM32失敗錯誤:Contents mismatch at: 08000000H (Flash=FFH Required=00H)
    的頭像 發表于 06-21 08:55 ?1.3w次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>燒</b><b class='flag-5'>寫</b>失敗錯誤的處理方法

    debugInRam,與debuginflash,reinflash這三種方式有什么區別?

    我買的是一個lpc2131的arm板子然后總是出現以下情況,我用的是jlink,這樣之后就沒法代碼了,然后只有用j-tag之后才能重新編碼?我用的
    發表于 02-20 18:34

    單片機是什么?有哪幾種方式

    單片機是什么單片機三種方式
    發表于 04-01 19:49

    STM32三種開發方式

    1 STM32三種開發方式通常新手在入門STM32的時候,首先都要先選擇一要用的開發方式,不
    發表于 08-05 06:56

    STM32三種啟動方式

    STM32三種啟動方式依靠BOOT0和BOOT1兩個引腳的電平來決定,ST官方推薦的是串聯10k電阻然后在接高電平或接地。我用0R直接接地的,沒有串聯10k電阻,造成STM32的硬件
    發表于 08-11 06:33

    STM32三種開發方式分享

    STM32三種開發方式通常新手在入門STM32的時候,首先都要先選擇一要用的開發方式,不同的
    發表于 12-01 07:59

    STM32三種boot模式介紹

    、示例驗證總結參考資料任務摘要請說明STM32三種Boot模式的差異,并在之前第11-12周“C語言各種變量的存儲地址”作業代碼基礎上,研究至少兩boot模式下,代碼下載(燒錄)運行后所在的地址位置,與理論
    發表于 12-10 07:46

    STM32三種啟動方式是什么

    STM32三種啟動方式是什么
    發表于 12-15 07:16

    esp8266-01板的arduino方式分享

    這個方式,是ESP8266無線模塊針對于Arduino開發的一
    發表于 11-23 15:41 ?5.1w次閱讀
    esp8266-01板的arduino<b class='flag-5'>燒</b><b class='flag-5'>寫</b><b class='flag-5'>方式</b>分享

    單片機三種方式解析

    所謂,其實就是對單片機中的rom進行擦寫。現代工藝下,rom已經可以進行多次擦寫,但在早期,rom只能一次性設計好,例如早期的PLC,把二極管上的絲燒了后就永久編碼出1。
    發表于 03-23 16:01 ?5577次閱讀
    單片機<b class='flag-5'>燒</b><b class='flag-5'>寫</b>的<b class='flag-5'>三種</b><b class='flag-5'>方式</b>解析

    單片機程序的三種方式

    早期一般是將調試好的單片機程序寫入到 ROM、 EPROM 中,這種操作就像刻制光盤一樣,實在高電壓方式下寫入,PROM 是一次性寫入,存儲內部發生變化,有些線路或元件就被斷,不可再恢復,所以叫做
    發表于 07-16 10:08 ?9078次閱讀

    單片機常用的三種程序方式資料下載

    電子發燒友網為你提供單片機常用的三種程序方式資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣
    發表于 04-10 08:53 ?3次下載
    單片機常用的<b class='flag-5'>三種</b>程序<b class='flag-5'>燒</b><b class='flag-5'>寫</b><b class='flag-5'>方式</b>資料下載

    三種常見的STM32單片機的方法

    三種常見的STM32單片機的方法
    發表于 05-28 09:57 ?34次下載

    STM32:程序方式

    模式SWD模式是ST-LINK的一方式,只需要4根線,分別為VCC,GND,SWCLK,SWDIO。接線圖如下:2. JTAG模式JTAG模式是ST-LINK
    發表于 12-07 10:51 ?15次下載
    <b class='flag-5'>STM32</b>:程序<b class='flag-5'>燒</b><b class='flag-5'>寫</b><b class='flag-5'>方式</b>

    恩智浦LPC2378芯片三種程序方法

    芯片解密我們得到燒錄碼之后又將面臨下一個難關,那么就是芯片;很多人表示為何程序明明是正確的,但為何自己燒錄的芯片就不能正常使用呢?致芯
    的頭像 發表于 12-20 13:32 ?1982次閱讀
    恩智浦LPC2378<b class='flag-5'>芯片</b>的<b class='flag-5'>三種</b><b class='flag-5'>燒</b><b class='flag-5'>寫</b>程序方法
    主站蜘蛛池模板: 视频亚洲一区| 欧美xingai| 久草资源在线播放| 黑粗硬大欧美视频| v视界影院最新地址| 亚洲成a人片77777潘金莲| 欧美ol丝袜高跟秘书在线观看| h视频在线观看视频观看| 高清xxx| 亚洲一区二区免费视频| 久久99热久久精品| 亚洲国产人成在线观看| 五月婷婷激情综合| 日本a网站| 亚洲涩色| 男人日女人免费视频| 香蕉视频久久久| 亚洲伊人99综合网| 四虎永久在线日韩精品观看| 欧美在线视频一区二区三区| 黄视频在线播放| 夜夜夜精品视频免费| 毛片爽爽爽免费看| 日本xxxx18vr69| 操的网站| 免费啪| 3344在线| 国产精品欧美精品国产主播| 五月六月伊人狠狠丁香网| 欧美日韩在线成人免费| 欧美色图日韩色图| 国模绪| 国产一二三区在线| 午夜黄色影片| 69国产视频| 短篇禁伦小说| 欧美三级第一页| 一级视频免费观看| eeuss秋霞成人影院| 狠狠干网站| 欧美一级特黄视频|