RTL00 MP3 player

Алексей.

Active member
Не получается обратить st-link/v2 в j-link
STLinkReflash (170628) говорит
Preparing for FW update (can take up to 10 seconds)...ERROR: Unsupported ST-LINK firmware

Сам st-link работает, отладочные платы на stm-ах подключаемые по swd, видит.
Версия его фирмваря V2.J30.S7 STM32+STM8 Debugger
Кто нибудь сталкивался с подобной проблемой?
 

pvvx

Активный участник сообщества
Не получается обратить st-link/v2 в j-link
STLinkReflash (170628) говорит
Preparing for FW update (can take up to 10 seconds)...ERROR: Unsupported ST-LINK firmware

Сам st-link работает, отладочные платы на stm-ах подключаемые по swd, видит.
Версия его фирмваря V2.J30.S7 STM32+STM8 Debugger
Кто нибудь сталкивался с подобной проблемой?
Значит китайский клон. У него другой загрузчик.
Есть тема https://esp8266.ru/forum/threads/ud...lej-rtlxxx-pod-windows.1621/page-3#post-39150
И подробнее в Прошивка ST-Link в J-Link
 

bob_2

New member
Добрый день! Я пытаюсь разобратся с RTL8710 и решил в качестве примера попробовать запустить на устройсте обсуждаемый здесь проект "RTL00 MP3 player". Во время сборки вываливается ошибка "Error rom-bios-boot code & data!". Нашел источник сообщения в файле rlx8195A-symbol-v04-img2.ld который используется линковщиком. В этом файле есть строчка ASSERT(__ram_image_end__ == 0x100020c0, "Error rom-bios-boot code & data!") - которая собственно и прекращает дальнейшую линковку в случае если __ram_image_end__ !=0x100020c0. Тепер соответственно несколько вопросов к знающим:
- как победить данную ошибку(проект ника не модифицировался, а компилировался после стягивания с гитхаба как есть), желательно пояснить причину ошибки и дать алгоритм действий по исправлению, типа зайди в такой файл и измени тото;
- что это за магическое число 0x100020c0 с которым производится сравнение и откуда оно берется;
- как формируется *.map файл в папке /Obj и почему в нем указано 0x100020c8 PROVIDE (__ram_image_end__, .), что на 8 байт больше чем указано в проверке ASSERT(__ram_image_end__ == 0x100020c0, "Error rom-bios-boot code & data!");
- почему после корректировке _ram_image_end__ == 0x100020c8 в файле rlx8195A-symbol-v04-img2.ld проект компилится но при запуске выдает ошибку типа
<RTL8195A>nter SRAM-Boot 1 ====
83333333 Hz, SOC FUNC EN: 0x20011113
t fail!

При этом доступна какаято консоль

----------------- COMMAND MODE HELP ------------------
HELP (?) : Print this help messag

DB <Address, Hex> <Len, Dec>:
Dump memory byte or Read Hw byte register
DHW <Address, Hex> <Len, Dec>:
Dump memory helf-word or Read Hw helf-word regi
ster
DW <Address, Hex> <Len, Dec>:
Dump memory word or Read Hw word register
EW <Address, Hex> <Value, Hex>:
Write memory word or Write Hw word register
Can write more word at the same time
Ex: EW Address Value0 Value1
SPICTOOL <Mode, Dec> <BitMode, Dec>:
Mode = 1: Init SPIC; BitMode: 0(One)/1(Dual)/2
(Quad)
Mode = 2: Erase Chip

----------------- COMMAND MODE END ------------------
 

rst

