eCos
for NIOS project
eCos4Nios
The goal of this project is that wants to port eCos to NIOS CPU. And
execute some application on my FPGA board.
News
2004/02/09 eCos4Nios v0.4 released.
Feature : (1) HAL support GDB Stub on "MINI board"
(2) NIOS ICache & DCache always enable.
2004/01/16 eCos4Nios v0.3 released.
Feature : (1) Redboot can work
(2) The tests of kernel configuration almost passed.
FPGA board
The FPGA platform I used is Altera NIOS Development Kits(Cyclone
Edition)
- Cyclone EP1C20FC400C7 device
- MAX® EPM7128AE CPLD
configuration control logic
- SRAM (1 Mbyte in two banks of 512 Kbytes, 16-bit wide)
- SDR SDRAM (16 Mbytes, 32-bit wide)
- Flash (8 Mbytes)
- EPCS4 Serial Configuration Device (4 Mbits)
- CompactFlash connector header for Type I CompactFlash cards (40
available user I/O pins)
- 10/100 Ethernet physical layer/media access control (PHY/MAC)
- Ethernet connector (RJ-45)
- Two serial connectors (RS-232 DB9 port)
- Two 5-V-tolerant expansion/prototype headers (2 x 41 available
user I/O pins)
- Two Joint Test Action Group (JTAG) connectors
- Mictor connector for debugging
- Four user-defined push-button switches
- Eight user-defined LEDs
- Dual 7-segment LED display
- Power-on reset circuitry
MINI
board
MINI board is not a real FPGA board. It's a NIOS
configuration that own very few hardwaer feature.
The configuration only include 1 NIOS32 CPU(No Caches), 1 UART, 1
Timer, 2KB internal ROM(include GREMS), 1MB SRAM.
And it will run eCos very well.
Here is my MINI board's configuration (from my cpu_sdk/inc/excalibur.h):
//
===========================================================
// Parameters for Each
Peripheral, Excerpted From The PTF File
// ------------------
// Parameters for
altera_avalon_onchip_memory named onchip_memory_0
//
Writeable
= 0
//
Size_Value
= 2
//
Size_Multiple
= 1024
//
Contents
= blank
//
Shrink_to_fit_contents = 0
//
use_altsyncram
= 1
//
use_ram_block_type = M4K
// altsyncram_ram_block_type =
AUTO
//
dual_port
= 0
//
CONTENTS
= srec
// ------------------
// Parameters for
altera_nios_multiply named MUL_cpu
// ci_cycles = 3
// ------------------
// Parameters for altera_nios
named cpu
//
CPU_Architecture = nios_32
//
mstep
= 0
//
multiply
= 1
//
rom_decoder = 0
//
wvalid_wr
= 0
//
num_regs
= 256
//
do_generate = 1
//
include_debug = 0
//
include_trace = 0
//
include_oci = 0
//
oci_offchip_trace = 0
//
oci_onchip_trace = 0
//
oci_num_xbrk = 0
//
oci_num_dbrk = 0
//
oci_dbrk_trace = 0
//
oci_dbrk_pairs = 0
// oci_debugreq_signals = 0
//
reset_slave =
onchip_memory_0/s1
//
reset_offset =
0x00000000
//
vecbase_slave = eram/s1
//
vecbase_offset = 0x000FFF00
// support_interrupts
= 1
// implement_forward_b1 = 0
//
support_rlc_rrc = 1
//
advanced
= 1
//
cache_has_icache = 0
// cache_icache_size_k = 0
//
cache_has_dcache = 0
// cache_dcache_size_k = 0
//
CONSTANTS
=
//
mainmem_slave = eram/s1
//
datamem_slave = eram/s1
//
maincomm_slave = uart_dgb/s1
//
debugcomm_slave = uart_dgb/s1
//
germs_monitor_id = eCos4Nios
// ------------------
// Parameters for
altera_avalon_uart named uart_dgb
//
baud
= 115200
//
data_bits = 8
//
fixed_baud = 0
//
parity = N
//
stop_bits = 1
//
use_cts_rts = 0
// use_eop_register = 0
//
sim_true_baud = 0
// sim_char_stream =
// ------------------
// Parameters for
altera_avalon_uart named uart1
//
baud
= 115200
//
data_bits = 8
//
fixed_baud = 0
//
parity = N
//
stop_bits = 1
//
use_cts_rts = 1
// use_eop_register = 0
//
sim_true_baud = 0
// sim_char_stream =
// ------------------
// Parameters for
altera_avalon_timer named timer_tick
//
always_run
= 0
//
fixed_period = 0
//
snapshot
= 1
//
period
= 1
//
period_units = ms
//
reset_output = 0
// timeout_pulse_output = 0
//
mult
= 0.001
// ------------------
// Parameters for
altera_avalon_timer named timer1
//
always_run
= 0
//
fixed_period = 0
//
snapshot
= 1
//
period
= 1
//
period_units = ms
//
reset_output = 0
// timeout_pulse_output = 0
//
mult
= 0.001
// ------------------
// Parameters for
altera_nios_dev_kit_stratix_edition_sram named eram
// sram_memory_size = 1024
// sram_memory_units = 1024
// sram_data_width =
32
//
CONTENTS = srec
Download
eCos4Nios-0.4.epk : v0.4
eCos4Nios-0.3.epk : v0.3
Docs
: Sorry, until now, I don't have any documents about it.
Links
Altera
: FPGA Provider
CDK4NIOS :
NIOS Cross Development Kits
eCos
: eCos Home
Another eCos port to NIOS
FPGA-Fancier : My another
web site