Programme fft

Fermé
naomisouki Messages postés 4 Date d'inscription vendredi 17 mars 2017 Statut Membre Dernière intervention 11 avril 2017 - 17 mars 2017 à 14:48
naomisouki Messages postés 4 Date d'inscription vendredi 17 mars 2017 Statut Membre Dernière intervention 11 avril 2017 - 17 mars 2017 à 18:40
bonjour
j'ai besoin d'aide j'ai du mal a faire l’organigramme de ce programme
// ***** Includes *****
#include "xgpio.h"
#include "xllfifo.h"
#include "xuartlite.h"
#include "fft.h"

// ***** External variables *****
extern XGpio axi_gpio;
extern XLlFifo axi_llfifo;


// ***** Global variables *****

int init_drivers()
{

// ***** Local variables *****
int status = 0;
XLlFifo_Config *llfifo_cfg;

xil_printf("Initializing drivers...\n\r");

// ***** Initialize LlFifo device *****
status = llfifo_init(llfifo_cfg);
if (status != XST_SUCCESS)
{
xil_printf("ERROR! LLFIFO initialization failed!\n\r");
return XST_FAILURE;
}

xil_printf("Driver initialization complete!\n\r");

return XST_SUCCESS;

platform_config.h

int stim_buf[MAX_FFT_LENGTH] =
{
-833, 606, 1204, 139, -1122, -827, 619, 1206, 120, -1127, -810, 629, 1202, 106, -1132, -799,
646, 1194, 94, -1138, -788, 659, 1194, 74, -1143, -778, 668, 1190, 62, -1155, -767, 684,
1181, 45, -1156, -756, 697, 1181, 28, -1161, -738, 706, 1177, 14, -1171, -727, 723, 1167,
-1, -1170, -716, 735, 1167, -20, -1175, -702, 744, 1163, -34, -1182, -689, 759, 1154, -47,
-1184, -678, 773, 1151, -67, -1185, -664, 781, 1148, -78, -1195, -651, 795, 1137, -95, -1194,
-638, 809, 1134, -112, -1199, -626, 816, 1129, -126, -1204, -611, 829, 1119, -139, -1202, -598,
844, 1115, -158, -1209, -585, 849, 1108, -170, -1212, -571, 863, 1098, -183, -1210, -558, 876,
1094, -204, -1215, -544, 883, 1089, -218, -1220, -529, 896, 1075, -231, -1218, -518, 909, 1073,
-251, -1218, -498, 915, 1066, -262, -1227, -487, 927, 1054, -277, -1226, -476, 939, 1050, -292,
-1227, -458, 944, 1041, -310, -1228, -443, 957, 1030, -321, -1226, -435, 967, 1025, -340, -1231,
-416, 975, 1016, -352, -1235, -399, 986, 1005, -367, -1226, -388, 995, 996, -384, -1231, -370,
1000, 988, -394, -1235, -355, 1012, 976, -411, -1230, -342, 1021, 968, -428, -1227, -328, 1027,
961, -439, -1235, -311, 1040, 948, -451, -1226, -300, 1047, 940, -470, -1227, -282, 1052, 931,
-482, -1228, -265, 1062, 917, -495, -1224, -254, 1071, 910, -515, -1223, -237, 1074, 899, -526,
-1222, -219, 1084, 886, -539, -1218, -211, 1093, 878, -556, -1215, -190, 1096, 867, -568, -1214,
-175, 1106, 853, -577, -1210, -163, 1113, 844, -595, -1207, -146, 1116, 835, -608, -1206, -129,
1124, 820, -619, -1202, -116, 1132, 810, -636, -1199, -99, 1134, 799, -648, -1196, -83, 1145,
784, -659, -1192, -70, 1150, 774, -676, -1185, -54, 1153, 763, -686, -1182, -35, 1160, 748,
-699, -1178, -24, 1166, 737, -712, -1175, -6, 1168, 725, -722, -1171, 11, 1176, 709, -735,
-1162, 22, 1180, 701, -748, -1159, 40, 1181, 688, -762, -1156, 57, 1188, 674, -775, -1146,
70, 1191, 662, -788, -1143, 86, 1194, 649, -794, -1140, 101, 1199, 634, -807, -1130, 116,
1203, 622, -822, -1121, 132, 1203, 609, -832, -1118, 149, 1209, 592, -843, -1112, 162, 1213,
582, -854, -1103, 179, 1212, 569, -868, -1100, 197, 1217, 552, -875, -1090, 205, 1219, 540,
-886, -1083, 224, 1219, 529, -898, -1078, 241, 1223, 511, -907, -1066, 252, 1227, 499, -918,
-1057, 270, 1225, 485, -929, -1054, 285, 1228, 468, -939, -1042, 298, 1229, 455, -950, -1035,
314, 1227, 441, -958, -1028, 329, 1230, 426, -967, -1018, 342, 1233, 413, -980, -1007, 358,
1230, 399, -986, -1002, 373, 1231, 380, -995, -994, 386, 1230, 367, -1006, -983, 403, 1229,
353, -1010, -974, 419, 1232, 338, -1023, -965, 430, 1231, 326, -1030, -955, 447, 1228, 309,
-1040, -947, 461, 1228, 292, -1047, -936, 474, 1227, 279, -1054, -927, 490, 1223, 265, -1062,
-916, 503, 1225, 246, -1071, -906, 516, 1222, 233, -1078, -895, 534, 1217, 217, -1087, -884,
545, 1219, 202, -1095, -872, 558, 1216, 190, -1102, -859, 574, 1211, 173, -1106, -852, 587,
1211, 156, -1115, -840, 598, 1209, 142, -1118, -827, 614, 1203, 128, -1126, -819, 629, 1202,
109, -1131, -804, 639, 1197, 95, -1139, -795, 655, 1192, 77, -1145, -782, 668, 1190, 66,
-1151, -769, 678, 1185, 50, -1156, -759, 693, 1181, 33, -1159, -746, 705, 1179, 18, -1167,
-730, 718, 1173, 4, -1171, -719, 732, 1168, -12, -1170, -708, 743, 1164, -28, -1179, -690,
756, 1157, -42, -1182, -683, 769, 1152, -60, -1186, -670, 779, 1147, -74, -1191, -653, 792,
1139, -90, -1194, -643, 803, 1135, -107, -1198, -630, 814, 1131, -121, -1203, -615, 825, 1120,
-137, -1206, -603, 840, 1117, -155, -1209, -586, 847, 1111, -166, -1211, -573, 861, 1101, -181,
-1210, -563, 872, 1097, -196, -1215, -548, 879, 1092, -212, -1219, -533, 894, 1080, -225, -1219,
-523, 905, 1076, -244, -1217, -506, 912, 1070, -259, -1227, -491, 926, 1056, -271, -1224, -479,
937, 1052, -288, -1225, -462, 941, 1045, -302, -1228, -447, 955, 1033, -319, -1226, -436, 966,
1027, -334, -1225, -419, 971, 1019, -346, -1235, -403, 984, 1006, -363, -1226, -390, 994, 1002,
-379, -1227, -374, 999, 994, -390, -1235, -359, 1012, 980, -405, -1226, -348, 1021, 973, -422,
-1227, -330, 1025, 963, -434, -1230, -315, 1038, 952, -449, -1226, -302, 1047, 945, -467, -1227,
-286, 1052, 935, -476, -1228, -271, 1063, 922, -491, -1225, -259, 1068, 916, -507, -1223, -240,
1074, 905, -518, -1222, -227, 1084, 891, -531, -1218, -211, 1093, 882, -548, -1215, -196, 1096,
873, -562, -1214, -179, 1106, 859, -575, -1210, -166, 1112, 848, -590, -1207, -146, 1117, 838,
-602, -1206, -131, 1125, 824, -615, -1202, -118, 1131, 814, -628, -1199, -102, 1136, 803, -642,
-1196, -88, 1143, 790, -655, -1190, -74, 1148, 778, -668, -1186, -57, 1153, 768, -681, -1182,
-43, 1161, 756, -695, -1178, -25, 1163, 743, -707, -1172, -9, 1170, 730, -719, -1166, 4,
1175, 718, -732, -1163, 22, 1177, 707, -742, -1159, 37, 1183, 692, -753, -1155, 52, 1189,
681, -771, -1147, 66, 1189, 669, -778, -1147, 83, 1197, 652, -793, -1134, 96, 1202, 642,
-804, -1129, 114, 1200, 627, -814, -1124, 131, 1207, 610, -825, -1118, 141, 1210, 602, -840,
-1111, 158, 1209, 588, -850, -1108, 177, 1216, 570, -859, -1098, 188, 1219, 562, -870, -1089,
206, 1217, 547, -882, -1084, 223, 1224, 530, -891, -1078, 234, 1224, 518, -904, -1067, 251,
1224, 505, -914, -1062, 265, 1227, 488, -923, -1050, 278, 1228, 476, -934, -1047, 296, 1227,
463, -944, -1038, 313, 1230, 444, -955, -1030, 324, 1232, 432, -964, -1019, 342, 1230, 417,
-973, -1014, 357, 1235, 402, -983, -1002, 370, 1232, 389, -990, -995, 386, 1232, 373, -1001,
-986, 400, 1234, 358, -1011, -976, 414, 1231, 345, -1018, -967, 431, 1232, 329, -1026, -954,
444, 1233, 314, -1035, -945, 458, 1228, 299, -1044, -939, 471, 1227, 283, -1053, -926, 485,
1228, 268, -1058, -913, 498, 1224, 254, -1066, -907, 516, 1223, 237, -1073, -896, 527, 1223,
222, -1083, -885, 544, 1217, 209, -1092, -876, 558, 1219, 189, -1095, -862, 568, 1217, 178,
-1107, -851, 584, 1209, 165, -1110, -844, 599, 1209, 146, -1117, -830, 608, 1208, 134, -1124,
-817, 623, 1199, 117, -1130, -811, 639, 1200, 98, -1135, -794, 650, 1196, 86, -1142, -1142
};

hada stim.h
#ifndef __PLATFORM_CONFIG_H_
#define __PLATFORM_CONFIG_H_

#endif
}