Member
В этом файле есть строчка ASSERT(__ram_image_end__ == 0x100020c0, "Error rom-bios-boot code & data!") - которая собственно и прекращает дальнейшую линковку в случае если __ram_image_end__ !=0x100020c0. Тепер соответственно несколько вопросов к знающим:
- как победить данную ошибку(проект ника не модифицировался, а компилировался после стягивания с гитхаба как есть), желательно пояснить причину ошибки
Я не "знающий", но исходя из самого названия ram_image_end следует, что эта строчка контролирует чтобы область ram_image заканчивалась на адресе 0x100020c0. Значит это почему-то необходимо программе.
И очевидно, что "после стягивания" в скомпилированной Вами прошивке ram_image заканчивается по какому-то другому адресу.
- почему после корректировке _ram_image_end__ == 0x100020c8 в файле rlx8195A-symbol-v04-img2.ld проект компилится но при запуске выдает ошибку
Раз в исходниках такая проверка стоит, значит им это необходимо. Вы же не глядя похерили эту проверку. Почему после этого программа должна работать?
Ищите почему у Вас ram_image получается больше чем надо на 8 байт. Это нужно смотреть .map-файл и разбираться - какие переменные лезут в эту область. Возможно можно включить (или выключить) оптимизацию и размер изменится.
 

bob_2

New member
Я не "знающий", но исходя из самого названия ram_image_end следует, что эта строчка контролирует чтобы область ram_image заканчивалась на адресе 0x100020c0. Значит это почему-то необходимо программе.
И очевидно, что "после стягивания" в скомпилированной Вами прошивке ram_image заканчивается по какому-то другому адресу.
Раз в исходниках такая проверка стоит, значит им это необходимо. Вы же не глядя похерили эту проверку. Почему после этого программа должна работать?
Ищите почему у Вас ram_image получается больше чем надо на 8 байт. Это нужно смотреть .map-файл и разбираться - какие переменные лезут в эту область. Возможно можно включить (или выключить) оптимизацию и размер изменится.
Я стянул с гитхаба проект, компилю его с параметрами(без каких либо модификаций) указанными в приложенному к проекту Makefile и он не собирается из-за ранее указаной проблемы. У когото "из коробки" данный проект собрался? И подскажите те, кто решил подобную проблему, как Вы ее решали. И доплнительно если например перейти на свежий компилятор то как тогда компилить проект и что нада править чтоб не возникала ранее указанная ошибка?
 
Последнее редактирование:

FGX

Member
Добрый день. Ранее я собирал прошивки в eclipse, проверял настраивал, работало. Переставил винду, захотел еще поиграться с РТЛ, но не хочет eclipse работать. Я почитал форум данный и вроде похоже на то, что путь слишком длинный, но может я ошибаюсь. Пути прописывал все что только нашел, ставил все по несколько раз. Не подскажите куда копать, прошивки для esp8266 тот же эклипс собирает.

