• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Кто доделает Flasher для RTL00 c JlinkARM.dll?

Seeker

New member
Сейчас беру JlinkARM.dll, и при помощи почти самодельного C# враппера работаю с rtl8710. Камней в брод намыло, но MAC читается.

P.s. с враппером стало проще, до Нового Года постараюсь показать свою реализацию, а там смотри и народ подтянется которому язык по вкусу.
 
Последнее редактирование:

goodwin

Member
А смысл? "Самодельный" был весьма актуален месяца три назад. Сейчас появилась возможность шить чип с помощью Segger JFlash.exe или вообще пользовать утилиту JLink.exe от того же Segger с простейшими скриптами, используя особенности чипа (прямое чтение и запись flash). А китайцы выложили скрипт для стирания...
 

pvvx

Активный участник сообщества
А смысл? "Самодельный" был весьма актуален месяца три назад. Сейчас появилась возможность шить чип с помощью Segger JFlash.exe или вообще пользовать утилиту JLink.exe от того же Segger с простейшими скриптами, используя особенности чипа (прямое чтение и запись flash). А китайцы выложили скрипт для стирания...
Скрипт бредовый - ужасный тормоз и каждый записанный байт вызывает запись в сектор :) - китайцы :) - "аппаратная особенность чипа" :) :) :)
 

Seeker

New member
@goodwin, враппер в студию!! Просьба не путать со скриптами.
Прикрепил импорт методов для си шарп, от индексирования запаролил ником.
 

Вложения

pvvx

Активный участник сообщества
Какого фигу:
Снимок1006.gif ?
У меня переключается Keil. На некоторые процы работают только некоторые версии Keil.
И нафиг мне всякие крякнутые ftp://ftp.newlifex.com/MDK/MDK_v5.17_20151121200259.zip ?
Это разрушитель системы?
 
Последнее редактирование:

Seeker

New member
Что за Lite C не знаю. Кину код так.
Но побоялся кеша гугла и уже удалил.
Dll версии 6.12
Проект C# в студии 2012.
Архив для не обнаружения враппера из интернета. Там их нет, возможно потерли посты с ними. У китайцев есть, но он не годный.
Проверил залитый мною архив, там только код выше.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Что за Lite C не знаю. Кину код так.
Это типа превращает ваш комп в "New line Cinema" :) :)
Архив для не обнаружения враппера из интернета. Там их нет, возможно потерли посты с ними. У китайцев есть, но он не годный.
Проверил залитый мною архив, там только код выше.
Вот тут этот бардак RTL8710AF_GCC/JFlash at Mini · WsLink/RTL8710AF_GCC · GitHub
 

Seeker

New member
Скрипты, компилятор да не более. Моя цель это видовые консольное/оконное приложение работающее с JlinкАRM.dll. Не люблю скрипты, с ними не разгуляешся.
А на ftp нет директории mdk.
 

pvvx

Активный участник сообщества
Скрипты, компилятор да не более. Моя цель это видовые консольное/оконное приложение работающее с JlinкАRM.dll. Не люблю скрипты, с ними не разгуляешся.
А на ftp нет директории mdk.
http://www.amobbs.com/forum.php?mod=viewthread&action=printable&tid=5598475

GitHub - markrages/jlinkpy: Python wrapper for JLink dlls, for nRF51 programming
 
Последнее редактирование:

Seeker

New member
Видел, самая доделанная вещь. Но на ней с места не уедешь. Нет JLINKARM_ExecCommand.
Не хватает.
[inline]CallingConvention = CallingConvention.Cdecl[/inline]

public void JLINKARM_WriteMem(UInt32 addr, UInt32 size, byte[] buf)
public static extern int JLINKARM_WriteMem(uint Addr, uint NumBytes, IntPtr pData);
И множество мелких нехороших мелочей.
Просто вставить код в проект, и мы получаем не одну, так другую ошибку. Уже испытано.
Пример как использовать - ниочем.
Там же у них в 45 комменте прикреплена ссылка на файл с внешки, и они пишут мол здорово. На внешке это что-то с далекого прошлого и комменты там гневные.

В интернете нет реального SDK Seggera c проетами для C++ и #.
Ещё где-то в интернете есть код импорта 5-ти методов, и всё.
Видел враппер для питона и для delphi от rebane.

У меня среда не Эклипс, могу компилить и видеть ошибки. Но стандартная запись (что в Makefile) в МК ну уж слишком долгая (30 сек). А так при желании зашить жму кнопку, стартует мое приложение с gui фентифлюшками и шьет мк за несколько секунд. В теме есть два проекта на delphi быстро работающих. Сделаю свое на #.
 
Последнее редактирование:

pvvx

Активный участник сообщества
В интернете нет реального SDK Seggera c проетами для C++ и #.
Ещё где-то в интернете есть код импорта 5-ти методов, и всё.
Заголовков dll нет? :confused:
Видел враппер для питона и для delphi от rebane.
А я не видел никакого враппера "для питона и для delphi от rebane." В сети есть только неработающие исходники программатора от rebane.
Выложенные им работающий hex не согласуется с исходниками - это такой прикол :)

