Forum Discussion
Altera_Forum
Honored Contributor
22 years agoNIOS II/f core
I create system design based on NIOS II/s core (insrt cahe 512 bytes). In my design programm and data memory located in SRAM (Cyc. dev board). RESET and ISR code in on_chip RAM. My program work ...
Altera_Forum
Honored Contributor
22 years ago//------------------------------------------------------
Quartus design: VHDL full_featured System libtrary: 1C20_full (altera full_featured design), single thread Design compiler: Quartus 4.1 SP1 Fitter settings: Physical synthesis effort: NORMAL Perform physical synthesis for combinational logic = checked Perform register duplication = cheked Perform register retiming = cheked Application: catted stand alone lwIP WEB server (removed all application calls), lwipopts.h by default. Test task: checking PING function //------------------------------------------------------ Test options: Linker: all memory place to ext_ram. Optimization(NONE): lib: -O0 app: -O0 Data cashe: 2KByte - passed Data cashe: 1KByte - failed ( printf ("Application started.\n"); executed. ) 1KByte(Set compiler options for lib & app to: -O3, -faster code) - failed. 1KByte(as prev., rwdata placed to SDRAM) - failed. //------------------------------------------------------ In the main code data cashe memory dirrectly not used!!!int main(void)
{
struct netif netif;
struct ip_addr ipaddr, netmask, gw;
unsigned int now, lasttime;
int i;# if IP_REASSEMBLY
int j;# endif
alt_avalon_lan91c111_if* dev_list_ptr = (alt_avalon_lan91c111_if*)alt_ethernet_device_list.next;
printf("Example web server using Light-weight IP (LWIP)\n");
printf("and simple RAM-based file system.\n\n");
/* Initialize lwip */
lwip_init();
printf ("Setting IP address to: %d.%d.%d.%d\n", IPADDR0, IPADDR1, IPADDR2, IPADDR3);
printf ("Setting netmask to: %d.%d.%d.%d\n", NETMASK0, NETMASK1, NETMASK2, NETMASK3);
printf ("Setting gateway address to: %d.%d.%d.%d\n", GWADDR0, GWADDR1, GWADDR2, GWADDR3);
IP4_ADDR(&ipaddr, IPADDR0, IPADDR1, IPADDR2, IPADDR3);
IP4_ADDR(&netmask, NETMASK0, NETMASK1, NETMASK2, NETMASK3);
IP4_ADDR(&gw, GWADDR0, GWADDR1, GWADDR2, GWADDR3);
netif_add(&netif, &ipaddr, &netmask, &gw,
(void*)dev_list_ptr,
lan91c111if_init,
ip_input);
netif_set_default(&netif);
/*Initialize application(s) */
/*
* main loop to service the Ethernet device and expire TCP timers
*/
printf ("Application started.\n");
lasttime = get_milliseconds();
i=0;# if IP_REASSEMBLY
j=0;# endif
while(1)
{
lan91c111if_service(&netif);
now = get_milliseconds();
if (now - lasttime > TCP_TMR_INTERVAL) {
lasttime = now;
tcp_tmr();
if (++i==50) { /*etharp_tmr();*/ i=0; }
}
# if IP_REASSEMBLY
if (++j==1000) { ip_reass_timer(); j=0; } # endif
}
} Any comments?