<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          STM8S/32的讀保護(hù)

          作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
          一、代碼寫入及加讀保護(hù)的步驟:

          1.準(zhǔn)備工作:HEX文件和JLINK驅(qū)動(dòng)(JLinkARM_V420以上,4.08中secure chip可能出現(xiàn)灰色不可選)
          安裝完畢后,可以在開始--所有程序--SEGGER--J-Flash ARM打開該應(yīng)用程序
          先設(shè)置要寫入的芯片和寫入方式,
          選擇JATG還是SWD
          選擇芯片型號(hào):Option-->Project settings-->CPU-->Device(型號(hào)不對(duì)程序?qū)懭氩涣?,設(shè)置Option-->Project settings-->Production,選中Securechip;)
          2.打開要燒寫的HEX文件:File--Open data file ,可以下拉選擇HEX文件類型
          3.連接要寫入的芯片:Target--Connect(此步之前可以先清除再讀出看是否讀出為全空,好與后面對(duì)比)
          4.寫入代碼:Target--Program & Verify(F6)
          (到此,就是代碼的寫入過(guò)程,下面是加讀保護(hù)的步驟)
          5.加讀保護(hù):Target---Secure chip,點(diǎn)擊是,就是加上了讀保護(hù)!
          二、如何驗(yàn)證是否已讀保護(hù)
          驗(yàn)證方法,可以使用一個(gè)沒有加讀保護(hù)的芯片,重復(fù)步驟中的3,連接上之后,read back一下,看看是否能讀出?
          然后再使用一個(gè)加了讀保護(hù)的芯片,重復(fù)步驟中的3,連接之后,read back一下,看看是不是真的不能讀出了,如果成功加了讀保護(hù),它會(huì)一直停在那里,數(shù)據(jù)一直讀不出來(lái),最后彈出一個(gè)錯(cuò)誤警告!
          到此,讀保護(hù)已經(jīng)加載進(jìn)去了!
          三、代碼更新如何解除讀保護(hù)
          代碼需要更新,如果不解除讀保護(hù)功能,則很難再次將程序?qū)懭耄獬椒ㄒ簿褪遣襟E中的5項(xiàng)中的反操作:Target---Unsecure chip
          解除成功后,你就可以再次寫入你更新后的代碼了。并沒有網(wǎng)友所說(shuō)的要更改BOOT0和BOOT1的設(shè)置,等等。。。
          四、如何一鍵寫入讀保護(hù)
          這個(gè)加載代碼讀保護(hù)功能的步驟可能對(duì)有些人來(lái)說(shuō)還是比較麻煩的,畢竟產(chǎn)品多的時(shí)候,寫入之后還要按一下寫保護(hù)命令,對(duì)于產(chǎn)線操作員來(lái)說(shuō),可能一時(shí)疏忽忘記其中一個(gè),就會(huì)造成代碼的外泄,是不是應(yīng)該還有更簡(jiǎn)單的辦法一鍵寫入呢,答案是肯定的!
          具體做法,就是要在生成HEX文件之前,要多幾個(gè)步驟
          1.首先,加載: C:KeilARMBoardsKeilMCBSTM32Blinky文件夾中的一個(gè)STM32F10xOPT.s文件
          2.修改下面兩個(gè)值為1
          3.生成HEX文件之前務(wù)必進(jìn)行一下此配置
          這樣簡(jiǎn)單的一個(gè)HEX文件就會(huì)使你的產(chǎn)品流入市場(chǎng)之后,即便是被抄板成功,也不會(huì)代碼流了,只要自己公司的員工不外泄。

          本文引用地址:http://www.ex-cimer.com/article/201611/321563.htm

          ulink-Jlink下在ram和flash中調(diào)試STM32的方法

          http://www.21ic.com/app/embed/201209/142684.htm
          時(shí)間:2012-09-11 來(lái)源: 作者:
          關(guān)鍵字:ulink-Jlink flash ram STM
          Keil MDK3.20 在ULINK下調(diào)試stm32方法
          1. 程序在RAM中運(yùn)行
          要點(diǎn):(1)程序的下載地址改到RAM空間中
          (2)程序的debug之前要設(shè)定SP,PC指針到Ram空間
          a 新建工程,選擇STM32 的具體型號(hào)。
          b 設(shè)定程序下載地址,如下圖所示,IROM1的地址指向了STM32的ram空間。
          c 空間大小如何分配取決于自己的需求。本款處理器內(nèi)部ram大小為20K,分配16K給只讀區(qū),4K給可讀可寫區(qū)。這樣IROM設(shè)定的大小為0x4000,IRAM1的起始就變?yōu)?X20004000,大小只剩下0X1000。
          d Debug標(biāo)簽選擇ULINK1 Cortex Debugger(軟件采用yjgyiysbcc兄crack方法)。不選Load Application at Start,在Initialization中加入啟動(dòng)腳本RAM.ini。
          RAM.ini中具體內(nèi)容如下:
          FUNC void Setup (void) {
          SP = _RDWORD(0x20000000); // Setup Stack Pointer
          PC = _RDWORD(0x20000004); // Setup Program Counter
          _WDWORD(0xE000ED08, 0x20000000); // Setup Vector Table Offset Register
          }
          LOAD XXX.axf INCREMENTAL // Download,紅色代表工程文件名.axf
          Setup(); // Setup for Running
          g, main
          Utilities下Update Target before Debugging不選
          這樣添加后就可以在RAM中調(diào)試了。
          >>>>>>我們需要在代碼中設(shè)置正確的中斷向量表位置。中斷向量表通常被放置在用戶程序的開始,所以flash中運(yùn)行時(shí),向量表位于0x08000000處,而當(dāng)代碼被放置在SRAM中運(yùn)行時(shí),他的位置就成了0x20000000。在初始化NVIC時(shí),我們可以放置如下代碼,定義向量表的位置
          NVIC_SetVectorTable(0x20000000 , 0x0);

          NVIC_SetVectorTable(0x08000000 , 0x0);


          >>>>>工程選項(xiàng)中Debug項(xiàng),Download選項(xiàng)卡中,去掉所有鉤子,不下載代碼到flash,這樣就可以在RAM中調(diào)試程序了!
          2. Flash中調(diào)試
          新建工程后系統(tǒng)默認(rèn)設(shè)定好IROM1為FLASH的地址和空間大小。只需要兩步:
          1) 設(shè)定調(diào)試工具為ULINK1 CORTEX DEBUGGER,如下圖所示,不需要設(shè)定起始腳本。
          2) 在Utility中設(shè)定選擇ULINK1 cortex debugger,并設(shè)定編程算法。如下圖所示。
          之后就可以FLASH調(diào)試了。
          硬件:萬(wàn)利的 EK-STM32F開發(fā)板,硬件去掉RS3,RS4 排阻,斷開開發(fā)板本身的仿真器。
          軟件:KEIL MDK3.20+ULINK驅(qū)動(dòng)替換文件。
          仿真器:ULINK

          STM8S讀保護(hù):

          看了文檔,感覺和MEGA88的保護(hù)措施沒什么兩樣的。
          ATMEL死活不承認(rèn)MEGA88能被解密.但是,的確1000元就能把完整的代碼給你,而且是反匯編的.編譯后,重新燒錄一切正常
          STM8S103K3保密性到底如何?有沒有指標(biāo)可以參照的?

          第一:IC沒有留后門.很多不良的IC設(shè)計(jì)公司,尤其是臺(tái)灣的,都留有后門.代理商很容易就能把ROM的代碼讀出來(lái)給客戶.
          第二:目前解密,都是把IC刨開直接讀里面的東西.很多解密公司都是這么做的.據(jù)說(shuō)STM8SXX里面有檢測(cè)機(jī)制:發(fā)現(xiàn)IC被刨開后,自動(dòng)擦出FLASH的東西.這個(gè)只是聽說(shuō),沒有得到考證.

          但從芯片設(shè)計(jì)角度講,芯片也像PCB一樣有很多層,通常至少十幾、二十幾層,我們把需要保密的部分,例如Flash和Flash的鎖,設(shè)計(jì)在比較靠下面的層面上,這樣即使把芯片剖開,也要磨掉很多層之后才能找到需要的層,由于不知道Flash在哪一層,解剖的難度就進(jìn)一步加大了。
          --------------------------------------------------------------------------------
          我想ATMEL的MCU也是這樣設(shè)計(jì)的.但是卻很容易就被破解了.
          象臺(tái)灣的MCU,根本就不用刨開IC,500塊全給你讀出來(lái).ELAN,SONIX等等,也號(hào)稱IC加密了,



          關(guān)鍵詞: STM8S讀保護(hù)stm3

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();