Добрый день! Я пытаюсь разобратся с 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 ------------------