專利名稱:可運(yùn)行用戶程序的多功能微處理器開(kāi)發(fā)編程工具的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型屬于微處理器應(yīng)用領(lǐng)域,具體涉及一種微處理器仿真、編程、脫機(jī)程序下載的多功能微處 理器開(kāi)發(fā)編程工具。
背景技術(shù):
目前微處理器市場(chǎng)百花齊放,比如ARM、 AVR、 PIC、 8051、 MSP430等等,極大推動(dòng)了電子產(chǎn)品智能化。 然而各個(gè)微處理器生產(chǎn)廠家通常會(huì)制定獨(dú)特的仿真、編程方法,導(dǎo)致每選用一種微處理器都需要購(gòu)買(mǎi)配套 的仿真器。大部分仿真器必須連接計(jì)算機(jī)使用,不便產(chǎn)品的批量生產(chǎn)。有的產(chǎn)品售后階段需要現(xiàn)場(chǎng)升級(jí)軟 件,需要能脫機(jī)工作的便攜式編程器,稱為ISP(在系統(tǒng)編程)和IAP(在應(yīng)用編程)。目前微處理器、可編 程器件仿真編程設(shè)備各自為政,導(dǎo)致用戶重復(fù)投資等情況。
目前的微處理器開(kāi)發(fā)編程工具的配套軟件,或者由微處理器生產(chǎn)廠家(原廠)自行開(kāi)發(fā),或者由語(yǔ)言 工具提供商開(kāi)發(fā),或者由第三方廠家開(kāi)發(fā)。由于微處理器的編程、仿真時(shí)序、算法的知識(shí)產(chǎn)權(quán)由微處理器 生產(chǎn)廠家擁有;而配套語(yǔ)言工具的接口的知識(shí)產(chǎn)權(quán)又由語(yǔ)言工具提供商擁有,第三方廠家開(kāi)發(fā)時(shí),需要購(gòu) 買(mǎi)或規(guī)避知識(shí)產(chǎn)權(quán)問(wèn)題。而微處理器生產(chǎn)廠家和語(yǔ)言工具提供商出品的工具通常價(jià)格高,不利于微處理器 使用者購(gòu)買(mǎi)。
另外,也存在各種基于GPL自由軟件授權(quán)協(xié)議開(kāi)發(fā)的微處理器開(kāi)發(fā)編程軟件環(huán)境,如OpenOCD就是一 種開(kāi)源的微處理器開(kāi)發(fā)環(huán)境。但是由于GPL授權(quán)協(xié)議的規(guī)定必須同時(shí)提供源代碼給最終用戶,第三方廠家 沒(méi)有動(dòng)力制造基于GPL授權(quán)協(xié)議軟件環(huán)境的開(kāi)發(fā)工具,而且由于ISP和IAP編程工具很多時(shí)候需要包含加 密處理,開(kāi)源對(duì)用戶的利益也沒(méi)有保證。GPL授權(quán)協(xié)議賦予軟件改進(jìn)的生命力,但是也限制了商業(yè)應(yīng)用的 潛力。
有時(shí)候,用戶也會(huì)有自行更改開(kāi)發(fā)工具軟件的需求。以滿足特殊功能。
目前很多MCU支持MMU (存儲(chǔ)器映射單元)或MPU (存儲(chǔ)器保護(hù)單元),能避免用戶部分軟件對(duì)系統(tǒng)軟 件的訪問(wèn)。但是由于用戶部分軟件和系統(tǒng)軟件仍為一個(gè)系統(tǒng),不能避免GPL的開(kāi)源規(guī)定。而且安全性能 也得不到保證。比如WINDOWS的病毒,仍然可以入侵系統(tǒng)內(nèi)核。另一方面,支持MMU或MPU的微處理器通 '常價(jià)格較高,功耗較大。
發(fā)明內(nèi)容
本實(shí)用新型提出一種可運(yùn)行用戶程序的多功能微處理器開(kāi)發(fā)編程工具。特點(diǎn)是利用了某些微處理器能 夠在SRM中啟動(dòng)運(yùn)行用戶軟件,此時(shí)FLASH中廠家程序代碼可處于讀保護(hù)狀態(tài)的特性。將GPL軟件或用 戶軟件裝入SRAM中獨(dú)立運(yùn)行。而此時(shí)FLASH中廠家程序代碼處于被保護(hù)狀態(tài),對(duì)系統(tǒng)完全不起作用。只 有重新啟動(dòng)系統(tǒng)才再次運(yùn)行廠家程序。
本實(shí)用新型采用的技術(shù)方案是在主控制單元101之外,設(shè)置輔助啟動(dòng)控制單元102,通過(guò)輔助啟動(dòng) 控制單元選擇主控制單元執(zhí)行主控制單元內(nèi)FLASH中的程序代碼或執(zhí)行主控制單元內(nèi)SRAM中的程序代碼。 該開(kāi)發(fā)編程工具在保證第三方廠家程序代碼的保密性和安全性的同時(shí),支持GPL授權(quán)協(xié)議的軟件和用戶自 行編寫(xiě)的程序,增加了產(chǎn)品的功能,實(shí)現(xiàn)了產(chǎn)品的最大價(jià)值。
可以在主控制單元101之外設(shè)置數(shù)據(jù)存儲(chǔ)器103,用來(lái)存儲(chǔ)所述主控制單元內(nèi)SRAM中的程序代碼。
為避免用戶程序運(yùn)行死機(jī),無(wú)法返回廠家程序,可以為輔助啟動(dòng)控制單元102增加看門(mén)狗功能,如果 用戶程序在一定時(shí)間內(nèi)未發(fā)送清看門(mén)狗信號(hào)(改變管腳電平),就把主控制單元101復(fù)位并執(zhí)行廠家程序。
.
圖1是本實(shí)用新型與發(fā)明相關(guān)部分的結(jié)構(gòu)示意圖; 圖2是本實(shí)用新型實(shí)現(xiàn)發(fā)明目的的流程示意具體實(shí)施方式
本實(shí)用新型規(guī)劃的開(kāi)發(fā)編程工具結(jié)構(gòu)如附圖1:
本實(shí)用新型由主控制單元101、輔助啟動(dòng)控制單元102、存儲(chǔ)器103和其它部分(未畫(huà)出)組成,其 中主控制單元101是運(yùn)行廠家程序和用戶程序的主體,內(nèi)含廠家程序代碼;內(nèi)部存儲(chǔ)器103可存儲(chǔ)用戶程 序代碼;輔助啟動(dòng)控制單元102負(fù)責(zé)控制主控制單元101是引導(dǎo)運(yùn)行MCU FLASH中廠家程序還是引導(dǎo)運(yùn)行 MCU的SRAM中用戶程序、系統(tǒng)代碼燒錄程序。
上電運(yùn)行時(shí),由于SRAM中沒(méi)有任何程序代碼,系統(tǒng)總是引導(dǎo)運(yùn)行MCU FLASH中的廠家程序,而后廠家程 序可將用戶程序作為數(shù)據(jù),從存儲(chǔ)器103中讀出,裝入SRAM,再通知輔助啟動(dòng)控制單元102,重新復(fù)位主 控制單元IOI,并引導(dǎo)運(yùn)行MCU的SRAM中用戶程序。用戶程序執(zhí)行完畢欲退出時(shí),只要重新復(fù)位系統(tǒng)(自 行復(fù)位或者通知輔助啟動(dòng)控制單元102來(lái)復(fù)位),系統(tǒng)即引導(dǎo)運(yùn)行MCU FLASH中廠家程序。
主控制單元101可以采用意法半導(dǎo)體的stm32f 10系列ARM CPU,或者STR7系列。這些ARM MCU均可 以通過(guò)兩個(gè)引腳(BootO、 Bootl或BOOTEN、 BOOTO)來(lái)選擇是從MCU內(nèi)部FLASH啟動(dòng)執(zhí)行代碼還是從MCU 內(nèi)部SRAM啟動(dòng)執(zhí)行代碼,或者運(yùn)行系統(tǒng)代碼燒錄程序。并且在從MCU內(nèi)部SRAM啟動(dòng)執(zhí)行代碼時(shí),MCU內(nèi) 部FLASH程序存儲(chǔ)器可處于被保護(hù)狀態(tài),不可讀出,只能全部擦除。這樣就實(shí)現(xiàn)了廠家程序的保密性。以 下部分按照 STM32F103VBT6 來(lái)說(shuō)明。其數(shù)據(jù)手冊(cè)可在
http:〃www. st. com/stonline/products/literature/ds/13587. pdf_處下 載 ;
http:〃www. st. com/stonline/products/literature/rm/13902. pdf為參考手冊(cè)。
存儲(chǔ)器103由主控制單元101讀取,其中可存儲(chǔ)有很多種用戶程序。由主控制單元101選擇讀入到SRAM 中,再重啟運(yùn)行。
輔助啟動(dòng)控制單元102是實(shí)現(xiàn)本實(shí)用新型目的的關(guān)鍵部分,本實(shí)施例中采用了 l顆8個(gè)引腳的單片機(jī) ATTINY13V。上電復(fù)位時(shí),總是通過(guò)控制BOOt0=0使廠家程序得到執(zhí)行。當(dāng)收到主控制單元101發(fā)來(lái)的特 定電平或命令后,會(huì)控制Boot(^1、 Boottl成啟動(dòng)執(zhí)行SRAM代碼的狀態(tài),并可復(fù)位主控制單元101。啟 動(dòng)完成后,最好把Boot(^0控制成啟動(dòng)執(zhí)行廠家程序代碼的狀態(tài),以免SRAM中用戶代碼自行復(fù)位。另外 ATTINY13V還有一個(gè)引腳,置低后將通過(guò)Boot(^1、 Bootl=0使系統(tǒng)代碼燒錄程序得到執(zhí)行,方便廠家程序 的燒錄。
以上所說(shuō)控制成從SRAM中啟動(dòng)執(zhí)行是最省事的方法,也可以控制成從系統(tǒng)代碼燒錄程序(System Boot Loader)啟動(dòng),然后發(fā)命令給系統(tǒng)代碼燒錄程序,從SRAM中開(kāi)始執(zhí)行用戶程序?;蛘卟挥芍骺刂茊卧?01 從存儲(chǔ)器103讀入用戶程序到SRAM,而是由輔助啟動(dòng)控制單元102通過(guò)系統(tǒng)代碼燒錄程序?qū)⒂脩舫绦蛩腿?SRAM中再執(zhí)行。也可以達(dá)到從SRAM中執(zhí)行用戶程序的目的。
為避免用戶程序運(yùn)行死機(jī),無(wú)法返回廠家程序,可以為輔助啟動(dòng)控制單元102增加看門(mén)狗功能,如果 用戶程序在一定時(shí)間內(nèi)未發(fā)送清看門(mén)狗信號(hào)(改變管腳電平),就把主控制單元101復(fù)位并執(zhí)行廠家程序。 為節(jié)省成本,輔助啟動(dòng)控制單元102也可以不用單片機(jī)來(lái)實(shí)現(xiàn)。 下面是一些附加功能
由于STM32F10系列ARM MCU可以某些誤操作后鎖定FLASH擦寫(xiě)功能,直到下次復(fù)位才解除鎖定,可 以利用這點(diǎn)來(lái)保護(hù)廠家程序不被擦除。方法是在裝入的SRAM用戶程序內(nèi)放入一段先執(zhí)行的代碼,作出"誤 操作"。如前所述,用戶程序如果重啟,會(huì)進(jìn)入廠家程序,所以用戶程序無(wú)法擦除廠家程序。
另外STM32F10系列ARM MCU還有GPIOx_LCKR管腳配置鎖定寄存器,用以上方法,可以鎖定某些管腳 的配置為輸入,這樣用戶程序?qū)o(wú)法操作某些管腳,以實(shí)現(xiàn)開(kāi)發(fā)編程工具特定資源的保護(hù)(存儲(chǔ)器等)。
權(quán)利要求1.一種微處理器開(kāi)發(fā)編程工具,其特征是包含有主控制單元、輔助啟動(dòng)控制單元,通過(guò)輔助啟動(dòng)控制單元選擇主控制單元執(zhí)行主控制單元內(nèi)FLASH中的程序代碼或執(zhí)行主控制單元內(nèi)SRAM中的程序代碼。
2. 根據(jù)權(quán)利要求1所述的一種微處理器開(kāi)發(fā)編程工具,其特征是所述主控制單元內(nèi)SRAM中的程序 代碼是存儲(chǔ)在控制單元外的數(shù)據(jù)存儲(chǔ)器中。
3. 根據(jù)權(quán)利要求1所述的一種微處理器開(kāi)發(fā)編程工具,其特征是所述輔助啟動(dòng)控制單元還具有看 門(mén)狗功能。
4. 根據(jù)權(quán)利要求1所述的一種微處理器開(kāi)發(fā)編程工具,其特征是所述主控制單元為STM32F10xx 系列MCU。
專利摘要本實(shí)用新型提出了一種用于微處理器、可編程器件進(jìn)行仿真開(kāi)發(fā)、編程的多功能設(shè)備。包含主控制單元101、輔助啟動(dòng)控制單元102、存儲(chǔ)器103等部分。可以在保證廠家程序代碼的保密性和安全性的同時(shí),運(yùn)行基于GPL授權(quán)協(xié)議的軟件和用戶自編的程序。有利各行業(yè)更方便的應(yīng)用微處理器技術(shù)。
文檔編號(hào)G06F9/44GK201352343SQ20082020787
公開(kāi)日2009年11月25日 申請(qǐng)日期2008年8月14日 優(yōu)先權(quán)日2008年8月14日
發(fā)明者彭增金 申請(qǐng)人:彭增金