《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > ARM嵌入式系統的ISP設計
ARM嵌入式系統的ISP設計
嵌入式在線
摘要: 本文闡述的這種通過串口ISP的方法已經在實際的開發生產過程中使用。實踐證明,相比其他燒錄Flash的方法有很多優勢,比如成本低、硬件連接簡單、操作方便、增強軟件的安全性等。筆者使用的MCU是STR730,稍做改動也可以把這種ISP方法推廣到其他ARM體系結構的MCU上去。
關鍵詞: ARM ISP MCU STR730
Abstract:
Key words :

應用程序的固化是嵌入式產品開發和生產過程中一個重要環節。基于ARM的嵌入式系統常用的程序固化方法是,用仿真器通過JTAG口將程序燒錄到Flash里,在產品的開發階段,使用仿真器幾乎是必然的;然而到了產品的生產階段,進行應用程序燒錄或升級操作的往往是生產線上的工人,他們不易掌握仿真器的使用方法,而且在生產階段也需要把JTAG調試口封住以防軟件被窺視。筆者在使用意法半導體的STR730開發產品的過程中,設計了一種通過串口進行ISP(In System Programming,在系統編程)的方案。該方案成本低,生產線使用起來也很方便,而且即使升級過程中發生掉電之類的意外也不會影響下一次升級,安全而可靠。


1 硬件連接
    ISP方案的硬件連接如圖1所示。RS232轉接板用來將RS232電平轉換為TTL電平,并通過ISP_EN引腳給ARM開發板提供信號,讓其進入ISP狀態。PC機上運行用VC語言編寫的ISP.exe,該程序把需要燒錄到F1ash里的.bin文件加密后發送到ARM開發板,同時把燒錄的進度提示顯示給用戶。圖1中的陰影部分具有固定的程序。

2 Flash燒錄原理
2.1 存儲器分配
    STR730是意法半導體生產的基于ARM7TDMI的微控制器芯片,內置16 KB RAM(0xa0000000~Oxa0003fff)和256 KB Flash(Ox80000000~Ox8003ffff)。內置256 KB Flash的分配情況如圖2所示。按照圖2中存儲器的分配編寫Scatter文件,在生成可執行文件時鏈接器會根據Scatter文件的內容把相關代碼段定位到特定的地址上。該例中,程序從Flash啟動,且沒有使用存儲器重映射,因此中斷向量必須定位到Flash的起始位置。

    扇區O的內容需要事先通過JTAG口燒入,此后就可以利用扇區O中的燒錄程序Programrher.o通過串口進行ISP。在整個ISP過程中扇區0的內容是保持不變的,這樣就可以防止ISP過程中出現掉電之類的意外,導致初始化代碼Startup或燒錄程序Programmer受到損壞而無法再一次進行ISP。
    無論對嵌入式產品添加新功能還是修改原有的軟件BUG,涉及的都只是用戶應用程序的改動,初始化代碼Startup.s是無需改動的,所以扇區O的內容在ISP過程中可否保持不變,關鍵是能否使首次編譯生成的Vector.0始終與以后多次編譯的App.o相匹配。
    需要特別指出的是,當用戶應用程序發生改變時,實際的中斷服務函數(一般是C語言函數)很可能發生了改變,或者是實際的中斷服務函數的入口地址發生了改變,怎么通過固定不變的中斷向量Vector.o找到變化的中斷服務函數的入口呢?只要這個問題解決了,就可以使首次編譯生成的Vector.o始終和以后多次編譯的App.o相匹配,這是該方案可行性的關鍵所在。為解決這個問題,筆者在Flash的固定位置(0x80002000~0x800020ff)做了一個中斷映射表,實際上里面存放的是一條條跳轉指令。由于中斷映射表INTMap.s和用戶應用程序App.c是一同編譯、鏈接的,里面的跳轉指令當然可以準確找到實際的中斷服務程序入口;而位于扇區O的中斷向量Vector.s雖然不和用戶應用程序一起編譯,但中斷向量里的跳轉指令是絕對跳轉到固定的中斷映射表區域。這樣通過2次跳轉就可以準確找到中斷服務程序的入口。
    可以通過圖3看出快中斷的處理流程(其他的中斷處理流程類似)。

