两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于NANDFlash的SOC啟動(dòng)方法

文檔序號(hào):9397117閱讀:323來源:國(guó)知局
一種基于NAND Flash的SOC啟動(dòng)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其是涉及一種基于NAND Flash的SOC啟動(dòng)方法。
【背景技術(shù)】
[0002]隨著半導(dǎo)體工藝技術(shù)和設(shè)計(jì)工具的發(fā)展,愈來愈復(fù)雜的功能集成到單硅片上,SOC(片上系統(tǒng))正是在集成電路(IC)向集成系統(tǒng)(IS)轉(zhuǎn)變的大方向下產(chǎn)生的。SOC就是將微處理器、模擬IP核、數(shù)字IP核和存儲(chǔ)器集成在單一芯片上。
[0003]NAND Flash由于其容量和可靠性較高,使用壽命較長(zhǎng)的優(yōu)點(diǎn),廣泛應(yīng)用于很多SOC中,作為存儲(chǔ)啟動(dòng)代碼、系統(tǒng)數(shù)據(jù)、用戶數(shù)據(jù)內(nèi)存。
[0004]某些應(yīng)用領(lǐng)域中,如汽車電子領(lǐng)域。一方面,需要對(duì)Flash中指令、數(shù)據(jù)進(jìn)行定時(shí)更新、升級(jí);另一方面,需要保護(hù)Flash中的內(nèi)容,未經(jīng)授權(quán)的客戶不能輕易得到應(yīng)用代碼,所以需要一種方式,保護(hù)Flash里面的內(nèi)容的安全。

【發(fā)明內(nèi)容】

