Выходят такие позиции у реальной ROM в начальной области RAM и Boot:
Код:
10000000 D NewVectorTable
10000100 D UserIrqFunTable
10000200 D UserIrqDataTable
10000300 D CfgSysDebugWarn
10000304 D CfgSysDebugInfo
10000308 D CfgSysDebugErr
1000030c D ConfigDebugWarn
10000310 D ConfigDebugInfo
10000314 D ConfigDebugErr
10000318 D HalTimerOp
10000334 D GPIOState
1000034c D gTimerRecord
10000350 D SSI_DBG_CONFIG
10000354 D _pHAL_Gpio_Adapter
10000358 D Timer2To7VectorTable
10000370 D _rand_first
10000374 D _rand_z1
10000378 D _rand_z2
1000037c D _rand_z3
10000380 D _rand_z4
10000384 D pUartLogCtl
10000388 D UartLogBuf
10000408 D UartLogCtl
10000430 D UartLogHistoryBuf
100006ac D ArgvArray
100006d4 D rom_wlan_ram_map
100006e0 D FalseAlmCnt
10000720 D ROMInfo
10000738 D DM_CfoTrack
10000760 D rom_libgloss_ram_map
10000780 D __rtl_malloc_av_
10000b88 D __rtl_malloc_trim_threshold
10000b8c D __rtl_malloc_top_pad
10000b90 D __rtl_malloc_sbrk_base
10000b94 D __rtl_malloc_max_sbrked_mem
10000b98 D __rtl_malloc_max_total_mem
10000b9c D __rtl_malloc_current_mallinfo
10000bc4 D __rtl_errno
10000bc8 D gRamStartFun
10000bcc D gRamPatchWAKE
10000bd0 D gRamPatchFun0
10000bd4 D gRamPatchFun1
10000bd8 D gRamPatchFun2
10000bdc D RAM_IMG1_VALID_PATTEN
10000be4 D rand_x
10000be8 D AvaWds
10001be8 D SdrDramInfo
10001bfc D SdrDramTiming
10001c30 D SdrDramModeReg
10001c4c D SdrDramDev
10001c60 A _rtl_impure_ptr
10001c68 D impure_reent
10002090 D _rom_неивестные_данные
100020b4 D _sdr_rnd2_y
100020b8 D _sdr_rnd2_z
100020bc D _sdr_rnd2_c
Конец использования у Ameba назначен вроде как 0x10002114. Но пока не встретил в IDA обращений из ROM по фиксед адресам выше 0x100020bc (ну кроме блока SDIO использующего конец RAM c 0x1006D000.. до конца).
Т.е., если обращаемся к процедурам rom-bios, то надо предоставить область c 0x10000000 по 0x10002100 c проинициализированными там данными... bss область rom-ram можно и очистить при старте уже в boot, но нарушатся отметки используемых i/o на периферию и прочие глупости... Так оно и работает у Ameba - Hal ругается не по делу и i/o не работают
О SDRAM и SPIC вообще пока помолчу - том полный бардак и по этому всякие Ameba используют режим только SIO обращений к Flash и наблюдаем кучу бреда от разных версий загрузчиков и конфликтов их с калибровочными значениями...
Переинициализация SPIC в SDK при старте доходит до 5 раз и в разных вариантах кода (куча дублей - с пометками процедур как _patch и так и сяк
- а достаточно всего одной и одного массива параметров в области ram-rom
)
При загрузке их boot (ram_1.r.bin) перекрывает область параметров rom-bios со значениями для spic и поля у них не совпадают по адресации для текущей версии ROM - итог = мешанина и необходимость дублирования процедур инициализации и их данных в других областях RAM.
Затем boot (ram_1.r.bin) загружает и запускает image2 - в нем новые инициализации и новые буфера для их данных калибровок...
Потом инится mbed api - у него опять новые поля и данные калибровок...
И т.д. В одном интерфейсе spic иниться на DIO, в другом на SIO и всё это как-то живет, требуя процедур с патчем на патче при обращении к специфичным функциям flash
А пол мега процедур в rom - выходят ненужным хламом - как пример - процедура Random-а из ROM дублирована в SDK более 5-ти раз под разными именами...
Потом не удивительно, что 512к RAM не хватает ни для чего
Понятно, что это всё сделано ради совместимости с предыдущими патчами, как это ныне модно. Тут без OTAсовсем ни как. На пошлый патч нужен новый патч и их цикл бесконечен – это и есть основа и главные задачи современного ПО - обновление ради обновления, вместо исправления начального нарушения.
Отец...
вы так ошибаетесь.
Позвольте объяснить.
Жизнь, которой вы так благородно служите,
происходит из разрушения и хаоса.
Возьмем этот пустой стакан.
Вот он, спокойный...
скучный.
Но если его...
уничтожить.
Посмотри на этих малышей.
Как они теперь заняты.
Заметьте, как полезна каждая.
Что за прекрасный балет...
полный форм и красок.
Теперь подумайте обо всех тех людях
создавших их.
Техники, инженеры. Люди, которые
могут накормить сегодня своих детей...
чтобы эти дети затем выросли
и имели своих детей...
и так далее.
Таким образов создается
великая цепочка...
жизни.
Вода.
Фрукты.
Вот видите, святой отец,
создавая небольшое разрушение...
Я поддерживаю жизнь.
По сути, мы заняты одним делом.
(с) Пятый элемент