int llfifo_init(XLlFifo_Config* cfg_ptr)
{
// ***** Local variables *****
int status = 0;

xil_printf("Initializing LlFifo...\n\r");

// Look up hardware configuration for device

cfg_ptr = XLlFfio_LookupConfig(XPAR_AXI_FIFO_0_DEVICE_ID);

if (!cfg_ptr)
{
xil_printf("No config found for %d\r\n", XPAR_AXI_FIFO_0_DEVICE_ID);
return XST_FAILURE;
}

// Initialize driver
status = XLlFifo_CfgInitialize(&axi_llfifo, cfg_ptr, XPAR_AXI_FIFO_0_BASEADDR);
if (status != XST_SUCCESS)
{
xil_printf("Initialization failed %d\r\n", status);
return XST_FAILURE;
}

XLlFifo_Initialize(&axi_llfifo, XPAR_AXI_FIFO_0_BASEADDR);


xil_printf("LLFIO initialization complete!\n\r");

return XST_SUCCESS;
}

int gpio_init()
{
// ***** Local variables *****
int status = 0;

xil_printf("Initializing GPIO...\n\r");

status = XGpio_Initialize(&axi_gpio, XPAR_AXI_GPIO_0_DEVICE_ID);
if (status != XST_SUCCESS)
{
return XST_FAILURE;
}

xil_printf("GPIO initialization complete!\n\r");

return XST_SUCCESS;
}




