Приличный (без bit-banging) и дешёвый SPI-flash программатор, c DMA SPI и USB на основе flashrom и maple-mini (stm32).

В общем, понадобилось слить прошивку и прошить роутер TP-link (пересадить его с S25FL032A/P на M25P128). В итоге в сусеках интернета был найден на гитхабе проект github.com/dword1511/stm32-vserprog, который реализует то, что и указано в заголовке. Учитывя, что стоит она $4.2, и она у меня уже есть, я был очень рад.

В общем, клонируем git'ом, запускаем
git clone https://github.com/dword1511/stm32-vserprog.git

потом
make BOARD=maple-mini

потом прошиваем. Лично я прошиваю через openocd и J-Link.
Потом берём из гита последний flashrom
git clone https://github.com/jhcloos/flashrom.git

и берём
apt-get build-dep flashrom

Потом как обычно,
./configure && make && sudo make install


Схема подключения spi flash к stm32 есть в схеме в каталоге с stm32-vserprog.
Вот так происходит чтение флешки:
/usr/local/sbin/flashrom -p serprog:dev=/dev/ttyACM0:4000000 -r file-to-save.bin 
flashrom v0.9.8-r1919 on Linux 3.16.0-4-amd64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
serprog: Programmer name is "stm32-vserprog"
serprog: requested mapping AT45CS1282 is incompatible: 0x1080000 bytes at 0x00000000fef80000.
Found Spansion flash chip "S25FL032A/P" (4096 kB, SPI) on serprog.
Reading flash... done.


4МБ за 8 сек. Впечатляет.
Всем советую.

P.S. Залил прошивку в 16МБ

scaldov@scyld:~/src/rom$ sudo /usr/local/sbin/flashrom -p serprog:dev=/dev/ttyACM0:4000000 -w tplink.bin --force
flashrom v0.9.8-r1919 on Linux 3.16.0-4-amd64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
serprog: Programmer name is "stm32-vserprog"
serprog: requested mapping AT45CS1282 is incompatible: 0x1080000 bytes at 0x00000000fef80000.
Found Micron/Numonyx/ST flash chip "M25P128" (16384 kB, SPI) on serprog.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.


Это всё заняло минуты 4.
  • +1
  • 28 января 2016, 22:45
  • scaldov
  • 1
Файлы в топике: stm32-vserprog.build.tar.gz

Комментарии (9)

RSS свернуть / развернуть
Спасибо, мне тоже как раз нужно слить прошивку с блока аирбэга, теперь я решил как это сделаю.
0


BIT-BANDING, а не BIT-BANGING!
-3
ОЛОЛО! ГУГОЛ И ПЕДИВИКИЯ ТЕБЕ В ПОМОЩЬ !!!111
+4
А в_натуре оказывается — Bit-banging.
+1
Не стоит доверять линки парсеру. С линком на гитхаб, например, он накосячил, включив в него запятую.
+1
  • avatar
  • Vga
  • 29 января 2016, 00:03
А можно выложить скомпиленную прошивку под эту плату? Просто собрать под Windows так и не получилось.
0
скомпиленную прошивку под эту плату (maple-mini) прицепил.
0
very nice :-) а что будет если выставить не 4 мбита, а, скажем, 10? скорость еще возрастет?
0
исходники прошивки особо не смотрел, но думаю, она там автоматом выставляется.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.