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
/*
*
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 : {
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr
.got1 : {
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr
.got2 : {
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr
.eh_frame : {
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr
.jcr : {
} > microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr
.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 = .;
}
Afficher la suite
17 mars 2017 à 18:40
j'ai le même problème je ne l'ai pas compris :\