• Система автоматизации с открытым исходным кодом на базе 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 работает. Наверно я что-то делаю неправильно.
 

Вложения

Сверху Снизу