Hallo, Ich versuche ein paar einfache Programme auf einem Leon3 zum laufen zu bringen. Ich habe nun mit der grlib den Leon und Peripherie konfiguriert und das ganze in ein Digilent Spartan-3 Board geladen. Funktioniert soweit auch, aber der Externe Speicher (SRAM) auf dem Board wird nicht erkannt/eingebunden. grmon gibt folgendes aus: [code] [sys] SESSION: Thu Jun 12 15:08:21 2014 [sys] GRMON version: v2.0.48 eval version [sys] OS: Windows [sys] Command line: grmon.exe -digilent -u -log term.out [sys] [sys] GRMON2 LEON debug monitor v2.0.48 eval version [sys] [sys] Copyright (C) 2013 Aeroflex Gaisler - All rights reserved. [sys] For latest updates, go to http://www.gaisler.com/ [sys] Comments or bug-reports to support@gaisler.com [sys] [sys] This eval version will expire on 27/08/2014 [sys] [sys] JTAG chain (2): xcf04s xc3s1000 [usr1] GRLIB build version: 4113 [usr1] Detected frequency: 40 MHz [usr1] [usr1] Component Vendor [usr1] LEON3 SPARC V8 Processor Aeroflex Gaisler [usr1] JTAG Debug Link Aeroflex Gaisler [usr1] LEON2 Memory Controller European Space Agency [usr1] AHB/APB Bridge Aeroflex Gaisler [usr1] LEON3 Debug Support Unit Aeroflex Gaisler [usr1] Generic AHB ROM Aeroflex Gaisler [usr1] Single-port AHB SRAM module Aeroflex Gaisler [usr1] Generic UART Aeroflex Gaisler [usr1] Multi-processor Interrupt Ctrl. Aeroflex Gaisler [usr1] Modular Timer Unit Aeroflex Gaisler [usr1] PS2 interface Aeroflex Gaisler [usr1] VGA controller Aeroflex Gaisler [usr1] General Purpose I/O port Aeroflex Gaisler [usr1] [usr1] Use command 'info sys' to print a detailed report of attached cores [usr1] [usr1] grmon2> info sys [usr1] cpu0 Aeroflex Gaisler LEON3 SPARC V8 Processor [usr1] AHB Master 0 [usr1] ahbjtag0 Aeroflex Gaisler JTAG Debug Link [usr1] AHB Master 1 [usr1] mctrl0 European Space Agency LEON2 Memory Controller [usr1] AHB: 40000000 - 80000000 [usr1] APB: 80000000 - 80000100 [usr1] apbmst0 Aeroflex Gaisler AHB/APB Bridge [usr1] AHB: 80000000 - 80100000 [usr1] dsu0 Aeroflex Gaisler LEON3 Debug Support Unit [usr1] AHB: 90000000 - A0000000 [usr1] AHB trace: 256 lines, 32-bit bus [usr1] CPU0: win 8, hwbp 2, itrace 256, V8 mul/div, lddel 1 [usr1] stack pointer 0xa0000ff0 [usr1] icache 2 * 2 kB, 32 B/line lru [usr1] dcache 2 * 2 kB, 32 B/line lru [usr1] ilram 1 kB, 8e000000 - 8e000400 [usr1] dlram 1 kB, 8f000000 - 8f000400 [usr1] adev5 Aeroflex Gaisler Generic AHB ROM [usr1] AHB: 00000000 - 00100000 [usr1] ahbram0 Aeroflex Gaisler Single-port AHB SRAM module [usr1] AHB: A0000000 - A0100000 [usr1] 32-bit static ram: 4 kB @ 0xa0000000 [usr1] uart0 Aeroflex Gaisler Generic UART [usr1] APB: 80000100 - 80000200 [usr1] IRQ: 2 [usr1] Baudrate 38461 [usr1] irqmp0 Aeroflex Gaisler Multi-processor Interrupt Ctrl. [usr1] APB: 80000200 - 80000300 [usr1] gptimer0 Aeroflex Gaisler Modular Timer Unit [usr1] APB: 80000300 - 80000400 [usr1] IRQ: 8 [usr1] 8-bit scalar, 2 * 32-bit timers, divisor 40 [usr1] ps2ifc0 Aeroflex Gaisler PS2 interface [usr1] APB: 80000500 - 80000600 [usr1] IRQ: 5 [usr1] adev11 Aeroflex Gaisler VGA controller [usr1] APB: 80000600 - 80000700 [usr1] gpio0 Aeroflex Gaisler General Purpose I/O port [usr1] APB: 80000800 - 80000900 [usr1] [usr1] grmon2> exit [usr1] [\code] Wenn ich in den FPGA eine andere Konfiguration eines ehemaligen Kollegen reinlade liefert grmon folgendes: [code] [sys] SESSION: Thu Jun 12 15:13:03 2014 [sys] GRMON version: v2.0.48 eval version [sys] OS: Windows [sys] Command line: grmon.exe -digilent -u -log term_vol.out [sys] [sys] GRMON2 LEON debug monitor v2.0.48 eval version [sys] [sys] Copyright (C) 2013 Aeroflex Gaisler - All rights reserved. [sys] For latest updates, go to http://www.gaisler.com/ [sys] Comments or bug-reports to support@gaisler.com [sys] [sys] This eval version will expire on 27/08/2014 [sys] [sys] JTAG chain (2): xcf04s xc3s1000 [usr1] GRLIB build version: 4113 [usr1] Detected frequency: 40 MHz [usr1] [usr1] Component Vendor [usr1] LEON3 SPARC V8 Processor Aeroflex Gaisler [usr1] JTAG Debug Link Aeroflex Gaisler [usr1] LEON2 Memory Controller European Space Agency [usr1] AHB/APB Bridge Aeroflex Gaisler [usr1] LEON3 Debug Support Unit Aeroflex Gaisler [usr1] Generic AHB ROM Aeroflex Gaisler [usr1] Single-port AHB SRAM module Aeroflex Gaisler [usr1] Generic UART Aeroflex Gaisler [usr1] Multi-processor Interrupt Ctrl. Aeroflex Gaisler [usr1] Modular Timer Unit Aeroflex Gaisler [usr1] PS2 interface Aeroflex Gaisler [usr1] VGA controller Aeroflex Gaisler [usr1] General Purpose I/O port Aeroflex Gaisler [usr1] [usr1] Use command 'info sys' to print a detailed report of attached cores [usr1] [usr1] grmon2> info sys [usr1] cpu0 Aeroflex Gaisler LEON3 SPARC V8 Processor [usr1] AHB Master 0 [usr1] ahbjtag0 Aeroflex Gaisler JTAG Debug Link [usr1] AHB Master 1 [usr1] mctrl0 European Space Agency LEON2 Memory Controller [usr1] AHB: 40000000 - 80000000 [usr1] APB: 80000000 - 80000100 [usr1] 32-bit static ram: 1 * 1024 kbyte @ 0x40000000 [usr1] apbmst0 Aeroflex Gaisler AHB/APB Bridge [usr1] AHB: 80000000 - 80100000 [usr1] dsu0 Aeroflex Gaisler LEON3 Debug Support Unit [usr1] AHB: 90000000 - A0000000 [usr1] AHB trace: 256 lines, 32-bit bus [usr1] CPU0: win 8, hwbp 2, itrace 256, V8 mul/div, lddel 1 [usr1] stack pointer 0x400ffff0 [usr1] icache 2 * 2 kB, 32 B/line lru [usr1] dcache 2 * 2 kB, 32 B/line lru [usr1] ilram 1 kB, 8e000000 - 8e000400 [usr1] dlram 1 kB, 8f000000 - 8f000400 [usr1] adev5 Aeroflex Gaisler Generic AHB ROM [usr1] AHB: 00000000 - 00100000 [usr1] ahbram0 Aeroflex Gaisler Single-port AHB SRAM module [usr1] AHB: A0000000 - A0100000 [usr1] 32-bit static ram: 4 kB @ 0xa0000000 [usr1] uart0 Aeroflex Gaisler Generic UART [usr1] APB: 80000100 - 80000200 [usr1] IRQ: 2 [usr1] Baudrate 38461 [usr1] irqmp0 Aeroflex Gaisler Multi-processor Interrupt Ctrl. [usr1] APB: 80000200 - 80000300 [usr1] gptimer0 Aeroflex Gaisler Modular Timer Unit [usr1] APB: 80000300 - 80000400 [usr1] IRQ: 8 [usr1] 8-bit scalar, 2 * 32-bit timers, divisor 40 [usr1] ps2ifc0 Aeroflex Gaisler PS2 interface [usr1] APB: 80000500 - 80000600 [usr1] IRQ: 5 [usr1] adev11 Aeroflex Gaisler VGA controller [usr1] APB: 80000600 - 80000700 [usr1] gpio0 Aeroflex Gaisler General Purpose I/O port [usr1] APB: 80000800 - 80000900 [usr1] [usr1] grmon2> exit [usr1] [\code] hier taucht unter dem punkt mctrl0 die zeile [code] 32-bit static ram: 1 * 1024 kbyte @ 0x40000000 [\code] auf. Hier ist der Ram ordentlich eingebunden, so dass ich auch Programme laden und ausführen kann. An welcher Stelle vor der Synthese für den FPGA muss ich den SRAM einbinden?
Christoph Krueger schrieb: > Ich habe nun mit der grlib den Leon und Peripherie konfiguriert und das > ganze in ein Digilent Spartan-3 Board geladen. Was für ein FPGA ist da drauf? Für den Spartan3E-500 war der Leon m.E. zu groß. > [usr1] irqmp0 Aeroflex Gaisler Multi-processor Interrupt Ctrl. > [usr1] APB: 80000200 - 80000300 Die irqmp braucht man m.E. nur, wenn mehrere Prozessoren im Spiel sind. > Funktioniert soweit auch, aber der Externe Speicher (SRAM) auf dem Board > wird nicht erkannt/eingebunden. Das ganze Leon-System wird über config/xcofing konfiguriert. Dort mußt Du auch den externen Speicher aktivieren (wenn das für Deine Hardware schon vorgesehen wurde). Sonst kann man sich in anderen Designs anschauen, wie externer SRAM eingebunden werden kann. Duke
> Was für ein FPGA ist da drauf? Für den Spartan3E-500 war der Leon m.E. > zu groß. Is nen xc3s1000 druff. Und der ist knackig voll (99 %). Hab hier aber auch noch ein Nexys-4 Board. Hab mit dem Spartan erstmal angefangen, weil da, wie eingangs erwähnt, noch ne alte, funktionierende Konfiguration vorhanden ist. > Die irqmp braucht man m.E. nur, wenn mehrere Prozessoren im Spiel sind. Kann ich ja dann mal versuchen rauszuschmeißen. > Das ganze Leon-System wird über config/xcofing konfiguriert. Dort mußt > Du auch den externen Speicher aktivieren (wenn das für Deine Hardware > schon vorgesehen wurde). Wo denn? Ich starte immer mit "make xgrlib". Da kann ich jede Menge konfigurieren (Prozessor, uart, timer, gpio, vga etc), aber wenn ich zum Memory komme kann ich nur den Memory-controller enablen, und dem noch 8/16 bit support geben, das wars aber auch schon. -Christoph
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.