00:30:26 **** Build of configuration Release for project RTL00MP3 ****
mingw32-make.exe -s -j 4 all
project/src/user/main.c
project/src/user/spiram_fifo.c
===========================================================
Compile (build)
RTL00_SDKV35a/sdkbuild.mk:66: recipe for target 'project/src/user/main.o' failed
process_begin: CreateProcess(NULL, arm-none-eabi-gcc -DM3 -DCONFIG_PLATFORM_8195A -DGCC_ARMCM3 -DARDUINO_SDK -DF_CPU=166666666L -DNDEBUG -mcpu=cortex-m3 -mthumb -g2 -Os -std=gnu99 -fno-common -fmessage-length=0 -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-short-enums -fsigned-char -Wall -Werror -Wno-old-style-declaration -Wno-pointer-sign -Wno-strict-aliasing -Wno-variadic-macros -Wno-empty-body -DLOGUART_STACK_SIZE=1024 -I../inc -Iproject/inc -IRTL00_SDKV35a/component/soc/realtek/common/bsp -IRTL00_SDKV35a/component/os/freertos -IRTL00_SDKV35a/component/os/freertos/freertos_v9.0.0/Source/include -IRTL00_SDKV35a/component/os/freertos/freertos_v9.0.0/Source/portable/GCC/ARM_CM3 -IRTL00_SDKV35a/component/os/os_dep/include -IRTL00_SDKV35a/component/soc/realtek/8195a/misc/driver -IRTL00_SDKV35a/component/common/api/network/include -IRTL00_SDKV35a/component/common/api -IRTL00_SDKV35a/component/common/api/platform -IRTL00_SDKV35a/component/common/api/wifi -IRTL00_SDKV35a/component/common/api/wifi/rtw_wpa_supplicant/src -IRTL00_SDKV35a/component/common/network -IRTL00_SDKV35a/component/common/network/lwip/lwip_v1.4.1/port/realtek/freertos -IRTL00_SDKV35a/component/common/network/lwip/lwip_v1.4.1/src/include -IRTL00_SDKV35a/component/common/network/lwip/lwip_v1.4.1/src/include/lwip -IRTL00_SDKV35a/component/common/network/lwip/lwip_v1.4.1/src/include/ipv4 -IRTL00_SDKV35a/component/common/network/lwip/lwip_v1.4.1/port/realtek -IRTL00_SDKV35a/component/common/test -IRTL00_SDKV35a/component/soc/realtek/8195a/cmsis -IRTL00_SDKV35a/component/soc/realtek/8195a/cmsis/device -IRTL00_SDKV35a/component/soc/realtek/8195a/fwlib -IRTL00_SDKV35a/component/soc/realtek/8195a/fwlib/rtl8195a -IRTL00_SDKV35a/component/soc/realtek/8195a/misc/rtl_std_lib/ -IRTL00_SDKV35a/component/soc/realtek/8195a/misc/rtl_std_lib/include -IRTL00_SDKV35a/component/common/drivers -IRTL00_SDKV35a/component/common/drivers/i2s -IRTL00_SDKV35a/component/common/drivers/wlan/realtek/include -IRTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep -IRTL00_SDKV35a/component/common/drivers/wlan/realtek/src/hci -IRTL00_SDKV35a/component/common/drivers/wlan/realtek/src/hal -IRTL00_SDKV35a/component/common/drivers/wlan/realtek/src/hal/OUTSRC -IRTL00_SDKV35a/component/common/drivers/sdio/realtek/sdio_host/inc -IRTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/wlan/realtek/wlan_ram_map/rom -IRTL00_SDKV35a/component/common/network/ssl/ssl_ram_map/rom -IRTL00_SDKV35a/component/common/mbed/api -IRTL00_SDKV35a/component/common/mbed/hal -IRTL00_SDKV35a/component/common/mbed/hal_ext -IRTL00_SDKV35a/component/common/mbed/targets/hal/rtl8195a -Iproject/inc/mad -I../inc -Iproject/inc -IRTL00_SDKV35a/component/soc/realtek/common/bsp -IRTL00_SDKV35a/component/os/freertos -IRTL00_SDKV35a/component/os/freertos/freertos_v9.0.0/Source/include -IRTL00_SDKV35a/component/os/freertos/freertos_v9.0.0/Source/portable/GCC/ARM_CM3 -IRTL00_SDKV35a/component/os/os_dep/include -IRTL00_SDKV35a/component/soc/realtek/8195a/misc/driver -IRTL00_SDKV35a/component/common/api/network/include -IRTL00_SDKV35a/component/common/api -IRTL00_SDKV35a/component/common/api/platform -IRTL00_SDKV35a/component/common/api/wifi -IRTL00_SDKV35a/component/common/api/wifi/rtw_wpa_supplicant/src -IRTL00_SDKV35a/component/common/network -IRTL00_SDKV35a/component/common/network/lwip/lwip_v1.4.1/port/realtek/freertos -IRTL00_SDKV35a/component/common/network/lwip/lwip_v1.4.1/src/include -IRTL00_SDKV35a/component/common/network/lwip/lwip_v1.4.1/src/include/lwip -IRTL00_SDKV35a/component/common/network/lwip/lwip_v1.4.1/src/include/ipv4 -IRTL00_SDKV35a/component/common/network/lwip/lwip_v1.4.1/port/realtek -IRTL00_SDKV35a/component/common/test -IRTL00_SDKV35a/component/soc/realtek/8195a/cmsis -IRTL00_SDKV35a/component/soc/realtek/8195a/cmsis/device -IRTL00_SDKV35a/component/soc/realtek/8195a/fwlib -IRTL00_SDKV35a/component/soc/realtek/8195a/fwlib/rtl8195a -IRTL00_SDKV35a/component/soc/realtek/8195a/misc/rtl_std_lib/ -IRTL00_SDKV35a/component/soc/realtek/8195a/misc/rtl_std_lib/include -IRTL00_SDKV35a/component/common/drivers -IRTL00_SDKV35a/component/common/drivers/i2s -IRTL00_SDKV35a/component/common/drivers/wlan/realtek/include -IRTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep -IRTL00_SDKV35a/component/common/drivers/wlan/realtek/src/hci -IRTL00_SDKV35a/component/common/drivers/wlan/realtek/src/hal -IRTL00_SDKV35a/component/common/drivers/wlan/realtek/src/hal/OUTSRC -IRTL00_SDKV35a/component/common/drivers/sdio/realtek/sdio_host/inc -IRTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/wlan/realtek/wlan_ram_map/rom -IRTL00_SDKV35a/component/common/network/ssl/ssl_ram_map/rom -IRTL00_SDKV35a/component/common/mbed/api -IRTL00_SDKV35a/component/common/mbed/hal -IRTL00_SDKV35a/component/common/mbed/hal_ext -IRTL00_SDKV35a/component/common/mbed/targets/hal/rtl8195a -Iproject/inc/mad -c project/src/user/main.c -o build/obj/project/src/user/main.o, ...) failed.
make (e=2): Не удается найти указанный файл.


