本發(fā)明專利技術(shù)涉及芯片編程技術(shù)領(lǐng)域,更具體地,涉及一種實(shí)現(xiàn)OTP多次編程的方法、系統(tǒng)、介質(zhì)及電子設(shè)備。該方案包括在單片機(jī)內(nèi)的指令譯碼模塊增加非法指令檢測(cè)模塊;在單片機(jī)內(nèi)的指針計(jì)算模塊中增加可編程啟動(dòng)地址模塊和地址輸入;選擇第一或第二方式,啟動(dòng)單片機(jī)編程;當(dāng)判斷為第一方式時(shí),啟動(dòng)非法指令檢測(cè)模塊進(jìn)行非法指令判斷,并根據(jù)預(yù)設(shè)的程序分區(qū)進(jìn)行多次編程;當(dāng)判斷為第二方式時(shí),讀取程序指令區(qū)中的指針內(nèi)容,根據(jù)指針內(nèi)容為1的數(shù)目多去對(duì)應(yīng)程序指針的內(nèi)容;將程序指針內(nèi)容寫(xiě)入OTP控制器內(nèi)部寄存器引導(dǎo)地址。該方案通過(guò)僅增加一個(gè)或門,把非法指令的條件加到產(chǎn)生單片機(jī)自動(dòng)累積的條件中,從而實(shí)現(xiàn)結(jié)構(gòu)簡(jiǎn)單和高效的OTP多次編程。編程。編程。
【技術(shù)實(shí)現(xiàn)步驟摘要】
一種實(shí)現(xiàn)OTP多次編程的方法、系統(tǒng)、介質(zhì)及電子設(shè)備
[0001]本專利技術(shù)涉及芯片編程
,更具體地,涉及一種實(shí)現(xiàn)OTP多次編程的方法、系統(tǒng)、介質(zhì)及電子設(shè)備。
技術(shù)介紹
[0002]OTP(One T ime Programmab l e)是單片機(jī)的一種存儲(chǔ)器類型,意思是一次性可編程:程序燒入單片機(jī)后,將不可再次更改和清除。OTP作為單片機(jī)代碼區(qū),由于其可靠性高,成本低,廣泛用于各種電子產(chǎn)品中。在大部分應(yīng)用場(chǎng)景中,用戶代碼使用了OTP代碼區(qū)的一小部分。因OTP只能支持一次編程,二次編程需要紫外線照射后才能使用。這導(dǎo)致編程過(guò)的OTP芯片只能廢棄,造成較大浪費(fèi)。
[0003]在本專利技術(shù)技術(shù)之前,現(xiàn)有技術(shù)通過(guò)在MCU外部的地址線上增加一個(gè)至少16位的加法器,大大增加了面積,同時(shí)因增加這個(gè)加法器的加法計(jì)算物理延遲的原因,極大的影響單片器實(shí)現(xiàn)的工作頻率,從而影響整個(gè)SoC性能,通過(guò)空間和面積換區(qū)編程次數(shù),在之前編程過(guò)的區(qū)域無(wú)法再次編程,只能重復(fù)利用曾經(jīng)沒(méi)有編程過(guò)的區(qū)域,從而達(dá)到多次編程的目的。
技術(shù)實(shí)現(xiàn)思路
[0004]鑒于上述問(wèn)題,本專利技術(shù)提出了一種實(shí)現(xiàn)OTP多次編程的方法、系統(tǒng)、介質(zhì)及電子設(shè)備,通過(guò)僅增加一個(gè)或門,把非法指令的條件加到產(chǎn)生單片機(jī)自動(dòng)累積的條件中,從而實(shí)現(xiàn)結(jié)構(gòu)簡(jiǎn)單和高效的OTP多次編程。
[0005]根據(jù)本專利技術(shù)實(shí)施例第一方面,提供一種實(shí)現(xiàn)OTP多次編程的方法。
[0006]在一個(gè)或多個(gè)實(shí)施例中,優(yōu)選地,所述一種實(shí)現(xiàn)OTP多次編程的方法包括:
[0007]在單片機(jī)內(nèi)的指令譯碼模塊增加非法指令檢測(cè)模塊;
[0008]在單片機(jī)內(nèi)的指針計(jì)算模塊中增加可編程啟動(dòng)地址模塊和地址輸入;
[0009]選擇第一方式和第二方式中的一種,啟動(dòng)單片機(jī)編程;
[0010]當(dāng)判斷為所述第一方式時(shí),啟動(dòng)所述非法指令檢測(cè)模塊進(jìn)行非法指令判斷,并根據(jù)預(yù)設(shè)的程序分區(qū)進(jìn)行多次編程;
[0011]當(dāng)判斷為所述第二方式時(shí),讀取程序指令區(qū)中的指針內(nèi)容,根據(jù)所述指針內(nèi)容為1的數(shù)目多少去對(duì)應(yīng)程序指針的內(nèi)容;
[0012]將所述程序指針的內(nèi)容寫(xiě)入OTP控制器內(nèi)部的寄存器BOOT_ADDR,釋放單片機(jī)復(fù)位,進(jìn)行自動(dòng)的程序編程。
[0013]在一個(gè)或多個(gè)實(shí)施例中,優(yōu)選地,所述在單片機(jī)內(nèi)的指令譯碼模塊增加非法指令檢測(cè)模塊,具體包括:
[0014]在單片機(jī)的指令譯碼模塊設(shè)置一個(gè)能夠依次判斷是否為非法指令的所述非法指令檢測(cè)模塊;
[0015]當(dāng)監(jiān)測(cè)到合法指令后,使得指令譯碼模塊啟動(dòng)程序。
[0016]在一個(gè)或多個(gè)實(shí)施例中,優(yōu)選地,所述在單片機(jī)內(nèi)的指針計(jì)算模塊中增加可編程
啟動(dòng)地址模塊和地址輸入,具體包括:
[0017]在單片機(jī)的內(nèi)增加用于獲得程序啟動(dòng)地址的所述可編程啟動(dòng)地址模塊;
[0018]將所述可編程啟動(dòng)地址模塊的啟動(dòng)地址連接OTP的控制器。
[0019]在一個(gè)或多個(gè)實(shí)施例中,優(yōu)選地,所述選擇第一方式和第二方式中的一種,啟動(dòng)單片機(jī)編程,具體包括:
[0020]在單片機(jī)內(nèi)根據(jù)經(jīng)驗(yàn)設(shè)置啟動(dòng)模式;
[0021]將所述啟動(dòng)模式設(shè)置為所述第一方式和所述第二方式中的一種;
[0022]在所述第一方式下,自動(dòng)進(jìn)行編程,在所述第二方式下,根據(jù)地址選擇進(jìn)行編程。
[0023]在一個(gè)或多個(gè)實(shí)施例中,優(yōu)選地,所述當(dāng)判斷為所述第一方式時(shí),啟動(dòng)所述非法指令檢測(cè)模塊進(jìn)行非法指令判斷,并根據(jù)預(yù)設(shè)的程序分區(qū)進(jìn)行多次編程,具體包括:
[0024]在啟所述第一方式后,在單片機(jī)內(nèi)利用所述非法指令檢測(cè)模塊判斷為編程代碼區(qū);
[0025]將即將編程的程序按照程序預(yù)設(shè)的順序,依次放在OTP的位置上;
[0026]在讀取到未編程代碼區(qū)時(shí),自動(dòng)控制取指地址自動(dòng)累加;
[0027]當(dāng)讀取到合法有效指令時(shí),開(kāi)始依次進(jìn)行多次編程。
[0028]在一個(gè)或多個(gè)實(shí)施例中,優(yōu)選地,所述當(dāng)判斷為所述第二方式時(shí),讀取程序指令區(qū)中的指針內(nèi)容,根據(jù)所述指針內(nèi)容為1的數(shù)目多少去對(duì)應(yīng)程序指針的內(nèi)容,具體包括:
[0029]在啟動(dòng)所述第二方式后,在OTP中存入每個(gè)程序的起始地址,作為每個(gè)程序的程序指針;
[0030]程序地址選擇指針用于直接讀取每個(gè)程序的程序指針,作為所述指針內(nèi)容;
[0031]在OTP初始化完畢后,自動(dòng)讀取所述指針內(nèi)容中1的數(shù)量,進(jìn)行選擇所述程序指針的內(nèi)容。
[0032]在一個(gè)或多個(gè)實(shí)施例中,優(yōu)選地,所述將所述程序指針的內(nèi)容寫(xiě)入OTP控制器內(nèi)部的寄存器BOOT_ADDR,釋放單片機(jī)復(fù)位,進(jìn)行自動(dòng)的程序編程,具體包括:
[0033]把所述程序指針的內(nèi)容寫(xiě)入到所述OTP控制器中的所述寄存器BOOT_ADDR;
[0034]所述寄存器BOOT_ADDR連接到單片機(jī)內(nèi)核的所述可編程啟動(dòng)地址模塊;
[0035]在單片機(jī)內(nèi)核復(fù)位釋放的上升沿,增加所述指針內(nèi)容中的1的數(shù)量1個(gè),自動(dòng)更新所述指針內(nèi)容到所述寄存器BOOT_ADDR。
[0036]根據(jù)本專利技術(shù)實(shí)施例第二方面,提供一種實(shí)現(xiàn)OTP多次編程的系統(tǒng)。
[0037]在一個(gè)或多個(gè)實(shí)施例中,優(yōu)選地,所述一種實(shí)現(xiàn)OTP多次編程的系統(tǒng)包括:
[0038]第一方式布置模塊,用于在單片機(jī)內(nèi)的指令譯碼模塊增加非法指令檢測(cè)模塊;
[0039]第二方式布置模塊,用于在單片機(jī)內(nèi)的指針計(jì)算模塊中增加可編程啟動(dòng)地址模塊和地址輸入;
[0040]方式判斷模塊,用于選擇第一方式和第二方式中的一種,啟動(dòng)單片機(jī)編程;
[0041]第一方式執(zhí)行模塊,用于當(dāng)判斷為所述第一方式時(shí),啟動(dòng)所述非法指令檢測(cè)模塊進(jìn)行非法指令判斷,并根據(jù)預(yù)設(shè)的程序分區(qū)進(jìn)行多次編程;
[0042]第二方式指針模塊,用于當(dāng)判斷為所述第二方式時(shí),讀取程序指令區(qū)中的指針內(nèi)容,根據(jù)所述指針內(nèi)容為1的數(shù)目多少去對(duì)應(yīng)程序指針的內(nèi)容;
[0043]第二方式執(zhí)行模塊,用于將所述程序指針的內(nèi)容寫(xiě)入OTP控制器內(nèi)部的寄存器
BOOT_ADDR,釋放單片機(jī)復(fù)位,進(jìn)行自動(dòng)的程序編程。
[0044]根據(jù)本專利技術(shù)實(shí)施例第三方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)計(jì)算機(jī)程序指令,所述計(jì)算機(jī)程序指令在被處理器執(zhí)行時(shí)實(shí)現(xiàn)如本專利技術(shù)實(shí)施例第一方面中任一項(xiàng)所述的方法。
[0045]根據(jù)本專利技術(shù)實(shí)施例第四方面,提供一種電子設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器用于存儲(chǔ)一條或多條計(jì)算機(jī)程序指令,其中,所述一條或多條計(jì)算機(jī)程序指令被所述處理器執(zhí)行以實(shí)現(xiàn)本專利技術(shù)實(shí)施例第一方面中任一項(xiàng)所述的方法。
[0046]本專利技術(shù)的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
[0047]本專利技術(shù)方案中設(shè)計(jì)一種OTP多次編程的架構(gòu)與方法,使得空余的OTP存儲(chǔ)空間可再次利用,從而實(shí)現(xiàn)多次編程,可將編程過(guò)的芯片利用起來(lái),從而節(jié)省成本。
[0048]本專利技術(shù)方案中,通過(guò)2種方式實(shí)現(xiàn)OTP的多次編程,第一方式由通過(guò)非法指令檢測(cè)實(shí)現(xiàn)自動(dòng)啟動(dòng),第二方式通過(guò)指針計(jì)算模塊實(shí)現(xiàn)快速的啟動(dòng)和多次本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
【技術(shù)特征摘要】
1.一種實(shí)現(xiàn)OTP多次編程的方法,其特征在于,該方法包括:在單片機(jī)內(nèi)的指令譯碼模塊增加非法指令檢測(cè)模塊;在單片機(jī)內(nèi)的指針計(jì)算模塊中增加可編程啟動(dòng)地址模塊和地址輸入;選擇第一方式和第二方式中的一種,啟動(dòng)單片機(jī)編程;當(dāng)判斷為所述第一方式時(shí),啟動(dòng)所述非法指令檢測(cè)模塊進(jìn)行非法指令判斷,并根據(jù)預(yù)設(shè)的程序分區(qū)進(jìn)行多次編程;當(dāng)判斷為所述第二方式時(shí),讀取程序指令區(qū)中的指針內(nèi)容,根據(jù)所述指針內(nèi)容為1的數(shù)目多少去對(duì)應(yīng)程序指針的內(nèi)容;將所述程序指針的內(nèi)容寫(xiě)入OTP控制器內(nèi)部的寄存器BOOT_ADDR,釋放單片機(jī)復(fù)位,進(jìn)行自動(dòng)的程序編程。2.如權(quán)利要求1所述的一種實(shí)現(xiàn)OTP多次編程的方法,其特征在于,所述在單片機(jī)內(nèi)的指令譯碼模塊增加非法指令檢測(cè)模塊,具體包括:在單片機(jī)的指令譯碼模塊設(shè)置一個(gè)能夠依次判斷是否為非法指令的所述非法指令檢測(cè)模塊;當(dāng)監(jiān)測(cè)到合法指令后,使得指令譯碼模塊啟動(dòng)程序。3.如權(quán)利要求&所述的一種實(shí)現(xiàn)OTP多次編程的方法,其特征在于,所述在單片機(jī)內(nèi)的指針計(jì)算模塊中增加可編程啟動(dòng)地址模塊和地址輸入,具體包括:在單片機(jī)的內(nèi)增加用于獲得程序啟動(dòng)地址的所述可編程啟動(dòng)地址模塊;將所述可編程啟動(dòng)地址模塊的啟動(dòng)地址連接OTP的控制器。4.如權(quán)利要求&所述的一種實(shí)現(xiàn)OTP多次編程的方法,其特征在于,所述選擇第一方式和第二方式中的一種,啟動(dòng)單片機(jī)編程,具體包括:在單片機(jī)內(nèi)根據(jù)經(jīng)驗(yàn)設(shè)置啟動(dòng)模式;將所述啟動(dòng)模式設(shè)置為所述第一方式和所述第二方式中的一種;在所述第一方式下,自動(dòng)進(jìn)行編程,在所述第二方式下,根據(jù)地址選擇進(jìn)行編程。5.如權(quán)利要求&所述的一種實(shí)現(xiàn)OTP多次編程的方法,其特征在于,所述當(dāng)判斷為所述第一方式時(shí),啟動(dòng)所述非法指令檢測(cè)模塊進(jìn)行非法指令判斷,并根據(jù)預(yù)設(shè)的程序分區(qū)進(jìn)行多次編程,具體包括:在啟所述第一方式后,在單片機(jī)內(nèi)利用所述非法指令檢測(cè)模塊判斷為編程代碼區(qū);將即將編程的程序按照程序預(yù)設(shè)的順序,依次放在OTP的位置上;在讀取到未編程代碼區(qū)時(shí),自動(dòng)控制取指地址自動(dòng)累加;當(dāng)讀取到合法有效指令時(shí),開(kāi)始依次進(jìn)行多次編程。6.如權(quán)利要求&所述的一種實(shí)現(xiàn)OTP多次編程的方法,其特征在于,所述當(dāng)判斷為所述第二方式時(shí),讀取程序指令...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:劉澤義,高鷹,
申請(qǐng)(專利權(quán))人:青鳥(niǎo)消防股份有限公司,
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。