新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MC68332平臺(tái)的ISP設(shè)計(jì)方案

基于MC68332平臺(tái)的ISP設(shè)計(jì)方案

作者: 時(shí)間:2010-10-09 來(lái)源:網(wǎng)絡(luò) 收藏

本文引用地址:http://2s4d.com/article/151443.htm

  按照這種,BOOT程序和update程序是自編程的核心內(nèi)容,只要保證這部分?jǐn)?shù)據(jù)的完整性,就能擁有在線編程的能力,要在軟件對(duì)這部分?jǐn)?shù)據(jù)區(qū)進(jìn)行保護(hù),保證在第一次寫(xiě)入程序存儲(chǔ)器后就不會(huì)再被擦除。這樣即使在自編程時(shí)發(fā)生災(zāi)難性故障,BOOT程序和update程序是不會(huì)被破壞的,仍然可以繼續(xù)運(yùn)行,保證下次仍然可以進(jìn)行自編程。

  同樣,程序完成后也必須分別固化到程序存儲(chǔ)器的指定空間,以保證程序的正常運(yùn)行,程序分布如圖2所示。

  2 在目標(biāo)上的實(shí)現(xiàn)(采用2)

  目標(biāo)的基本配置如下:

  CPU為,F(xiàn)lash為512KB(Am29F400B),RAM為1MB,通信口為10Mbps以太網(wǎng)。

  在編寫(xiě)程序之前首先應(yīng)該好程序在Flash和RAM空間的分布,按照2的思路考慮的硬件配置,具體如下:

  (1)BOOT程序通過(guò)的一個(gè)I/O狀態(tài)判定程序的走向;

  (2)update程序通過(guò)以太網(wǎng)口采用TFTP協(xié)議從主機(jī)接收程序并進(jìn)行CRC校驗(yàn);

  (3)Flash具體分配如表1所示。

  

  按照方案2,BOOT程序在系統(tǒng)復(fù)位后初始化Flash、RAM片選,把Flash、RAM映射到對(duì)應(yīng)的地址空間,并通過(guò)MC68332的一個(gè)I/O狀態(tài)判斷應(yīng)用進(jìn)入何種運(yùn)行模式。如果進(jìn)入正常模式,BOOT程序通過(guò)從normal復(fù)位向量處取得PC值,轉(zhuǎn)入相應(yīng)的地址執(zhí)行;進(jìn)入升級(jí)模式,BOOT程序把update程序從Flash地址0x00400S~0x10000復(fù)制到RAM地址0x700000~0x710000中,然后把控制權(quán)轉(zhuǎn)移給update程序。程序流程如圖2。

  update程序主要分為三大部分:(1)從網(wǎng)絡(luò)接口接收主機(jī)中的normal程序,為了盡量減小程序的復(fù)雜性,采用TFTP協(xié)議(TFTP Version 2,RFC 1350)從網(wǎng)絡(luò)接收程序(這部分也可以通過(guò)其他方式,如串口、MODEM等實(shí)現(xiàn));(2)解析出程序數(shù)據(jù)并進(jìn)行校驗(yàn),接收到的程序是Motorola格式的S-Record文件,必須按照S-Record格式進(jìn)行解析,得到程序數(shù)據(jù)并進(jìn)行CRC校驗(yàn),保證程序的正常性;(3)寫(xiě)到Flash中地址0x10000~0x80000,驗(yàn)證工作完成后把數(shù)據(jù)固化到Flash中指定地址,重啟并進(jìn)入正常模式就可運(yùn)行升級(jí)后的程序。程序流程見(jiàn)圖4。

  normal程序按照正常需要進(jìn)行編寫(xiě),必須鏈接到0x10000~0x80000空間運(yùn)行。

  這三個(gè)程序完成后,編寫(xiě)一個(gè)工具程序把三個(gè)程序合并到一個(gè)文件(注意地址空間的分配),然后利用編程工具燒寫(xiě)到Flash片上,這樣這個(gè)具備功能的系統(tǒng)就完成了。

  該設(shè)計(jì)的實(shí)現(xiàn)方法簡(jiǎn)單,可以避免生產(chǎn)時(shí)不必要的物質(zhì)和時(shí)間上的開(kāi)銷(xiāo),同時(shí)也可以幫助提供更為簡(jiǎn)易、靈活、經(jīng)濟(jì)的現(xiàn)場(chǎng)服務(wù),值得在嵌入式系統(tǒng)中推廣使用。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