基于PSoC Creator Bootloader更新PSoC?3固件程序
3. 使用基于I2C的PSoC3 Bootloader
本文引用地址:http://www.ex-cimer.com/article/117492.htmPSoC Creator 1.0內(nèi)嵌了一套基于I2C通信的Bootloader,開(kāi)發(fā)者可以直接使應(yīng)用于項(xiàng)目開(kāi)發(fā),圖 3是PSoC3 I2C Bootloader的工作流程圖。
圖 3 PSoC3 I2C Bootloader 工作流程圖
PSoC3內(nèi)部有一個(gè)8位寄存器,其最高2位只能通過(guò)上電復(fù)位清除,軟件復(fù)位不影響其數(shù)值,因此可以用作運(yùn)行類型標(biāo)志位,每次系統(tǒng)上電或軟件復(fù)位后都會(huì)檢查此標(biāo)志位,以決定是直接運(yùn)行應(yīng)用程序還是進(jìn)入Bootloader更新固件。PSoC3 Bootloader已經(jīng)定義一組用于更新固件的通訊協(xié)議,其中PSoC3作為從設(shè)備,接收主設(shè)備發(fā)送的命令數(shù)據(jù)包,處理后回復(fù)主設(shè)備狀態(tài)數(shù)據(jù)包,表 1是兩種數(shù)據(jù)包的格式定義。
表 1PSoC3 I2C Bootloader通信數(shù)據(jù)包格式
表 2列出了PSoC Creator 1.0 Bootloader通訊協(xié)議支持的命令,開(kāi)發(fā)者如果直接使用該協(xié)議更新固件,在設(shè)計(jì)主機(jī)更新程序時(shí)需參考此表中內(nèi)容,更詳細(xì)的命令定義可以參考PSoC Creator 1.0幫助文檔中的系統(tǒng)參考指南(System Reference Guide)。
表 2 PSoC Creator 1.0 Bootloader內(nèi)嵌通訊協(xié)議命令列表
4. PSoC3 Bootloader二次開(kāi)發(fā)
PSoC Creator 1.0現(xiàn)提供基于I2C或USB的Bootloader實(shí)現(xiàn),開(kāi)發(fā)者若想使用其他的通訊接口,或者修改通訊協(xié)議和更新流程,可以在Bootloader框架基礎(chǔ)上進(jìn)行快速二次開(kāi)發(fā)。cybtldr.c 是Bootloader核心功能層的實(shí)現(xiàn)代碼,其中兩個(gè)關(guān)鍵函數(shù)覆蓋了Bootloader主要功能:
· CyBtldr_Start函數(shù)
該函數(shù)實(shí)現(xiàn)了執(zhí)行Bootloader更新前的所有檢查流程,如果需要修改圖 3中的工作流程,可以修改此函數(shù)中代碼。
· CyBtldr_HostLink函數(shù)
該函數(shù)是Bootloader的核心功能函數(shù),實(shí)現(xiàn)了數(shù)據(jù)包的解析,命令的處理,更新Flash,以及發(fā)送狀態(tài)數(shù)據(jù)包的功能。修改此函數(shù),可以添加新命令數(shù)據(jù)包,修改數(shù)據(jù)包結(jié)構(gòu)等。
CyBtldr_HostLink通過(guò)調(diào)用CyBtldrCommRead函數(shù)接收數(shù)據(jù),調(diào)用CyBtldrCommWrite函數(shù)發(fā)送數(shù)據(jù),這兩個(gè)函數(shù)都屬于通訊協(xié)議處理層,由Bootloader使用的通訊接口模塊獨(dú)立維護(hù),不同的通訊接口模塊具有不同實(shí)現(xiàn)。若使用專有通訊接口時(shí),還需實(shí)現(xiàn)上述兩函數(shù)以便CyBtldr_HostLink能夠收發(fā)數(shù)據(jù)。
5. 總結(jié)
使用PSoC Creator 1.0的Bootloader開(kāi)發(fā)框架,開(kāi)發(fā)者可以通過(guò)I2C或USB輕松更新基于PSoC3的應(yīng)用產(chǎn)品固件程序,即使針對(duì)不同的應(yīng)用需求,開(kāi)發(fā)者只需較少的開(kāi)發(fā)投入,就可以在Bootloader框架基礎(chǔ)上進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)多樣的產(chǎn)品特性。
參考文獻(xiàn)
[1]. PSoC3 Architecture Technical Reference Manual, Cypress Semiconductor Ltd.
[2]. PSoC Creator: Timer Component Datasheet, Cypress Semiconductor Ltd.
[3]. PSoC Creator: Interrupt Component Datasheet, Cypress Semiconductor Ltd.
[4]. PSoC Creator: System Reference Guide, Cypress Semiconductor Ltd.
[5]. AN60317, PSoC 3 / PSoC 5 I2C Bootloader, Cypress Semiconductor Ltd.
評(píng)論