精品丝袜国产自在线拍小草

  • <rp id="yjwz9"></rp>
  • <li id="yjwz9"><acronym id="yjwz9"></acronym></li>

    1. 歡迎來到欣榮芯片解密官方網站!
      打開客服菜單
      contact us

      聯系我們

      IC解密首頁 > STM8/STM32芯片解密 > 深圳破解IC與GD32F150C6T6進行Flash編程過程
      • 產品名稱: 深圳破解IC與GD32F150C6T6進行Flash編程過程

      • 產品類型: STM8/STM32芯片解密

      • 產品型號:

      • 發布時間: 2019-05-15


      產品描述

      欣榮科技專業提供深圳破解IC與GD32F150C6T6進行Flash編程過程

      1、GD32系列MCU與STM32系列很相似。

      2. 編程器使用的是ST-LINK/V2-1當然,當然使用ST-LINK/V2也可以,在執行命令的時候需作相應的修改。
             3. 編程通信接口使用的是SWD
             4. 編程使用的是*nix環境,編程軟件使用的是OpenOCD

      深圳破解IC

      首先通過如下命令去除讀保護與寫保護:

      1. #! /bin/bash

      2. set -x


      3. OCD=/usr/local/bin/openocd


      4. ${OCD} -f interface/stlink-v2-1.cfg -f target/stm32f1x.cfg -c init -c 'reset halt'

      5.     -c 'mdb 0x1ffff800 12' -c 'sleep 100'

      6.     -c 'mww 0x40022004 0x45670123' -c 'sleep 100' -c 'mww 0x40022004 0xcdef89ab' -c 'sleep 100'

      7.     -c 'mww 0x40022008 0x45670123' -c 'sleep 100' -c 'mww 0x40022008 0xcdef89ab' -c 'sleep 100'

      8.     -c 'mww 0x40022010 0x00000260' -c 'sleep 100'

      9.     -c 'mww 0x40022010 0x00000210' -c 'sleep 100'

      10.     -c 'mwh 0x1ffff800 0x5aa5'     -c 'sleep 100' -c 'shutdown'


      11. ${OCD} -f interface/stlink-v2-1.cfg -f target/stm32f1x.cfg -c init -c 'reset halt'

      12.     -c 'mdb 0x1ffff800 12' -c 'sleep 100'

      13.     -c 'mww 0x40022004 0x45670123' -c 'sleep 100' -c 'mww 0x40022004 0xcdef89ab' -c 'sleep 100'

      14.     -c 'mww 0x40022008 0x45670123' -c 'sleep 100' -c 'mww 0x40022008 0xcdef89ab' -c 'sleep 100'

      15.     -c 'mww 0x40022010 0x00000210' -c 'sleep 100'

      16.    

      17.     -c 'mwh 0x1ffff802 0xff00'     -c 'sleep 100'

      18.     -c 'mwh 0x1ffff804 0xff00'     -c 'sleep 100' -c 'mwh 0x1ffff806 0xff00' -c 'sleep 100'

      19.     -c 'mwh 0x1ffff808 0x00ff'     -c 'sleep 100' -c 'mwh 0x1ffff80a 0x00ff' -c 'sleep 100'

      20.     -c 'mww 0x40022010 0x00000080' -c 'sleep 100'

      21.     -c 'mdb 0x1ffff800 12'

      22.     -c 'mdw 0x4002201c 1' -c 'shutdown'

      Note:
      1. 可以看到使用的是shell腳本,操作系統使用的是*nix。
      2. 第一個命令去除的是芯片的讀保護,第二個命令去除芯片寫保護。
      3. 從我這邊實際的操作來看,在MCU掉電之后,會自動加讀保護。

      Flash擦除


             可以通過如下命令進行擦除:

      1. $ /usr/local/bin/openocd -f interface/stlink-v2-1.cfg -f target/stm32f1x.cfg -c init -c 'reset halt' -c 'flash erase_sector 0 0 31' -c shutdown

      這里我為了省事當Flash中的所有數據都擦除了(Flash有32KiB, 32個sector)。

      Flash編程

      直接使用openocd的"flash write_image"命令會失敗,我這邊的情況是可以寫入十幾KiB的數據。目前還沒有發現很好的方法可以解決,這里需要通過修改openocd的代碼才能解決。

      1. 739         /* try using a block write */

      2. 740         retval = stm32x_write_block(bank, buffer, offset, words_remaining);

      3. 741 

      4. 742         if (retval == ERROR_TARGET_RESOURCE_NOT_AVAILABLE) {

      5. 743                 /* if block write failed (no sufficient working area),

      6. 744                  * we use normal (slow) single halfword accesses */

      7. 745                 LOG_WARNING("couldn't use block writes, falling back to single memory accesses");

      8. 746 

      9. 747                 while (words_remaining > 0) {

      10. 748                         uint16_t value;

      11. 749                         memcpy(&value, buffer, sizeof(uint16_t));

      12. 750 

      13. 751                         retval = target_write_u16(target, bank->base + offset, value);

      14. 752                         if (retval != ERROR_OK)

      15. 753                                 goto reset_pg_and_lock;

      16. 754 

      17. 755                         retval = stm32x_wait_status_busy(bank, 5);

      18. 756                         if (retval != ERROR_OK)

      19. 757                                 goto reset_pg_and_lock;

      20. 758 

      21. 759                         words_remaining--;

      22. 760                         buffer += 2;

      23. 761                         offset += 2;

      24. 762                 }

      25. 763         }

      需要將上面這段替換成如下:

      1.         while (words_remaining > 0) {

      2.             uint32_t value;

      3.             memcpy(&value, buffer, sizeof(uint32_t));


      4.             retval = target_write_u32(target, bank->base + offset, value);

      5.             if (retval != ERROR_OK) {

      6.                 goto reset_pg_and_lock;

      7.             }


      8.             retval = stm32x_wait_status_busy(bank, 100);

      9.             if (retval != ERROR_OK) {

      10.                 goto reset_pg_and_lock;

      11.             }


      12.             words_remaining -= 2;

      13.             buffer += 4;

      14.             offset += 4;

      15.         

      這里可以看到GD32不支持block write(其實是使用block write寫入的數據不完整,會失敗,也就是默認的寫入方式),并且也不支持16-bit方式寫入,一次需要寫入32-bit數據。
      修改完代碼,編譯之后,就可以通過如下命令進行flash編程:

      1. $ openocd -f interface/stlink-v2-1.cfg -f target/stm32f1x.cfg -c init -c 'reset halt' -c 'flash write_image build/ch.bin 0x08000000 bin' -c shutdown

      Note:
      build/ch.bin是要寫入的文件,bin格式。
      執行完之后,還可以通過如下命令對flash中的數據進行校驗:

      1. $ openocd -f interface/stlink-v2-1.cfg -f target/stm32f1x.cfg -c init -c "reset halt"  -c "verify_image build/ch.bin 0x08000000 bin" -c "reset run" -c shutdown

      2. Open On-Chip Debugger 0.10.0-dev-00288-g060e9c3 (2016-05-14-22:52)

      3. Licensed under GNU GPL v2

      4. For bug reports, read

      5.         [url=http://openocd.org/doc/doxygen/bugs.html]http://openocd.org/doc/doxygen/bugs.html[/url]

      6. Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.

      7. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD

      8. adapter speed: 4000 kHz

      9. adapter_nsrst_delay: 100

      10. none separate

      11. Info : clock speed 4000 kHz

      12. Info : STLINK v2 JTAG v27 API v2 SWIM v15 VID 0x0483 PID 0x374B

      13. Info : using stlink api v2

      14. Info : Target voltage: 0.006291

      15. Error: target voltage may be too low for reliable debugging

      16. Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints

      17. stm32f1x.cpu: target state: halted

      18. target halted due to debug-request, current mode: Thread 

      19. xPSR: 0x01000000 pc: 0x08000180 msp: 0x20000400

      20. stm32f1x.cpu: target state: halted

      21. target halted due to breakpoint, current mode: Thread 

      22. xPSR: 0x61000000 pc: 0x2000002e msp: 0x20000400

      23. verified 14352 bytes in 0.368509s (38.033 KiB/s)

      24. shutdown command invoked

           目前市面上很少有芯片解密公司可以破解GD32F150全系列的單片機,欣榮科技深圳破解IC技術團隊,成功攻克技術難關,目前可提供意法GD32F150全系列單片機解密服務,不成功不收費,承諾100%單片機程序破解成功。具體芯片解密方案請來電與欣榮聯系!

      其他產品
      cache
      Processed in 0.005177 Second.
      精品丝袜国产自在线拍小草
    2. <rp id="yjwz9"></rp>
    3. <li id="yjwz9"><acronym id="yjwz9"></acronym></li>