[0005]有鑒于此,本發(fā)明旨在提出一種基于NAND Flash的SOC啟動(dòng)方法,以保護(hù)閃存里面的內(nèi)容。
[0006]為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0007]一種基于NAND Flash的SOC啟動(dòng)方法,包括如下步驟:
[0008](I)根據(jù)預(yù)定義PIN腳電平?jīng)Q定是從NAND Flash啟動(dòng)或者從ROM啟動(dòng);
[0009](2)從NAND Flash啟動(dòng)時(shí),在代碼段中尋找特征有效字,進(jìn)而執(zhí)行程序,如果沒找到特征有效字,系統(tǒng)從ROM啟動(dòng);
[0010](3)從ROM啟動(dòng)時(shí),通過接口與外部設(shè)備通信,并判斷輸入公鑰與存儲(chǔ)在Flash中的私鑰是否匹配,如果不匹配,則整個(gè)系統(tǒng)進(jìn)入低功耗模式;
[0011](4)如果需要通過外部調(diào)試工具與芯片連接、調(diào)試,調(diào)試工具需要輸入公鑰并與Flash內(nèi)部的私鑰匹配。
[0012]進(jìn)一步的,所述步驟(3)中當(dāng)從ROM啟動(dòng)時(shí),根據(jù)預(yù)定義兩個(gè)PIN腳電平?jīng)Q定是通過CAN接口或者LIN接口與外部設(shè)備通信。
[0013]進(jìn)一步的,所述步驟(3)具體包括如下步驟:
[0014](a)外部設(shè)備以預(yù)定的波特率與芯片通信,通信過程中,外部設(shè)備按照字節(jié)、小端順序,依次輸入64比特公鑰、程序起始地址、程序代碼尺寸、所有程序代碼;
[0015](b) ROM程序判斷輸入64比特公鑰是否與存儲(chǔ)在Flash特定區(qū)域的私鑰匹配;
[0016](c)如果匹配,ROM程序記錄輸入的程序起始地址、程序代碼尺寸,將外部輸入的代碼依次放到片內(nèi)SRAM中以程序起始地址為開始的地址所指示的地址里面,搬移代碼的尺寸為外部數(shù)據(jù)的程序代碼尺寸,搬移代碼結(jié)束后,程序跳轉(zhuǎn)到片內(nèi)SRAM中程序的起始地址開始執(zhí)行;
[0017](d)如果不匹配,ROM程序控制整個(gè)系統(tǒng)進(jìn)入低功耗狀態(tài)。
[0018]進(jìn)一步的,所述步驟(4)中私鑰和LIN或CAN通信的私鑰不一樣。
[0019]相對(duì)于現(xiàn)有技術(shù),本發(fā)明所述的一種基于NAND Flash的SOC啟動(dòng)方法具有以下優(yōu)勢(shì):
[0020](I)本發(fā)明所述的一種NAND Flash的SOC啟動(dòng)方法,通過設(shè)置密鑰,進(jìn)行密鑰匹配,保證只有授權(quán)的用戶才能升級(jí)Flash內(nèi)部程序,才可以知道知道Flash里面的程序內(nèi)容,才能進(jìn)行程序調(diào)試,本發(fā)明可以保護(hù)此SOC中NAND Flash里面的程序、數(shù)據(jù),保護(hù)Flash里面程序、數(shù)據(jù)的升級(jí),提高了 Flash中保存的數(shù)據(jù)的安全性;
[0021](2)通過PIN腳設(shè)置程序啟動(dòng)入口,簡(jiǎn)化了工作流程,提高了程序執(zhí)行效率,加快了系統(tǒng)的響應(yīng)速度,可靠性高。
【附圖說明】
[0022]構(gòu)成本發(fā)明的一部分的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0023]圖1為本發(fā)明實(shí)施例所述的一種基于NAND Flash的SOC啟動(dòng)方法流程圖;
[0024]圖2為從Flash啟動(dòng)流程圖;
[0025]圖3為從ROM啟動(dòng)流程圖。
【具體實(shí)施方式】
[0026]需要說明的是,在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0027]下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
[0028]如圖1所示,本發(fā)明提出的一種基于NAND Flash的SOC啟動(dòng)方法,工作過程如下,系統(tǒng)啟動(dòng)時(shí),設(shè)預(yù)定芯片PIN腳為PIN腳2,PIN腳3,且PIN腳2決定是從Flash啟動(dòng)還是從ROM啟動(dòng),PIN腳3決定是通過LIN接口與外部通信還是CAN接口與外部通信,否則系統(tǒng)進(jìn)入低功耗模式,從NAND Flash啟動(dòng)用于正常工作模式,從ROM啟動(dòng)主要用于升級(jí)NAND Flash里面的程序、數(shù)據(jù)。指令Flash分為四個(gè)段,指令空間分別為0x0000_0000?0x0000_FFFF、0x0001_0000 ?0x000l_FFFF、0x0002_0000 ?0x0003_FFFF、0x0004_0000 ?0x0005_FFFF,特征有效字為0x005a_ffa5。
[0029]如圖2所示,芯片啟動(dòng)后,當(dāng)PIN腳2連接到“地”時(shí),則芯片從NAND Flash啟動(dòng),從第一個(gè)段的起始地址0x0000_0000開始取數(shù),如果此地址存放的數(shù)據(jù)為0x005a_ffa5,則繼續(xù)從0x0000_0004開始取數(shù),取到的數(shù)據(jù)作為程序執(zhí)行的起始地址,從那個(gè)地址開始執(zhí)行程序,那個(gè)地址要在這個(gè)段的地址空間范圍之內(nèi);如果從0X0000_0000取到的數(shù)據(jù)不是0x005a_ffa5,則繼續(xù)從第二段(0x0001_0000)的起始地址開始取數(shù),判斷是否存在特征有效字,如果所有段的第一個(gè)數(shù)據(jù)都不是特征有效字,則程序從ROM啟動(dòng)。
[0030]如果PIN腳2連接到“電源”,且PIN腳3連接到“地”,芯片通過LIN接口與外圍設(shè)備通信,如果PIN腳3連接到“電源”,芯片通過CAN接口與外圍設(shè)備通信,如圖3所示,與外部通信時(shí),外部輸入數(shù)據(jù)是以小端順序按照細(xì)節(jié)輸入的。ROM程序判斷第一個(gè)輸入64比特公鑰是否與存儲(chǔ)在Flash特定區(qū)域的私鑰匹配,如果匹配則繼續(xù)后面的輸入,如果不匹配,則系統(tǒng)進(jìn)入低功耗模式;R0M程序記錄第三個(gè)輸入的32比特為“程序起始地址”,第四個(gè)輸入的32比特為程序代碼尺寸,將后面輸入的數(shù)據(jù)依次搬移到片內(nèi)SRAM地址空間中以程序起始地址為開始的地址中,搬移代碼的大小為程序代碼尺寸。搬移代碼結(jié)束后,程序跳轉(zhuǎn)到程序的起始地址開始執(zhí)行。一般地,在此執(zhí)行的程序用于完成NAND Flash里面程序、數(shù)據(jù)的更新。
[0031]如果通過外部調(diào)試工具與芯片連接、調(diào)試。調(diào)試工具需要輸入一個(gè)64比特公鑰,如果公鑰與Flash內(nèi)部的私鑰匹配,外部調(diào)試工具可以與芯片連接、調(diào)試,否則調(diào)試工具無法連接到芯片。這里的私鑰和LIN或CAN通信的私鑰不一樣。這樣保證了只有授權(quán)的用戶才能進(jìn)行程序調(diào)試,才可以知道Flash里面的程序內(nèi)容。
[0032]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于NAND Flash的SOC啟動(dòng)方法,其特征在于:包括如下步驟:(I)根據(jù)預(yù)定義PIN腳電平?jīng)Q定是從NAND Flash啟動(dòng)或者從ROM啟動(dòng); (2)從NANDFlash啟動(dòng)時(shí),在代碼段中尋找特征有效字,進(jìn)而執(zhí)行程序,如果沒找到特征有效字,系統(tǒng)從ROM啟動(dòng); (3)從ROM啟動(dòng)時(shí),通過接口與外部設(shè)備通信,并判斷輸入公鑰與存儲(chǔ)在Flash中的私鑰是否匹配,如果不匹配,則整個(gè)系統(tǒng)進(jìn)入低功耗模式; (4)如果需要通過外部調(diào)試工具與芯片連接、調(diào)試,調(diào)試工具需要輸入公鑰并與Flash內(nèi)部的私鑰匹配。2.根據(jù)權(quán)利要求1所述的一種基于NANDFlash的SOC啟動(dòng)方法,其特征在于:所述步驟⑶中當(dāng)從ROM啟動(dòng)時(shí),根據(jù)預(yù)定義兩個(gè)PIN腳電平?jīng)Q定是通過CAN接口或者LIN接口與外部設(shè)備通信。3.根據(jù)權(quán)利要求1或2所述的一種基于NANDFlash的SOC啟動(dòng)方法,其特征在于:所述步驟(3)具體包括如下步驟: (a)外部設(shè)備以預(yù)定的波特率與芯片通信,通信過程中,外部設(shè)備按照字節(jié)、小端順序,依次輸入64比特公鑰、程序起始地址、程序代碼尺寸、所有程序代碼; (b)ROM程序判斷輸入64比特公鑰是否與存儲(chǔ)在Flash特定區(qū)域的私鑰匹配; (c)如果匹配,ROM程序記錄輸入的程序起始地址、程序代碼尺寸,將外部輸入的代碼依次放到片內(nèi)SRAM中以程序起始地址為開始的地址所指示的地址里面,搬移代碼的尺寸為外部數(shù)據(jù)的程序代碼尺寸,搬移代碼結(jié)束后,程序跳轉(zhuǎn)到片內(nèi)SRAM中程序的起始地址開始執(zhí)行; (d)如果不匹配,ROM程序控制整個(gè)系統(tǒng)進(jìn)入低功耗狀態(tài)。4.根據(jù)權(quán)利要求1所述的一種基于NANDFlash的SOC啟動(dòng)方法,其特征在于:所述步驟⑷中私鑰和LIN或CAN通信的私鑰不一樣。
【專利摘要】本發(fā)明提供了一種基于NAND?Flash的SOC啟動(dòng)方法,芯片有兩種啟動(dòng)方式,根據(jù)SOC芯片預(yù)定義PIN腳電平?jīng)Q定是從NAND?Flash啟動(dòng)還是從程序ROM啟動(dòng),如果是程序ROM啟動(dòng),根據(jù)預(yù)定義PIN腳電平?jīng)Q定ROM程序是通過CAN接口還是LIN接口與外部通信,通信時(shí)需要外部輸入公鑰,如果輸入的公鑰與存儲(chǔ)在NAND?Flash里面的私鑰匹配,則繼續(xù)通信,從外部下載程序到片內(nèi)SRAM,執(zhí)行下載程序,私鑰不匹配,處理器進(jìn)入低功耗狀態(tài),無法下載程序。本發(fā)明可以保護(hù)此SOC中NAND?Flash里面的程序、數(shù)據(jù),保護(hù)Flash里面程序、數(shù)據(jù)的升級(jí),提高了Flash中保存的數(shù)據(jù)的安全性。
【IPC分類】G06F21/57
【公開號(hào)】CN105117652
【申請(qǐng)?zhí)枴緾N201510648742
【發(fā)明人】王勇, 肖佐楠, 鄭茳
【申請(qǐng)人】天津國(guó)芯科技有限公司
【公開日】2015年12月2日
【申請(qǐng)日】2015年10月9日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
抚松县| 原阳县| 泸溪县| 福建省| 台东市| 织金县| 嵊泗县| 牟定县| 嘉善县| 大方县| 南陵县| 新津县| 西乌| 连城县| 雷波县| 富锦市| 东辽县| 怀宁县| 盐津县| 中阳县| 安泽县| 怀化市| 镇赉县| 禄劝| 嘉祥县| 固安县| 漳平市| 英山县| 赣榆县| 个旧市| 凌源市| 秦皇岛市| 东乌| 洮南市| 天台县| 焦作市| 辽阳县| 郯城县| 芜湖县| 阳谷县| 三台县|