Самое оптимальное для проектов под Дурино и т.д. - это питон. Он крос.плат.
Требует знаний не более чем написания батника под виндовс и такие-же манипуляции для вставки каких-то спец фич в личные проекты.
 
Последнее редактирование:

goodwin

Member
2 pvvx: Ну и фиг с ним, что пишет побайтно - работает же. Аккурат используя особенности RTL ;)

2 Seeker: Враппер для дельфей имеется в шапке этой темы (jlinkarm.pas). Подточить для C#, думаю, несложно...
 

pvvx

Активный участник сообщества
2 pvvx: Ну и фиг с ним, что пишет побайтно - работает же. Аккурат используя особенности RTL ;)
Дыру протрет. три года ждать и нет гарантии записи вообще...
Нет (не нашел) JLinkARM.lib и JLinkARMDLL.h.
xvcd-jlink/JLinkARM.h at master · fantomgs/xvcd-jlink · GitHub
 

sharikov

Active member
В сети есть только неработающие исходники программатора от rebane.
Выложенные им работающий hex не согласуется с исходниками - это такой прикол
Разъясните что не так с исходниками rebane ?
Они не настолько сложны чтобы в них нельзя было разобраться

--
UPD
Прикольно, дамп флэша прочитанный rebane не совпадает с тем что читает jflash.
[inline]Verification failed @ address 0x98009080 (Read: 0x02, Expected: 0xFF)[/inline]
 
Последнее редактирование:

sharikov

Active member
Собрал флэшер rebane из rebane / rtl8710_openocd / source / — Bitbucket
проверил вручную:
Код:
openocd -f interface/jlink.cfg -c 'transport select swd' -f rtl8710.ocd

...

telnet localhost 4444
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> reset halt
rtl8710.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000100 msp: 0x1ffffffc
> init
> reset halt
rtl8710.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000100 msp: 0x1ffffffc

> rtl8710_flash_read_id
initializing RTL8710 flasher
faultmask (/1): 0x01
sp (/32): 0x20000000
pc (/32): 0x10001000
RTL8710 flasher initialized
manufacturer ID: 0xC2, memory type: 0x20, memory capacity: 1048576 bytes

> rtl8710_flash_read_mac
MAC address: 00:F8:87:11:00:12

> rtl8710_flash_read dump.bin 0 1048576
read offset 0
dumped 262144 bytes in 9.208965s (27.799 KiB/s)
read 262144 bytes
read offset 262144
dumped 262144 bytes in 9.208883s (27.799 KiB/s)
read 262144 bytes
read offset 524288
dumped 262144 bytes in 9.210377s (27.795 KiB/s)
read 262144 bytes
read offset 786432
dumped 262144 bytes in 9.208920s (27.799 KiB/s)
read 262144 bytes

> rtl8710_flash_verify dump.bin 0
read offset 0
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.847416s (28.935 KiB/s)
verify offset 0
read offset 262144
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.845944s (28.940 KiB/s)
verify offset 262144
read offset 524288
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.866574s (28.872 KiB/s)
verify offset 524288
read offset 786432
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.869291s (28.864 KiB/s)
verify offset 786432

> rtl8710_flash_mass_erase    

> rtl8710_flash_verify dump.bin 0
read offset 0
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.846901s (28.937 KiB/s)
verify offset 0
rtl8710.ocd:195: Error: verify error, offset 0
in procedure 'rtl8710_flash_verify'
in procedure 'rtl8710_flasher_verify_block' called at file "rtl8710.ocd", line 303
at file "rtl8710.ocd", line 195

> rtl8710_flash_read dump_erased.bin 0 1024
read offset 0
dumped 1024 bytes in 0.040359s (24.778 KiB/s)
read 1024 bytes

> rtl8710_flash_write dump.bin 0        
write offset 0
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.855712s (28.908 KiB/s)
wrote 262144 bytes
write offset 262144
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.850438s (28.925 KiB/s)
wrote 262144 bytes
write offset 524288
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.858675s (28.898 KiB/s)
wrote 262144 bytes
write offset 786432
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.869229s (28.864 KiB/s)
wrote 262144 bytes

> rtl8710_flash_verify dump.bin 0       
read offset 0
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.846508s (28.938 KiB/s)
verify offset 0
read offset 262144
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.846881s (28.937 KiB/s)
verify offset 262144
read offset 524288
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.865390s (28.876 KiB/s)
verify offset 524288
read offset 786432
262144 bytes written at address 0x10008020
downloaded 262144 bytes in 8.875544s (28.843 KiB/s)
verify offset 786432

> shutdown
Если по-человечески то слил дамп AT прошивки из модуля, стер его, убедился что флэш стерлась после чего залил дамп обратно.
После openocd сделал верификацию в JFlash с дампом слитым с помощью него - совпало.

Итого: у меня rebane flasher работает. Наверно я что-то делаю неправильно.
 

Вложения

Сверху Снизу