Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
21 years ago

NiosI v3.2 - TFTP feature for "standard32"

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)
No RepliesBe the first to reply