Я уже много лет пытаюсь внедрить код в DS-5, ориентируясь на Cortex-A9 и используя NEON SIMD intrinsics. Мне удалось выполнить несколько небольших программ через отладчик, но когда я пытаюсь выделить память больше, чем 256Кб я всегда получаю сообщениеНаложение дублирования памяти в DS-5 при реализации кода для руки Cortex-A9
Описания Пути информационного ресурса Тип L6221E: Execution области ZI_DATA с диапазоном исполнения [0x80001674, 0x800417d0) перекрывается с областью выполнения ARM_LIB_HEAP с диапазоном выполнения [0x80040000,0x80080000). CPUTest2017RE C/C++ Проблема
Карта памяти запланирована файлом рассеивает следующий
;*******************************************************
; Copyright (c) 2011-2014 ARM Ltd. All rights reserved.
;*******************************************************
; Scatter-file for Cortex-A9 bare-metal example on Versatile Express
; This scatter-file places application code, data, stack and heap at suitable addresses in the memory map.
; Using a scatter-file with ARM_LIB_STACKHEAP eliminates the need to set stack-limit or heap-base in the debugger.
; Versatile Express with Cortex-A9 has 1GB SDRAM at 0x60000000 to 0x9FFFFFFF, which this scatter-file uses.
SDRAM 0x80000000 0x10000000
{
VECTORS +0
{
* (VECTORS, +FIRST) ; Vector table and other (assembler) startup code
* (InRoot$$Sections) ; All (library) code that must be in a root region
}
RO_CODE +0
{ * (+RO-CODE) } ; Application RO code (.text)
RO_DATA +0
{ * (+RO-DATA) } ; Application RO data (.constdata)
RW_DATA +0
{ * (+RW) } ; Application RW data (.data)
ZI_DATA +0
{ * (+ZI) } ; Application ZI data (.bss)
ARM_LIB_HEAP 0x80040000 EMPTY 0x00040000 ; Application heap
{ }
ARM_LIB_STACK 0x80090000 EMPTY -0x00010000 ; Application (SVC mode) stack
{ }
IRQ_STACK 0x800A0000 EMPTY -0x00010000 ; IRQ mode stack
{ }
TTB 0x80100000 EMPTY 0x4000 ; Level-1 Translation Table for MMU
{ }
}
Так что моя проблема в том, что, когда я выделяю память передать 512x512 (.bdat формата) Изображение это распределение происходит в ZI_DATA, а не в SDRAM, что является бесплатным. Я пробовал почти каждую конфигурацию, и либо я получаю ошибку выше, либо отладчик застрял в ожидании ... В чем проблема?
PS: тот же код работал на Cortex-A8 и более старой версии DS-5, но по какой-то причине отладчик Cortex-A8 не работает с новейшей версией DS-5.
Я попытался переместить пределы памяти, чтобы скомпилировать код, но позже на эмулятор застрял ... Странно, что пример, который я использую, - это готовый к использованию пример, который приходит с DS-5. –
Вы проверили файл карты? вы можете вставить этот файл в любой пастебин, чтобы я мог видеть – theadnangondal