宝赢彩票平台

打开客服菜单
contact us

联系我们

IC解密宝赢彩票平台 > 宝赢彩票平台STM8/STM32芯片解密 > 深圳破解IC与GD32F150C6T6进行Flash编程过程
产品描述

欣荣科技专业提供深圳破解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.007100 Second.
500万彩票 博牛彩票开奖 内蒙古快3走势图 内蒙古快3走势图 宝赢彩票充值 伯爵彩票计划软件 118彩票 内蒙古快3走势图 内蒙古快3走势图 内蒙古快3走势图