Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12599 Discussions

NiosI v3.2 - TFTP feature for "standard32"

Altera_Forum
Honored Contributor II
1,069 Views

Hi forum members, 

 

I have a costumer that interested 

in the TFTP feature for its cyclone/niosI, version 3.2 

based application. 

 

Hence,right now I am evaluating the tftp  

server application that comes with 

the standard cyclone altera evaluation board. 

 

My current problem is to implement the tftp 

server application on "standard32" hardware 

configuration, since this is the basic reference 

to my costumer's applications. 

 

The reference application that comes with 

the Altera evaluation board is working 

fine on the "safe" hardware configuration, 

but I am failing to port it to "srandard32" 

hardware configuration. 

 

Investigating the case, I have decided to 

see which changes on the "standard32" configuration 

will make the fpga run the tftp server correctly, 

and I came to conclusion that making the sdram 

the program/data memory (instead the sram) 

is solving the problem. 

 

Do you have any clue what I need 

to change in the "web_server" source/header 

files in order to have a working 

tftp functionality on the "standard32" configuration? 

 

You can see bellow the detailed procedure I used in order 

 

Thank you anyway for you time and attention 

 

 

Added bellow is the detailed procedure I used to verify the problem: 

The board is Altera Nios kit, cyclone edition.  

 

1. Creating program files for burning: 

========================= 

- Copied the cyclone standard32 directory from Nios3.2 installation directory 

- Re-generated (SOPC builder) and re-compiled (Quartus) 

- Opened bash shell 

- Changed directory to cpu_sdk/src directory 

- Compiled hello_nios.c using "nb hello_noise.c" 

- Using quartus, Configured the cyclone on the evaluation board with standard32.sof 

- opened bash shell and run "nr hello_nios.srec" 

- Verify the functionality O.K 

- Converted the .srec to .flash. Command: "SREC2FLASH hello_nios.srec" 

- hello_nios.flash was created 

- Using text editor (Emacs) "Cleaned" the hello_nios.flash file from "^M" (Enter) characters by deleting them from all file 

 

2. Burning the hello_nios program using tftp server (safe configuration): 

================================================ 

- Copied the cyclone safe directory from Nios3.2 installation directory 

- Re-generated (SOPC builder) and re-compiled (Quartus) 

- Using quartus, configured the cyclone on the evaluation board with safe.sof 

- Opened bash shell 

- Changed directory to src\web_server directory 

- Deleted all files under "obj" directory 

- Compiled the application using "make all" 

- Run the application using "nr web_server.srec" 

- Pressed the SW3 to make the web_server gain the static IP (10.0.0.51) 

- Configured the host(PC) LAN card to communicate with this IP 

- Open a command shell (under win2000) 

- Changed directory to the src directory of the standard32 project 

- Verified Ethernet connection using "ping 10.0.0.51" 

- Burned the hello_nios.flash to the flash using the command "tftp 10.0.0.51 PUT hello_nios.flash" 

- Using quartus, configured the cyclone on the evaluation board with standard32.sof 

- The board signaled immediately after configuration according to hello_nios functionality 

 

3. Burning the hello_world program using tftp server (safe configuration): 

================================================ 

- changed directory to cpu_sdk/src directory under standard32 directory 

- Opened bash shell 

- Compiled hello_world.c using "nb hello_world.c" 

- Using quartus, configured the cyclone on the evaluation board with standard32.sof 

- Opened bash shell and run "nr hello_world.srec" 

- Verify the functionality O.K 

- Converted the .srec to .flash. Command: "SREC2FLASH hello_world.srec" 

- Using text editor(Emacs) opened hello_world.flash and deleted special character ^M (enter) with space for all file 

- Configured the cyclone on the evaluation board with safe.sof 

- Changed directory to src\web_server directory under the "safe" project 

- opened bash shell and run "nr web_server.srec" 

- Pressed the SW3 to make the web_server gain the static IP (10.0.0.51) 

- Opened command shell (under win2000) 

- change directory to the src directory of the standard32 project 

- Verified Ethernet connection using "ping 10.0.0.51" 

- Burned the hello_world.flash to the flash using the command "tftp 10.0.0.51 PUT hello_world.flash" 

- Configured the cyclone on the evaluation board with standard32.sof 

- The board signaled immediately after configuration according to hello_world functionality 

 

4. Trying to burn the hello_nios program using tftp server (standard32 configuration): 

================================================ 

- Copied the web_server directory under src directory of the cyclone safe project to under src directory of standard32 project 

- opened bash shell 

- changed directory to the web_server directory under the standard32 project 

- Deleted all files under "obj" directory 

- Compiled the application using "make all" 

- Opened bash shell and run "nr web_server.srec" 

- On the bash shell appeared prompts from the germ monitor, but in unrecognizable characters 

- Pressed the SW3 to make the web_server gain the static IP (10.0.0.51) 

- Opened command shell (under win2000) 

- Change directory to the src directory of the standard32 project 

- Verified Ethernet connection using "ping 10.0.0.51" 

- Burned the hello_nios.flash to the flash using the command "tftp 10.0.0.51 PUT hello_nios.flash" 

- RE-Configured the cyclone on the evaluation board with standard32.sof 

- The board signaled immediately after configuration according to hello_world functionality, although the hello_nios functionality was expected. 

- My conclusion: the tftp server failed to burn the flash under standard32 configuration.  

 

 

5. Changing standard32 to work with sdram as program/data memory 

================================================================ 

- Copy standard32 project directory to std32_changed_2safe directory 

- Using SOPC builder: 

* changed program memory/data memory to "SDRAM" 

- Press "generate" for the SOPC builder 

- Update the .bdf 

- Press "compile" on the quartus 

- changed to src under std32_change2_safe 

- opened bash_shell 

- nb hello_nios.c 

- nr hello_nios.srec 

- Verified the functionality O.K 

- SREC2FLASH hello_nios.srec 

- Converted the .srec to .flash. Command: "SREC2FLASH hello_nios.srec" 

- hello_nios.flash was created 

- Using text editor (Emacs) "Cleaned" the hello_nios.flash file from "^M" (Enter) characters by deleting them from all file 

- In similar manner as described above, created "hello_world.flash" 

- Repeated step "4. Trying to burn the hello_nios program using tftp server (standard32 configuration):" with one exception: 

* instead the standard32 configuration, used the "std32_changed_2safe" configuration.  

- the board signaled according the the burnt functionality (hello_nios) 

- Now, repeated step "4. Trying to burn the hello_nios program using tftp server (standard32 configuration):" with the same exception + burning the hello_world.flash.  

- the board signaled according the the burnt functionality (hello_world)
0 Kudos
0 Replies
Reply