找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2346|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)程序下載方式ISP、IAP、JTAG

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:290949 發(fā)表于 2018-3-12 19:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

一般只能通過三種方式下載程序到單片機(jī)中:1.JTAG    2.ISP    3.IAP

1.JTAG

    要使用JTAG方式下載程序,不管是使用J-LINK、ULINK、ST-LINK,只需要把單片機(jī)上相應(yīng)的程序下載留出來,然后和編程器連接上就可以下載程序了。

2.ISP

    要通過ISP方式下載程序,需要用到單片機(jī)內(nèi)部自帶的Bootloader,這個Bootloader是預(yù)制在單片機(jī)內(nèi)部的,出廠自帶的,它在出廠后就不能修改或擦除。因此首先要將BOOT1=0  BOOT0=1,讓單片機(jī)從系統(tǒng)存儲器啟動,然后使用ISP下載軟件就可以下載程序了。STM32使用的ISP下載軟件是mcuisp。ISP可以有很多種方式,比如串口、USB、CAN。

引用下面:

       STM32根據(jù)FLASH主存儲塊容量、頁面的不同,系統(tǒng)存儲器的不同,分為小容量、中容量、大容量、互聯(lián)型,共四類產(chǎn)品。

    小容量產(chǎn)品主存儲塊1-32KB,每頁1KB。系統(tǒng)存儲器2KB。
    中容量產(chǎn)品主存儲塊64-128KB,每頁1KB。系統(tǒng)存儲器2KB。
    大容量產(chǎn)品主存儲塊256KB以上,每頁2KB。系統(tǒng)存儲器2KB。
    互聯(lián)型產(chǎn)品主存儲塊256KB以上,每頁2KB。系統(tǒng)存儲器18KB。
        對于具體一個產(chǎn)品屬于哪類,可以查數(shù)據(jù)手冊,或根據(jù)以下簡單的規(guī)則進(jìn)行區(qū)分:
        STM32F101xx、STM32F102xx 、STM32F103xx產(chǎn)品,根據(jù)其主存儲塊容量,一定是小容量、中容量、大容量產(chǎn)品中的一種,STM32F105xx、STM32F107xx是互聯(lián)型產(chǎn)品。

        互聯(lián)型產(chǎn)品與其它三類的不同之處就是BootLoader的不同,小中大容量產(chǎn)品的BootLoader只有2KB,只能通過USART1進(jìn)行ISP,而互聯(lián)型產(chǎn)品的BootLoader有18KB,能通過USAT1、4、CAN等多種方式進(jìn)行ISP。小空量產(chǎn)品、中容量產(chǎn)品的BootLoader與大容量產(chǎn)品相同。

3.IAP

引用正點(diǎn)原子《STM32 不完全手冊》的介紹

    IAP(In Application Programming)即在應(yīng)用編程,IAP 是用戶自己的程序在運(yùn)行過程中對User Flash 的部分區(qū)域進(jìn)行燒寫,目的是為了在產(chǎn)品發(fā)布后可以方便地通過預(yù)留的通信口對產(chǎn)品中的固件程序進(jìn)行更新升級。 通常實現(xiàn)IAP 功能時,即用戶程序運(yùn)行中作自身的更新操作,需要在設(shè)計固件程序時編寫兩個項目代碼,第一個項目程序不執(zhí)行正常的功能操作,而只是通過某種通信方式(如USB、USART)接收程序或數(shù)據(jù),執(zhí)行對第二部分代碼的更新;第二個項目代碼才是真正的功能代碼。這兩部分項目代碼都同時燒錄在User Flash 中,當(dāng)芯片上電后,首先是第一個項目代碼開始運(yùn)行,它作如下操作:
1)檢查是否需要對第二部分代碼進(jìn)行更新
2)如果不需要更新則轉(zhuǎn)到4)
3)執(zhí)行更新操作
4)跳轉(zhuǎn)到第二部分代碼執(zhí)行
    第一部分代碼必須通過其它手段,如JTAG 或ISP 燒入;第二部分代碼可以使用第一部分代碼IAP 功能燒入,也可以和第一部分代碼一起燒入,以后需要程序更新時再通過第一部分IAP代碼更新。
    我們將第一個項目代碼稱之為Bootloader 程序,第二個項目代碼稱之為APP 程序,他們存放在STM32 FLASH 的不同地址范圍,一般從最低地址區(qū)開始存放Bootloader,緊跟其后的就是APP 程序(注意,如果FLASH 容量足夠,是可以設(shè)計很多APP 程序的,本章我們只討論一個APP 程序的情況)。這樣我們就是要實現(xiàn)2 個程序:Bootloader 和APP。STM32 的APP 程序不僅可以放到FLASH 里面運(yùn)行,也可以放到SRAM 里面運(yùn)行


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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表