2.2 ISP執行的步驟
    筆者把起到燒錄Flash作用的程序單獨作為一個工程編譯、鏈接,生成.bin文件;然后把.bin文件轉化成一個unsigned char型的數組,并把該數組放在一個單獨的文件Programmet.c中;最后利用Scatter文件把Programmer.o定位在固定的地址空間(0x80001000~Ox80001fff,如圖2所示)。這樣一來,就可以編寫匯編程序,把燒錄程序Pro—grammer.o拷貝到RAM中,并讓PC指針跳轉到RAM中執行燒錄。由于STR730沒有外部Flash,要燒錄Flash程序必須在RAM中運行,所以拷貝Programmer.o到RAM中是必需的。以下代碼摘取自Startup.s。
CMP r1,#1


    燒錄程序Programmet的軟件流程如圖4所示。

    需要說明的是:
    ①擦除Flash并不是完全擦除,而是擦除扇區0之外的其他扇區;
    ②數據緩沖區有限,每次只接收指定大小的數據,這樣接收和燒錄就可以并行進行,提高了ISP的速度;
    ③為了提高軟件的安全性,原始的.bin文件是經過加密的,在燒錄前需要將原始數據解密。


結 語
    本文闡述的這種通過串口ISP的方法已經在實際的開發生產過程中使用。實踐證明,相比其他燒錄Flash的方法有很多優勢,比如成本低、硬件連接簡單、操作方便、增強軟件的安全性等。筆者使用的MCU是STR730,稍做改動也可以把這種ISP方法推廣到其他ARM體系結構的MCU上去。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一区二区三区精品| 欧美精品高清视频| 99re国产精品| 亚洲国产精品嫩草影院| 久久黄色小说| 欧美亚洲专区| 欧美一区二区三区喷汁尤物| 亚洲网站在线观看| 亚洲视频电影图片偷拍一区| 宅男精品导航| 亚洲一区在线直播| 午夜激情综合网| 午夜亚洲视频| 欧美在线|欧美| 久久激情综合网| 亚洲电影免费观看高清完整版在线 | 欧美成人精品影院| 欧美www视频| 欧美成人午夜剧场免费观看| 欧美va亚洲va国产综合| 欧美v日韩v国产v| 欧美精品性视频| 欧美日精品一区视频| 国产精品av久久久久久麻豆网| 欧美午夜精品久久久久久久| 国产精品白丝黑袜喷水久久久| 久久综合伊人77777蜜臀| 亚洲国产日韩欧美综合久久 | 一本一本大道香蕉久在线精品| 亚洲人成毛片在线播放| 99re这里只有精品6| 亚洲婷婷综合色高清在线| 亚洲一区二区精品| 欧美一区二区视频97| 久久精品亚洲精品国产欧美kt∨| 久久久www免费人成黑人精品| 久久色在线观看| 欧美国产日韩精品| 欧美视频一区二区三区| 国产精品久久一区主播| 国产夜色精品一区二区av| 韩国一区二区三区在线观看| 亚洲国产精品123| 99精品国产高清一区二区| 亚洲影视九九影院在线观看| 欧美一区二区成人| 亚洲美女毛片| 亚洲欧美日韩直播| 蜜桃久久av| 欧美午夜电影网| 国产综合在线看| 亚洲精品免费在线播放| 一区二区三区四区五区精品视频| 亚洲综合日韩在线| 亚洲国产一区视频| 一区二区三区精品视频| 性亚洲最疯狂xxxx高清| 久久久成人网| 欧美日韩国产系列| 国产午夜精品理论片a级大结局 | 亚洲素人一区二区| 亚洲精品视频免费观看| 一本色道久久综合亚洲精品婷婷 | 中文av一区二区| 欧美在线视频全部完| 99视频一区| 久久成人精品视频| 欧美国产亚洲精品久久久8v| 国产精品欧美日韩一区二区| 曰韩精品一区二区| 亚洲婷婷综合色高清在线| 久久国产精品久久久久久| 一区二区三区四区在线| 久久九九国产精品| 欧美午夜剧场| 在线日韩中文| 亚洲在线日韩| 亚洲最新在线视频| 久久免费视频观看| 欧美日韩在线视频一区| 尤物精品在线| 新狼窝色av性久久久久久| 99精品欧美一区二区蜜桃免费| 欧美主播一区二区三区| 欧美日韩亚洲一区二区三区在线| 国内久久视频| 宅男精品视频| 亚洲美女毛片| 久久在线免费| 国产精品久久97| 亚洲国产成人在线播放| 欧美在线视频网站| 香蕉久久一区二区不卡无毒影院| 欧美日韩1234| 亚洲第一区在线观看| 午夜精品成人在线| 亚洲一区二区免费| 欧美国产日韩一区二区在线观看| 国产亚洲视频在线| 亚洲四色影视在线观看| 亚洲美女中出| 蜜桃久久av一区| 韩日精品视频| 香蕉免费一区二区三区在线观看| 亚洲永久网站| 欧美四级在线| 日韩亚洲不卡在线| 亚洲免费福利视频| 欧美电影电视剧在线观看| 国产一区二区三区丝袜| 亚洲曰本av电影| 亚洲欧美影音先锋| 欧美三级黄美女| 亚洲美女中文字幕| 日韩视频永久免费观看| 麻豆freexxxx性91精品| 国产在线播放一区二区三区| 香蕉视频成人在线观看| 欧美在线观看视频| 国产麻豆日韩| 午夜在线一区| 久久爱另类一区二区小说| 国产啪精品视频| 性做久久久久久久久| 久久国产婷婷国产香蕉| 国产丝袜美腿一区二区三区| 亚洲欧美日韩视频一区| 午夜精品美女自拍福到在线| 国产精品腿扒开做爽爽爽挤奶网站| 在线一区二区三区做爰视频网站 | 狠狠入ady亚洲精品| 欧美在线观看天堂一区二区三区 | 国语自产精品视频在线看| 欧美在线资源| 久久综合国产精品台湾中文娱乐网| 国产亚洲美州欧州综合国| 欧美一区视频在线| 久久婷婷国产综合精品青草| 国产亚洲精品久| 欧美主播一区二区三区| 久久人91精品久久久久久不卡 | **网站欧美大片在线观看| 亚洲三级网站| 欧美人与禽猛交乱配| 欧美成人a∨高清免费观看| 亚洲国产二区| 夜夜嗨一区二区三区| 国产精品sm| 亚洲在线电影| 久久久一本精品99久久精品66| 在线成人h网| 日韩一区二区精品在线观看| 欧美日韩中文字幕精品| 亚洲一区在线直播| 久久综合给合久久狠狠色| 亚洲黄网站在线观看| 亚洲一二三四区| 国产一区二区三区黄| 亚洲激情精品| 国产精品www.| 久久精品国产第一区二区三区最新章节| 免费亚洲一区| 亚洲午夜精品久久久久久浪潮| 久久激情一区| 亚洲欧洲精品一区| 午夜精品偷拍| 亚洲福利国产精品| 亚洲一区尤物| 国产在线拍揄自揄视频不卡99| 亚洲看片免费| 国产精品视频免费一区| 久久国产精品黑丝| 欧美日韩免费高清| 亚洲欧美日韩天堂| 欧美激情一区二区三区四区| 亚洲精品国久久99热| aⅴ色国产欧美| 国产精品成人一区二区网站软件 | 亚洲国产高清一区二区三区| 欧美在线网址| 久久久国产视频91| 亚洲激情偷拍| 午夜在线不卡| 国产精品视频内| 亚洲性视频h| 老牛国产精品一区的观看方式| 亚洲精品影院在线观看| 欧美一区二区三区视频在线| 在线观看国产精品网站| 亚洲一区影院| 在线免费高清一区二区三区| 亚洲欧美一区二区三区极速播放| 在线免费不卡视频| 欧美在线二区| 一本一本久久a久久精品牛牛影视| 久久免费视频观看| 亚洲视频免费在线观看| 欧美成人中文| 欧美一区二区免费观在线| 欧美视频在线视频|