int run_fft(fft_config_t* fft_params, int* stim_buf, int* result_buf)
{
// ***** Local variables *****
int status = 0;

xil_printf("Performing FFT...\n\r");

// Write config channel of FFT
status = fft_config(fft_params); // Due to hardware design, this will only actually update FFT core when a different value is written
if (status != XST_SUCCESS)
{
xil_printf("ERROR! Failed to configure the FFT core.\r\n", status);
return status;
}


// LLFIFO transfers
status = llfifo_xfer(stim_buf,result_buf);

while (status != MAX_FFT_LENGTH*4)
status = llfifo_xfer(stim_buf,result_buf);

xil_printf("FFT completed successfully!\n\r");

return XST_SUCCESS;
}

int fft_config(fft_config_t* fft_params)
{
// ***** Local variables *****
int reg;
int log2_N;
int tmp;

// Calculate log2 of the FFT length for use in the FFT core config channel
tmp = fft_params->fft_len-1;
for (log2_N = 0; tmp > 0; log2_N++)
tmp >>= 1;

// Set up register bits
reg = (fft_params->scale_sch << 9) & FFT_SCALE_SCH_MASK;
reg |= (fft_params->fwd_inv << ?? & FFT_FWD_INV_MASK;
reg |= (log2_N << 0) & FFT_LENGTH_MASK;

// Write config data to GPIO (which drives the FFT config interface)
XGpio_WriteReg(XPAR_AXI_GPIO_0_BASEADDR, XGPIO_DATA_OFFSET, reg);

return XST_SUCCESS;
}

int llfifo_xfer(int* stim_buf, int* result_buf)
{
XLlFifo_Write(&axi_llfifo, stim_buf, MAX_FFT_LENGTH*4);

XLlFifo_TxSetLen(&axi_llfifo, MAX_FFT_LENGTH*4);

int i,j;
for (i = 0; i < 10; i++) {
for (j = 0; j < 65535; j++);}

int frame_leng;
while (XLlFifo_RxOccupancy(&axi_llfifo))
{
frame_leng = XLlFifo_RxGetLen(&axi_llfifo);


XLlFifo_Read(&axi_llfifo, result_buf, frame_leng);
}

xil_printf("frame_leng = %d\n\r", frame_leng);
return frame_leng;

}


int print_results(fft_config_t* fft_params, int* result_buf)
{
// ***** Local variables *****
int ii;
signed int xk_re, xk_im;

xil_printf("Printing results...\n\r");
for (ii = 0; ii < fft_params->fft_len; ii++)
{
// Grab output values
xk_re = result_buf[ii] & XK_RE_MASK; // Lower bits
xk_im = (result_buf[ii] & XK_IM_MASK) >> 16; // Upper bits

// Sign extend output values
if (xk_re & SIGN_TEST_MASK)
xk_re += SIGN_EXTEND_MASK;
if (xk_im & SIGN_TEST_MASK)
xk_im += SIGN_EXTEND_MASK;

xil_printf("fft(%d) = %d\n\r", ii, result_buf[ii]);
// xil_printf("%d + j*%d ", xk_re, xk_im);
}

xil_printf("Done printing results!\n\r");

return XST_SUCCESS;
}


fft.h

/*
  • fft.h

*
  • Created on: Jul 31, 2013
  • Author:
  • /


// ***** Includes *****
#include "xgpio.h"
#include "xllfifo.h"
#include "xuartlite.h"

// ***** Defines *****
#define MAX_FFT_LENGTH 1024
#define FFT_LENGTH_MASK 0x0000001F // Bits [4:0]
#define FFT_FWD 0x00000001
#define FFT_INV 0x00000000
#define FFT_FWD_INV_MASK 0x00000100 // Bit 8
#define FFT_SCALE_SCH_MASK 0x007FFE00 // Bits [22:9]
#define XK_RE_MASK 0x0000FFFF
#define XK_IM_MASK 0xFFFF0000
#define SIGN_TEST_MASK 0x00008000 // Testing for signedness. Used for sign extension
#define SIGN_EXTEND_MASK 0xFFFF0000

// ***** Data structures *****
typedef struct fft_config
{
int fft_len; // Must be a power of 2
int fwd_inv; // 1 = forward, 0 = inverse
int scale_sch;
} fft_config_t;

// ***** Prototypes *****
int init_drivers();
int llfifo_init(XLlFifo_Config* cfg_ptr);
int gpio_init();
int which_fft_param(fft_config_t* fft_params);
int run_fft(fft_config_t* fft_params, int* stim_buf, int* result_buf);
int fft_config(fft_config_t* fft_params);
int llfifo_xfer(int* stim_buf, int* result_buf);
int print_results(fft_config_t* fft_params, int* result_buf);
int transmit(int* result_buf);


maine.c

#include "xparameters.h"
#include "xil_types.h"
#include "xil_io.h"

#include <stdio.h>

#ifdef XPAR_MICROBLAZE_ID
#include "microblaze_sleep.h"
#endif
#include "xil_cache.h"

#include "platform.h"
#include "xgpio.h"
#include "xllfifo.h"
#include "xuartlite.h"
#include "fft.h"
#include "xbasic_types.h"
#include "stim.h"


void Acquisition();


XGpio axi_gpio;
XLlFifo axi_llfifo;

int stim_buf[MAX_FFT_LENGTH];

int buf[MAX_FFT_LENGTH]; // FFT output data
//int buf1[MAX_FFT_LENGTH]; // FFT output data


int main(void)
{

// Setup UART and enable caching
init_platform();

Xil_ICacheEnable();


// ***** Local variables *****
int status = 0;
fft_config_t fft_params;
int fft_buf[MAX_FFT_LENGTH]; // FFT output data

char c;

// ***** Initialize drivers *****
init_drivers();

// ***** Initialize default FFT parameters *****
fft_params.fft_len = MAX_FFT_LENGTH; //1024;
fft_params.fwd_inv = FFT_FWD;
fft_params.scale_sch = 0x2AB;


run_fft(&fft_params, stim_buf, fft_buf);


while (1)
{
xil_printf("r: Perform FFT using current parameters\n\r");
xil_printf("p: Print FFT results\n\r");
xil_printf("s: Print current stimulus to be used for the FFT operation\n\r");
c = XUartLite_RecvByte(XPAR_UARTLITE_0_BASEADDR);
xil_printf(".\n\r");

if (c == 'r') // Run FFT
{

run_fft(&fft_params, stim_buf, fft_buf);
xil_printf("FFT done\n\r");

}
else if (c == 'p')
{
print_results(&fft_params, fft_buf);
}
else if (c == 's')
{
print_results(&fft_params, stim_buf);
}

else if (c == 'm')
{
print_results(&fft_params, buf);
}
else
xil_printf("Invalid character. Please try again.\n\r");

}


cleanup_platform();
return 0;

}


/******************************************************************************
*
  • Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved.

*
  • Permission is hereby granted, free of charge, to any person obtaining a copy
  • of this software and associated documentation files (the "Software"), to deal
  • in the Software without restriction, including without limitation the rights
  • to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  • copies of the Software, and to permit persons to whom the Software is
  • furnished to do so, subject to the following conditions:

*
  • The above copyright notice and this permission notice shall be included in
  • all copies or substantial portions of the Software.

*
  • Use of the Software is limited solely to applications:
  • (a) running on a Xilinx device, or
  • (b) that interact with a Xilinx device through a bus or interconnect.

*
  • THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  • IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  • FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  • XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  • WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
  • OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  • SOFTWARE.

*
  • Except as contained in this notice, the name of the Xilinx shall not be used
  • in advertising or otherwise to promote the sale, use or other dealings in
  • this Software without prior written authorization from Xilinx.

*
                                                                                                                                                            • /

platforme.c

#include "xparameters.h"
#include "xil_cache.h"

#include "platform_config.h"

/*
  • Uncomment one of the following two lines, depending on the target,
  • if ps7/psu init source files are added in the source directory for
  • compiling example outside of SDK.
  • /

/*#include "ps7_init.h"*/
/*#include "psu_init.h"*/

#ifdef STDOUT_IS_16550
#include "xuartns550_l.h"

#define UART_BAUD 9600
#endif

void
enable_caches()
{
#ifdef __PPC__
Xil_ICacheEnableRegion(CACHEABLE_REGION_MASK);
Xil_DCacheEnableRegion(CACHEABLE_REGION_MASK);
#elif __MICROBLAZE__
#ifdef XPAR_MICROBLAZE_USE_ICACHE
Xil_ICacheEnable();
#endif
#ifdef XPAR_MICROBLAZE_USE_DCACHE
Xil_DCacheEnable();
#endif
#endif
}

void
disable_caches()
{
Xil_DCacheDisable();
Xil_ICacheDisable();
}

void
init_uart()
{
#ifdef STDOUT_IS_16550
XUartNs550_SetBaud(STDOUT_BASEADDR, XPAR_XUARTNS550_CLOCK_HZ, UART_BAUD);
XUartNs550_SetLineControlReg(STDOUT_BASEADDR, XUN_LCR_8_DATA_BITS);
#endif
/* Bootrom/BSP configures PS7/PSU UART to 115200 bps */
}

void
init_platform()
{
/*
  • If you want to run this example outside of SDK,
  • uncomment one of the following two lines and also #include "ps7_init.h"
  • or #include "ps7_init.h" at the top, depending on the target.
  • Make sure that the ps7/psu_init.c and ps7/psu_init.h files are included
  • along with this example source files for compilation.
  • /

/* ps7_init();*/
/* psu_init();*/
enable_caches();
init_uart();
}

void
cleanup_platform()
{
disable_caches();
}

/******************************************************************************
*
  • Copyright (C) 2008 - 2014 Xilinx, Inc. All rights reserved.

*
  • Permission is hereby granted, free of charge, to any person obtaining a copy
  • of this software and associated documentation files (the "Software"), to deal
  • in the Software without restriction, including without limitation the rights
  • to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  • copies of the Software, and to permit persons to whom the Software is
  • furnished to do so, subject to the following conditions:

*
  • The above copyright notice and this permission notice shall be included in
  • all copies or substantial portions of the Software.

*
  • Use of the Software is limited solely to applications:
  • (a) running on a Xilinx device, or
  • (b) that interact with a Xilinx device through a bus or interconnect.

*
  • THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  • IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  • FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  • XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  • WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
  • OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  • SOFTWARE.

*
  • Except as contained in this notice, the name of the Xilinx shall not be used
  • in advertising or otherwise to promote the sale, use or other dealings in
  • this Software without prior written authorization from Xilinx.

*
                                                                                                                                                            • /


#ifndef __PLATFORM_H_
#define __PLATFORM_H_

#include "platform_config.h"

void init_platform();
void cleanup_platform();

#endif
/*******************************************************************/
/* */
/* This file is automatically generated by linker script generator.*/
/* */
/* Version: */
/* */
/* Copyright (c) 2010-2016 Xilinx, Inc. All rights reserved. */
/* */
/* Description : MicroBlaze Linker Script */
/* */
/*******************************************************************/

_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x4000;
_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x4000;

/* Define Memories in the system */

MEMORY
{
microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr : ORIGIN = 0x50, LENGTH = 0x1FFB0
}

/* Specify the default entry point to the program */

ENTRY(_start)

/* Define the sections, and where they are mapped in memory */

SECTIONS
{
.vectors.reset 0x0 : {
KEEP (*(.vectors.reset))
}

.vectors.sw_exception 0x8 : {
KEEP (*(.vectors.sw_exception))
}

.vectors.interrupt 0x10 : {
KEEP (*(.vectors.interrupt))
}

.vectors.hw_exception 0x20 : {
KEEP (*(.vectors.hw_exception))
}

.text : {
  • (.text)
  • (.text.*)
  • (.gnu.linkonce.t.*)

} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.init : {
KEEP (*(.init))
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.fini : {
KEEP (*(.fini))
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.ctors : {
__CTOR_LIST__ = .;
___CTORS_LIST___ = .;
KEEP (*crtbegin.o(.ctors))
KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__CTOR_END__ = .;
___CTORS_END___ = .;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.dtors : {
__DTOR_LIST__ = .;
___DTORS_LIST___ = .;
KEEP (*crtbegin.o(.dtors))
KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
PROVIDE(__DTOR_END__ = .);
PROVIDE(___DTORS_END___ = .);
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.rodata : {
__rodata_start = .;
  • (.rodata)
  • (.rodata.*)
  • (.gnu.linkonce.r.*)

__rodata_end = .;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.sdata2 : {
. = ALIGN(8);
__sdata2_start = .;
  • (.sdata2)
  • (.sdata2.*)
  • (.gnu.linkonce.s2.*)

. = ALIGN(8);
__sdata2_end = .;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.sbss2 : {
__sbss2_start = .;
  • (.sbss2)
  • (.sbss2.*)
  • (.gnu.linkonce.sb2.*)

__sbss2_end = .;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.data : {
. = ALIGN(4);
__data_start = .;
  • (.data)
  • (.data.*)
  • (.gnu.linkonce.d.*)

__data_end = .;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.got : {
  • (.got)

} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.got1 : {
  • (.got1)

} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.got2 : {
  • (.got2)

} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.eh_frame : {
  • (.eh_frame)

} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.jcr : {
  • (.jcr)

} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.gcc_except_table : {
  • (.gcc_except_table)

} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.sdata : {
. = ALIGN(8);
__sdata_start = .;
  • (.sdata)
  • (.sdata.*)
  • (.gnu.linkonce.s.*)

__sdata_end = .;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.sbss (NOLOAD) : {
. = ALIGN(4);
__sbss_start = .;
  • (.sbss)
  • (.sbss.*)
  • (.gnu.linkonce.sb.*)

. = ALIGN(8);
__sbss_end = .;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.tdata : {
__tdata_start = .;
  • (.tdata)
  • (.tdata.*)
  • (.gnu.linkonce.td.*)

__tdata_end = .;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.tbss : {
__tbss_start = .;
  • (.tbss)
  • (.tbss.*)
  • (.gnu.linkonce.tb.*)

__tbss_end = .;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.bss (NOLOAD) : {
. = ALIGN(4);
__bss_start = .;
  • (.bss)
  • (.bss.*)
  • (.gnu.linkonce.b.*)
  • (COMMON)

. = ALIGN(4);
__bss_end = .;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

_SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 );

_SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );

/* Generate Stack and Heap definitions */

.heap (NOLOAD) : {
. = ALIGN(8);
_heap = .;
_heap_start = .;
. += _HEAP_SIZE;
_heap_end = .;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

.stack (NOLOAD) : {
_stack_end = .;
. += _STACK_SIZE;
. = ALIGN(8);
_stack = .;
__stack = _stack;
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr

_end = .;
}

1 réponse

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
17 mars 2017 à 15:43
bonjour
j'ai énormément de difficultés à lire les milliers de lignes de ce programme, d'autant qu'il n'a pas été saisi sous balise "CODE".
0
naomisouki Messages postés 4 Date d'inscription vendredi 17 mars 2017 Statut Membre Dernière intervention 11 avril 2017
17 mars 2017 à 18:40
c'est un programme que je l'ai trouve en vivado xilinx
j'ai le même problème je ne l'ai pas compris :\
0