音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請教lpc2210啟動代碼問題

作者:gczh1006 欄目:ARM技術(shù)
請教LPC2210啟動代碼問題
LPC2210啟動代碼中

    IF :DEF: EN_CRP
        IF  . >= 0x1fc
        INFO    1,"\nThe data at 0x000001fc must be 0x87654321.\nPlease delete some source before this LINE."
        ENDIF
CrpData
    WHILE . < 0x1fc
    NOP
    WEND
CrpData1
    DCD     0x87654321          ;/*When the Data is 為0x87654321,user code be protected. 當此數(shù)為0x87654321時,用戶程序被保護 */
    ENDIF

這CrpData函數(shù)在何時被調(diào)用? 對這段函數(shù)的必要性及需完成的功能模糊不清






2樓: >>參與討論
cloudlily
看看這個文章也許會明白

http://www.56789.com/Upload/Tech/200410191044170375.pdf


廣州周立功單片機發(fā)展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
LPC2100系列ARM7微控制器的加密方法
1. 加密原理說明
LPC2100系列ARM7微控制器是世界首款可加密的ARM芯片,對其加密的方法是通過用戶程序在指定地址上設(shè)置規(guī)定的數(shù)據(jù)。PHILIPS公司規(guī)定,對于LPC2100芯片(除LPC2106/2105/2104外),當片內(nèi)FLASH地址0x000001FC處的數(shù)據(jù)為0x87654321時,芯片即被加密。在加密設(shè)置后,JTAG調(diào)試接口無效,ISP功能只提供讀ID及全片擦除功能。注意:將帶有加密設(shè)置的程序下載到芯片內(nèi)部FLASH,在下一次系統(tǒng)復位后加密生效。
2. 加密程序?qū)崿F(xiàn)
為了實現(xiàn)加密設(shè)置,用戶必須保證在0x000001FC處定義數(shù)據(jù)0x87654321。我們先來分析一下帶有加密設(shè)置的程序結(jié)構(gòu),如圖1所示,地址0x000000~0x00000020為異常向量表,若向量表中使用LDR指令跳轉(zhuǎn),可以在0x00000020~0x00000040之間定義各個異常服務入口地址;在異常向量表之后,0x000001FC地址之前,這一小塊空間可以編寫部分初始化代碼或FIQ中斷處理程序;然后使用NOP指令填充,直到0x000001FC地址,在該地址上定義數(shù)據(jù)0x87654321即可,用戶的其它程序代碼緊跟其后。
0x00000000
異常向量表
部分初始化代碼

FIQ中斷處理
NOP
NOP

DCD 0x87654321
用戶代碼
0x00000020
0x000001FC
圖1 帶有加密設(shè)置的程序結(jié)構(gòu)圖
加密程序的實現(xiàn)部分在LPC2100的起動代碼Startup.s文件中,如程序清單1所示。程序首先使用IF偽指令判斷是否已定義EN_CRP全局變量,若已聲明,則編譯程序清單1(2)~(8)的代碼,進行加密設(shè)置。說明:EN_CRP全局變量可以在匯編器中預定義或在該文件開頭用GBLA/GBLL聲明。
程序清單1(2)是用來判斷當前代碼地址是否已超過0x000001FC,若超過則使用INFO偽指令顯示出錯信息,見程序清單1(3)。程序清單1(5)~(7)用于填充NOP指令,直到0x000001FC為此。程序清單1(8)即是在0x000001FC地址上定義數(shù)據(jù)0x87654321,以實現(xiàn)加密設(shè)置。
- 1 -
廣州周立功單片機發(fā)展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
程序清單1 LPC2100加密程序?qū)崿F(xiàn)代碼
; 異常向量表


IF :DEF: EN_CRP (1)
IF . >= 0x1fc (2)
INFO 1,"\nThe data at 0x000001fc must be 0x87654321.\nPlease delete some source before this LINE." (3)
ENDIF (4)
CrpData
WHILE . < 0x1fc (5)
NOP (6)
WEND (7)
CrpData1
DCD 0x87654321 (8)
ENDIF (9)
3. 工程模板中可加密的目標
使用LPC2100專用工程模板建立的工程,當選用RelInFLASH目標時,將會生成帶有加密設(shè)置的程序。
對于Thumb Executable Image for UCOSII(for lpc21xx) 工程模板,當選用ThumbRelInFLASH目標時,將會生成帶有加密設(shè)置的程序。
- 2 -

3樓: >>參與討論
gczh1006
謝 cloudlily
 
4樓: >>參與討論
gczh1006
另外一個問題
zlg_boot的這個功能函數(shù)在何時被調(diào)用?
__user_initial_stackheap    
    
    LDR   r0,=bottom_of_heap        
;   LDR   r1,=StackUsr            
    LDR   r2,=top_of_heap        
    LDR   r3,=bottom_of_Stacks        
    MOV   pc,lr    

另外,在一個bootloader中,堆棧初始化要做哪些工作? 可否直接給個有別于zlg_boot的例子?問得比較基礎(chǔ)一點,望大俠不吝賜教~~~

5樓: >>參與討論
cloudlily
__user_initial_stackheap用于ADS內(nèi)部庫函數(shù)存儲局部變量
__user_initial_stackheap用于ADS內(nèi)部庫函數(shù)存儲局部變量,應該是在線仿真時用到,但是對于應用本身可以不關(guān)注

6樓: >>參與討論
gczh1006
那么,堆棧初始化需要做那些工作呢?
我最近想移植u-boot到smartARM2000 上,發(fā)現(xiàn)進入c程序出錯

對比下uboot和zlg_boot

發(fā)現(xiàn)自己的堆棧初始化沒有弄好

所以,還請大俠們不吝賜教~~ 

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請教關(guān)于RA8802驅(qū)動LCD的無顯示的問題
請教LPC2132的IAP的問題
關(guān)于lpc系列的iap問題
請教周公smart2200配套的ucosii模板好使嗎。!
ADS的哪個庫實現(xiàn)了對UNICODE寬字體的支持呢?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號