Forum: FPGA, VHDL & Co. Programm im SRAM (statt BRAM) ausführen


von Andreas N. (poolspieler)


Lesenswert?

Hallo nochmal,
ich möchte auf meinem Sparten3E Starter Kit (XC3S500E-Baustein) das 
Hallo Weltprogramm:
1
#include "stdio.h"
2
3
int main (void) {
4
5
  printf("\n\rHello World\n\r");
6
7
  return 0;
8
}

mit einem ELF-File der Größe:
1
At Local date and time: Wed Jan 21 15:51:58 2009
2
 xbash -q -c "cd /cygdrive/c/Workdir/Xilinx/Tests/Xil3S500E_RevD_Serial_Flash_v92/; mb-size C:/Workdir/Xilinx/Tests/Xil3S500E_RevD_Serial_Flash_v92/hello_world/executable.elf; exit;" started...
3
   text     data      bss      dec      hex  filename
4
  62544     1352     1136    65032     fe08  C:/Workdir/Xilinx/Tests/Xil3S500E_RevD_Serial_Flash_v92/hello_world/executable.elf
5
Done!

im SRAM ausführen. (Das Programm ist mit hex fe08 natürlich zu groß fürs 
BRAM...)
Ich habe mir das Beispiel von Xilinx 
http://www.xilinx.com/products/boards/s3estarter/files/s3esk_serial_flash.pdf 
heruntergeladen - aber ich schaffe es einfach nicht, dass das ELF-File 
im SRAM ausgeführt wird.

Update Bitstream gibt folgendes aus:
1
Performing IP level DRCs on properties...
2
3
Running DRC Tcl procedures for OPTION IPLEVEL_DRC_PROC...
4
Address Map for Processor microblaze_0
5
  (0000000000-0x00003fff) dlmb_cntlr  dlmb
6
  (0000000000-0x00003fff) ilmb_cntlr  ilmb
7
  (0x83400000-0x8340ffff) SPI_FLASH  mb_plb
8
  (0x84000000-0x8400ffff) RS232_DCE  mb_plb
9
  (0x84400000-0x8440ffff) debug_module  mb_plb
10
  (0x8c000000-0x8fffffff) DDR_SDRAM  mb_plb
11
  (0x8c000000-0x8fffffff) DDR_SDRAM  dxcl
12
  (0x8c000000-0x8fffffff) DDR_SDRAM  ixcl
13
14
Initializing Memory...
15
Checking ELFs associated with MICROBLAZE instance microblaze_0 for overlap...
16
17
18
Analyzing file hello_world/executable.elf...
19
WARNING:MDT - Elf file hello_world/executable.elf does not reside completely
20
   within BRAM memory of processor microblaze_0.
21
WARNING:MDT - The sections of  ELF residing outside BRAMs must be initialized
22
   separately using a debugger, a bootloader, or an ACE fileRunning Data2Mem with the following command:
23
data2mem -bm "implementation/system_bd" -bt "implementation/system.bit"  -bd
24
"hello_world/executable.elf" tag microblaze_0  -o b implementation/download.bit 
25
26
Done!

Was heißt das unterm Strich? Was muss ich tun, damit ich es zum laufen 
bekomme?

Wäre für jede Hilfe dankbar!

Gruß,
Andreas

von Duke Scarring (Gast)


Lesenswert?

Steht doch da:
1
WARNING:MDT - The sections of  ELF residing outside BRAMs must be initialized
2
   separately using a debugger, a bootloader, or an ACE fileRunning Data2Mem with the following command:
3
data2mem -bm "implementation/system_bd" -bt "implementation/system.bit"  -bd
4
"hello_world/executable.elf" tag microblaze_0  -o b implementation/download.bit

Du musst die Datensektionen, die nicht ins BRAM passen irgendwie 
(Bootloader, Debugger, etc.) in die entsprechenden Speicherbereiche 
bekommen.

Duke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.