|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
STR71x的加密問(wèn)題 |
| 作者:xieshenyao 欄目:MCU技術(shù) |
請(qǐng)問(wèn)如何加密STR71x的片內(nèi)FLASH,還有STR71x是否支持ISP下載? |
| 2樓: | >>參與討論 |
| 作者: 浪淘沙 于 2006/8/18 9:57:00 發(fā)布:
回復(fù):STR71x的加密問(wèn)題 程序燒好后,JTAG口可以被封掉,這樣就沒(méi)辦法讀出內(nèi)部程序。 片內(nèi)FLASH是用JTAG燒進(jìn)去的,這就是ISP下載啊。 |
|
| 3樓: | >>參與討論 |
| 作者: xieshenyao 于 2006/8/18 10:56:00 發(fā)布:
Jtag口被封之后問(wèn)題 Jtag口被封之后如何重新使能JTAG口呢 |
|
| 4樓: | >>參與討論 |
| 作者: starm 于 2006/8/18 12:07:00 發(fā)布:
Jtag口被封之后如何重新使能JTAG口呢 被封之前, 你需要在內(nèi)部FLASH預(yù)留解除調(diào)試保護(hù)的代碼. 需要重新使能JTAG口時(shí), 你可以通過(guò)通訊口與內(nèi)部的預(yù)留代碼通訊, 并經(jīng)過(guò) 驗(yàn)證成功之后即可重新使能JTAG口. 事實(shí)上就是編程 FLASH_NVAPR1 的 PDSx 位. 3.3.2 Permanent Unprotection You can permanently unprotect a Debug protected FLASH MODULE. You may need to use this feature under certain circumstances, for example to analyze rejects. Debug protection can be disabled by PROGRAMMING the PDSx bits in the FLASH_NVAPR1 register. If the DBGP bit is programmed to 0, disabling the protection by PROGRAMMING the PDSx bits can be done ONLY by a program executed from the FLASH MODULE. The user SOFTWARE design can ensure that this is accessible ONLY to authorized users. Debug protection can be enabled again by PROGRAMMING the PENx bits in the FLASH_NVAPR1 register. The PDSx and PENx bits can be programmed once ONLY, however 16 bits are provided, so you can disable and re-enable Debug Protection up to a maximum of 16 times. PENn can be programmed to 0 ONLY if PDSn has been already programmed to 0. PDSn can be programmed to 0 ONLY if PDSn-1/PENn-1 have been already programmed to 0. Note You can not permanently unprotect a write protected sector. |
|
| 5樓: | >>參與討論 |
| 作者: starm 于 2006/8/18 12:09:00 發(fā)布:
參見(jiàn)ST提供的代碼例子. 3.5 PROTECTION CODE EXAMPLES Example 1: Enable Write Protection of sectors B0F3-0 of Bank 0. FLASH_CR0 |= 0x01000000; /*Set SPR in FLASH_CR0*/ FLASH_AR = 0x0010DFB0; /*Load Add in FLASH_AR*/ FLASH_DR0 = 0xFFFFFFF0; /*Load Data in FLASH_DR0*/ FLASH_CR0 |= 0x80000000; /*Operation start*/ Example 2: Disable Write Protection of sectors B0F3-0 of Bank 0 temporarily. FLASH_CR0 |= 0x01000000; /*Set SPR in FLASH_CR0*/ FLASH_AR = 0x0010DFB0; /*Load Add in FLASH_AR*/ FLASH_DR0 = 0xFFFFFFFF; /*Load Data in FLASH_DR0*/ FLASH_CR0 |= 0x80000000; /*Operation start*/ Example 3: Enable Debug Protection. FLASH_CR0 |= 0x01000000; /*Set SPR in FLASH_CR0*/ FLASH_AR = 0x0010DFB8; /*Load Add in FLASH_AR*/ FLASH_DR0 = 0xFFFFFFFD; /*Load Data in FLASH_DR0*/ FLASH_CR0 |= 0x80000000; /*Operation start*/ Example 4: Disable Debug Protection temporarily. FLASH_CR0 |= 0x01000000; /*Set SPR in FLASH_CR0*/ FLASH_AR = 0x0010DFB8; /*Load Add in FLASH_AR*/ FLASH_DR0 = 0xFFFFFFFF; /*Load Data in FLASH_DR0*/ FLASH_CR0 |= 0x80000000; /*Operation start*/ Example 5: Disable Debug Protection permanently. FLASH_CR0 |= 0x01000000; /*Set SPR in FLASH_CR0*/ FLASH_AR = 0x0010DFBC; /*Load Add in FLASH_AR*/ FLASH_DR0 = 0xFFFFFFFE; /*Load Data in FLASH_DR0*/ FLASH_CR0 |= 0x80000000; /*Operation start*/ Example 6: Re-Enable Debug Protection permanently, after having disabled it. FLASH_CR0 |= 0x01000000; /*Set SPR in FLASH_CR0*/ FLASH_AR = 0x0010DFBC; /*Load Add in FLASH_AR*/ FLASH_DR0 = 0xFFFEFFFF; /*Load Data in FLASH_DR0*/ FLASH_CR0 |= 0x80000000; /*Operation start*/ Note You can disable and re-enable the Debug Protection permanently (as shown in examples 5 and 6) a maximum of 16 times. * - 本貼最后修改時(shí)間:2006-8-18 12:09:54 修改者:starm |
|
| 6樓: | >>參與討論 |
| 作者: xieshenyao 于 2006/8/18 13:00:00 發(fā)布:
謝謝樓上的熱心解答 感覺(jué)這樣用起來(lái)沒(méi)有LPC和ATMEL的方便,如果STARM沒(méi)告訴我,而我又糊里糊涂地禁止了JTAG,那片子不是掛了。 |
|
| 7樓: | >>參與討論 |
| 作者: mvoice 于 2006/8/18 14:39:00 發(fā)布:
等于沒(méi)有加密,太容易解密了 |
|
| 8樓: | >>參與討論 |
| 作者: centimetre 于 2006/8/18 14:52:00 發(fā)布:
arm的加密都是封jtag口 “等于沒(méi)有加密,太容易解密了“ 不知道是什么意思 |
|
| 9樓: | >>參與討論 |
| 作者: starm 于 2006/8/18 14:57:00 發(fā)布:
Re:等于沒(méi)有加密,太容易解密了 對(duì)設(shè)計(jì)者來(lái)說(shuō), 的確如此. 對(duì)嘗試盜版的人來(lái)說(shuō), 有點(diǎn)難. |
|
| 10樓: | >>參與討論 |
| 作者: skydream 于 2006/11/25 20:00:00 發(fā)布:
覺(jué)得有問(wèn)題! Keil網(wǎng)站有如何用ULINK對(duì)加密的STR的ARM進(jìn)行擦除。有個(gè)問(wèn)題,它是怎么擦除的??怎么用戶手冊(cè)上沒(méi)有說(shuō)明? 說(shuō)是在的沒(méi)有發(fā)現(xiàn)STR的ARM有特殊的優(yōu)勢(shì)。。 對(duì)了,對(duì)于一個(gè)裸片如何將程序下進(jìn)去? |
|
| 11樓: | >>參與討論 |
| 作者: musich 于 2007/1/9 3:13:00 發(fā)布:
...maximum of 16 times. 16次, 是不是有點(diǎn)少啊? 試驗(yàn)幾次不就沒(méi)了. 那以后是不是整片就玩完了啊? 還能救回來(lái)嗎? |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |