sw_apps: openamp matrix multiply application is modified
This patch changes linker script to keep everything into DDR except vectors. It removes frequent call to enable interrupt and removed disable interrupt in between. It also fixes the order of text carve out entry. Signed-off-by: Kinjal Pravinbhai Patel <patelki@xilinx.com> Acked-for-series: Anirudha Sarangi <anirudh@xilinx.com>
This commit is contained in:
parent
77c1e57aee
commit
e7d500deb7
5 changed files with 6 additions and 12 deletions
|
@ -49,8 +49,6 @@ int zynqMP_r5_gic_initialize() {
|
|||
#ifndef USE_FREERTOS
|
||||
u32 Status;
|
||||
|
||||
Xil_ExceptionDisable();
|
||||
|
||||
XScuGic_Config *IntcConfig; /* The configuration parameters of the interrupt controller */
|
||||
|
||||
/*
|
||||
|
|
|
@ -294,7 +294,7 @@ _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
|
|||
. += _HEAP_SIZE;
|
||||
_heap_end = .;
|
||||
HeapLimit = .;
|
||||
} > ps8_ocm_ram_1_S_AXI_BASEADDR
|
||||
} > ps8_ddr_S_AXI_BASEADDR
|
||||
|
||||
.stack (NOLOAD) : {
|
||||
. = ALIGN(16);
|
||||
|
@ -322,7 +322,7 @@ _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
|
|||
. += _UNDEF_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
__undef_stack = .;
|
||||
} > ps8_ocm_ram_1_S_AXI_BASEADDR
|
||||
} > ps8_ddr_S_AXI_BASEADDR
|
||||
|
||||
_end = .;
|
||||
}
|
||||
|
|
|
@ -278,7 +278,7 @@ _binary_firmware2_end = 0;
|
|||
*(COMMON)
|
||||
. = ALIGN(4);
|
||||
__bss_end__ = .;
|
||||
} > ps8_ocm_ram_1_S_AXI_BASEADDR
|
||||
} > ps8_ddr_S_AXI_BASEADDR
|
||||
|
||||
_SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 );
|
||||
|
||||
|
@ -322,7 +322,7 @@ _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
|
|||
. += _UNDEF_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
__undef_stack = .;
|
||||
} > ps8_ocm_ram_1_S_AXI_BASEADDR
|
||||
} > ps8_ddr_S_AXI_BASEADDR
|
||||
|
||||
_end = .;
|
||||
}
|
||||
|
|
|
@ -187,14 +187,13 @@ void communication_task(){
|
|||
#else
|
||||
env_create_sync_lock(&OpenAMPInstPtr.lock,LOCKED);
|
||||
#endif
|
||||
env_enable_interrupt(VRING1_IPI_INTR_VECT, 0, 0);
|
||||
while (1) {
|
||||
#ifdef USE_FREERTOS
|
||||
QueueSetMemberHandle_t xActivatedMember;
|
||||
env_enable_interrupt(VRING1_IPI_INTR_VECT, 0, 0);
|
||||
xActivatedMember = xQueueSelectFromSet( comm_queueset, portMAX_DELAY);
|
||||
if( xActivatedMember == OpenAMPInstPtr.lock ) {
|
||||
env_acquire_sync_lock(OpenAMPInstPtr.lock);
|
||||
env_disable_interrupt(VRING1_IPI_INTR_VECT);
|
||||
process_communication(OpenAMPInstPtr);
|
||||
}
|
||||
if (xActivatedMember == OpenAMPInstPtr.send_queue) {
|
||||
|
@ -202,9 +201,7 @@ void communication_task(){
|
|||
rpmsg_send(app_rp_chnl, send_data.data, send_data.length);
|
||||
}
|
||||
#else
|
||||
env_enable_interrupt(VRING1_IPI_INTR_VECT, 0, 0);
|
||||
env_acquire_sync_lock(OpenAMPInstPtr.lock);
|
||||
env_disable_interrupt(VRING1_IPI_INTR_VECT);
|
||||
process_communication(OpenAMPInstPtr);
|
||||
matrix_mul();
|
||||
if(pq_qlength(OpenAMPInstPtr.send_queue) > 0) {
|
||||
|
|
|
@ -44,9 +44,8 @@ struct remote_resource_table {
|
|||
unsigned int reserved[2];
|
||||
unsigned int offset[NO_RESOURCE_ENTRIES];
|
||||
/* text carve out entry */
|
||||
|
||||
struct fw_rsc_carveout ddr_cout;
|
||||
struct fw_rsc_carveout ocm_1_cout;
|
||||
struct fw_rsc_carveout ddr_cout;
|
||||
/* rpmsg vdev entry */
|
||||
struct fw_rsc_vdev rpmsg_vdev;
|
||||
struct fw_rsc_vdev_vring rpmsg_vring0;
|
||||
|
|
Loading…
Add table
Reference in a new issue