00:30:28 Build Failed. 8 errors, 0 warnings. (took 1s.153ms)
 

FGX

Member
Вот добавляю веб сервер есп и все ОК, т.е. я понимаю так, что не все так плохо и большинство программ и путей настроено правильно, но ни один пример для RTL не собирается.
Entry Point : 40106E6C ovl_init()
Total Used RAM : 3164
Free IRam : 30568 or 46952 (option 48k IRAM)
Free Heap : 80956
Total Free RAM : 127908
mingw32-make[2]: Leaving directory 'C:/githab/esp8266web/ovls/udptp'
mingw32-make[2]: Entering directory 'C:/githab/esp8266web/ovls/wdrv'
mingw32-make[3]: Entering directory 'C:/githab/esp8266web/ovls/wdrv/main'
mingw32-make[3]: Leaving directory 'C:/githab/esp8266web/ovls/wdrv/main'
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFFDF60| 3FFFDF60| 0
rodata| ReadOnly Data (RAM)| 3FFFDF60| 3FFFE038| 216
bss| Uninitialized Data (RAM)| 3FFFE038| 3FFFE040| 8
lit4| Uninitialized Data (IRAM)| 40106CE0| 40106CE0| 0
text| Uncached Code (IRAM)| 40106600| 40106CE0| 1760
irom0_text| Cached Code (SPI)| 40210000| 40210000| 0
------------------------------------------------------------------------------
Entry Point : 40106BF8 ovl_init()
Total Used RAM : 1984
Free IRam : 31008 or 47392 (option 48k IRAM)
Free Heap : 81696
Total Free RAM : 129088
mingw32-make[2]: Leaving directory 'C:/githab/esp8266web/ovls/wdrv'
mingw32-make[1]: Leaving directory 'C:/githab/esp8266web/ovls'
mingw32-make[1]: Entering directory 'C:/githab/esp8266web/webbin'
mingw32-make[1]: 'WEBFiles.bin' is up to date.
mingw32-make[1]: Leaving directory 'C:/githab/esp8266web/webbin'

00:38:17 Build Finished. 0 errors, 0 warnings. (took 7s.565ms)
 
Сверху Снизу