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++
12585 Discussions

eCos lib tree building mounting problems

Altera_Forum
Honored Contributor II
1,684 Views

Hallo everyone! 

I have a little, but strange problem:  

I installed Altera Quartus II and Nios II v5.1 onto my computer (Windows XP Professional SP3). I installed an ecos to it. 

I start the command line. (Start Menu -> Programs -> Altera -> NIOS II -> nios ii sdk shell

 

type the following: mount -tf c:\\ /ecos-c 

then the following: ecosconfig --prefix=/ecos-c/source/embedded/nios/project/software/project_ecoslib/debug/project_install --config=/ecos-c/source/embedded/nios/project/software/project_ecoslib/project_release.ecc tree 

 

i receive the following error messages: 

c:\altera\kits\nios2_51 

c:\ecos-c\source\embedded\nios\project\software\project_ecoslib\project_release.ecc: error 

couldn't read file "c:\ecos-c\source\embedded\nios\project\software\project_ecoslib\project_release.ecc": no such file or directory 

invalid savefile "c:\ecos-c\source\embedded\nios\project\software\project_ecoslib\project_release.ecc". 

1 error occurred while reading in the savefile data. 

/ecos-c/source/embedded/nios/project/software/project_ecoslib 

 

The question is: WHY adds it automatically an "ecos-c" folder to the path. This .ecc file is at c:\Source\Embedded\Nios\Project\software\Project_EcosLib\Project_Release.ecc  

Where and which option can be corrupt/bad? Why does this ecosconfig program add this "ecos-c" as addition to the path? 

Please, help me to find out this thing. I tried to look up at many different places, haven't found anything  

 

in addition to this strange thing: if i change the mounting point name from ecos-c to e.g. drive-c then the error will be the following: 

c:\altera\kits\nios2_51 

c:\drive-c\source\embedded\nios\project\software\project_ecoslib\project_release.ecc: error 

couldn't read file "c:\drive-c\source\embedded\nios\project\software\project_ecoslib\project_release.ecc": no such file or directory 

invalid savefile "c:\drive-c\source\embedded\nios\project\software\project_ecoslib\project_release.ecc". 

1 error occurred while reading in the savefile data. 

/drive-c/source/embedded/nios/project/software/project_ecoslib 

 

It is clearly seen, that there is a problem with the paths/mounts. Please, help me about this mount-issue. It can be clearly seen that the files are at place (where they should be located), only some mounting settings must be checked/set/removed/etc.  

Could You please give me any ideas(s)?
0 Kudos
14 Replies
Altera_Forum
Honored Contributor II
618 Views

seems to be more a cygwin issue than Altera/Quartus. 

What version of cygwin is installed with Nios II 5.1? Is there a reason why you are using such an old version of Quartus/Nios? 

If you just type mount after your first command, does the mount point appear as expected?
0 Kudos
Altera_Forum
Honored Contributor II
618 Views

Hi, 

I am using the old version , because the newer NIOS II libraries are no more compatible with my old firmware software (developed about 6 years ago). 

 

If I just type mount, I get the following list: 

c:\altera\quartus51\bin\cygwin\bin on /usr/bin type system (textmode) 

c:\altera\quartus51\bin\cygwin\lib on /usr/lib type system (textmode) 

c:\altera\quartus51\bin\cygwin on / type system (textmode) 

c: on /ecos-c type system (textmode) 

f: on /cygdrive/f type user (textmode,noumount) 

k: on /cygdrive/k type user (textmode,noumount) 

p: on /cygdrive/p type user (textmode,noumount) 

z: on /cygdrive/z type user (textmode,noumount) 

 

From that, it seems that the mounting points are set correctly.
0 Kudos
Altera_Forum
Honored Contributor II
618 Views

yes it seems so... can't you use /cygdrive/c instead? 

You could ask on a cygwin forum, there could be a bug in the version that was shipped with Quartus/Nios II 5.1
0 Kudos
Altera_Forum
Honored Contributor II
618 Views

At first I tried the /cygwin/c/ variant. In that case I get the following error(s): 

c:/altera/kits/nios2_51/components/ecos/ecos-current/packages/hal/nios2/arch/current/cdl/hal_nios2.cdl: error 

the file c:\dokume~1\andras~1\lokale~1\temp/nios2_auto.cdl does not exist. 

this file is normally created by either the 

nios2configtool or nios2ecosconfig wrapper scripts: 

> nios2configtool --ptf=<ptf file> --cpu=<cpu name> 

or: 

> nios2ecosconfig --ptf=<ptf file> --cpu=<cpu name> 

alteratively, you can generate it directly before 

starting the configuration tool: 

> gtf-generate --gtf=$ecos_repository/hal/nios2/arch/current/gtf/nios2_auto.cdl.gtf --ptf=<ptf file> --cpu=<cpu name> 

u cygbld_iso_ctype_header, new inferred value <cyg/libc/i18n/ctype.inl> 

u cygbld_iso_errno_codes_header, new inferred value <cyg/error/codes.h> 

u cygbld_iso_errno_header, new inferred value <cyg/error/errno.h> 

u cygbld_iso_stdio_filetypes_header, new inferred value <cyg/libc/stdio/stdio.h> 

u cygbld_iso_strerror_header, new inferred value <cyg/error/strerror.h> 

u cygbld_iso_strtok_r_header, new inferred value <cyg/libc/string/string.h> 

u cygbld_iso_string_locale_funcs_header, new inferred value <cyg/libc/string/string.h> 

u cygbld_iso_stdlib_strconv_header, new inferred value <cyg/libc/stdlib/atox.inl> 

u cygbld_iso_stdio_streams_header, new inferred value <cyg/libc/stdio/stdio.h> 

u cygbld_iso_stdio_fileops_header, new inferred value <cyg/libc/stdio/stdio.h> 

u cygbld_iso_stdio_fileaccess_header, new inferred value <cyg/libc/stdio/stdio.h> 

u cygbld_iso_stdio_formatted_io_header, new inferred value <cyg/libc/stdio/stdio.h> 

u cygbld_iso_stdio_char_io_header, new inferred value <cyg/libc/stdio/stdio.h> 

u cygbld_iso_stdio_direct_io_header, new inferred value <cyg/libc/stdio/stdio.h> 

u cygbld_iso_stdio_filepos_header, new inferred value <cyg/libc/stdio/stdio.h> 

u cygbld_iso_stdio_error_header, new inferred value <cyg/libc/stdio/stdio.h> 

u cygbld_iso_stdlib_abs_header, new inferred value <cyg/libc/stdlib/abs.inl> 

u cygbld_iso_stdlib_div_header, new inferred value <cyg/libc/stdlib/div.inl> 

u cygbld_iso_string_bsd_funcs_header, new inferred value <cyg/libc/string/bsdstring.h> 

u cygbld_iso_string_memfuncs_header, new inferred value <cyg/libc/string/string.h> 

u cygbld_iso_string_strfuncs_header, new inferred value <cyg/libc/string/string.h> 

u cygbld_iso_setjmp_header, new inferred value <cyg/libc/setjmp/setjmp.h> 

u cygbld_iso_c_time_types_header, new inferred value <cyg/libc/time/time.h> 

u cygbld_iso_c_clock_funcs_header, new inferred value <cyg/libc/time/time.h> 

u cygbld_iso_dirent_header, new inferred value <cyg/fileio/dirent.h> 

u cygbld_iso_bsdtypes_header, new inferred value <sys/bsdtypes.h> 

u cygbld_iso_open_max_header, new inferred value <cyg/fileio/limits.h> 

u cygbld_iso_name_max_header, new inferred value <cyg/fileio/limits.h> 

u cygbld_iso_netdb_proto_header, new inferred value <net/netdb.h> 

u cygbld_iso_netdb_serv_header, new inferred value <net/netdb.h> 

unable to open file c:\source\embedded\nios\project\software\project_ecoslib\project_debug.ecc 

package cygpkg_hal_nios2, 1 error occurred while reading in the cdl data.couldn't open "c:\source\embedded\nios\project\software\project_ecosib\project_debug.ecc": permission denied
0 Kudos
Altera_Forum
Honored Contributor II
618 Views

That permission denied error is rather strange... 

And does the nios2_auto.cdl file actually exist or not? If the scripts can't find it, it could be a good idea to define the TMP dir to somewhere else, such as /tmp
0 Kudos
Altera_Forum
Honored Contributor II
618 Views

Thank You for this answer. I am a bit closer to the solution...  

 

But, it also does not working yet. 

I type the following: ecosconfig --prefix=/cygdrive/c/source/embedded/nios/project/software/project_ecoslib/release/project_install --config=/cygdrive/c/source/embedded/nios/project/software/project_ecoslib/project_release.ecc tree 

 

And as result get the following error: 

makefile:151: /ecos-c/altera/kits/nios2_51/components/ecos/ecos-current/packages/pkgconf/rules.mak: no such file or directory 

make[3]: *** no rule to make target `/ecos-c/altera/kits/nios2_51/components/ecos/ecos-current/packages/pkgconf/rules.mak'. stop. 

make[2]: *** [headers] error 2 

make[1]: *** [/cygdrive/c/source/embedded/nios/project/software/project_ecoslib/release/project_install/lib/libtarget.a] error 2 

 

I've found out that the '/ecos-c' entries were generated to the build tree makefiles. If I open any of makefiles in any of the project_ecoslib/release subfolder's (with Start -> Find 'makefile' in that folder), then the first line (generated) are the following: 

# ecos makefile 

# this is a generated file - do not edit 

export repository := /ecos-c/altera/kits/nios2_51/components/ecos/ecos-current/packages 

export prefix := /ecos-c/source/embedded/nios/project/software/project_ecoslib/release/project_install 

 

Why does the ecosconfig.exe generating a false content into those makefiles. As I wrote at the begining of this post, I changed the --prefix parameter of it. (as an environment variable I have the ecos_repository = c:\altera\kits\nios2_51\components\ecos\ecos-current\packages

 

It seems that this /ecos-c is hardcoded to this ecosconfig.exe program as mounting point of my drive c: 

Where can I locate this hardcoding and where could I be able to change it? I can now only give different input parameters to ecosconfig.exe, but -by any means necessary - the output makefiles in ecos tree structure has ALLWAYS the lines above. 

What should I do now? Where could I find those hardcode locations? I have not got the slightest idea about it.  

 

Could You help me in addition please? Thanks in advance.
0 Kudos
Altera_Forum
Honored Contributor II
618 Views

just an idea... shouldn't the ECOS_REPOSITORY use a unix-style path (either /cycdrive/c/... or /ecos-c/...) instead of the windows-style path (C:\...) ?

0 Kudos
Altera_Forum
Honored Contributor II
618 Views

I tried it. The output is as follow in that case (with ECOS_REPOSITORY environment variable as unix-style given): 

c:\altera\kits\nios2_51 

14.06.2011 07:07:55 - (schwerwiegend) generate: java.lang.illegalstateexception: java.io.filenotfoundexception: c:\altera\quartus51\bin\cygwin\cycdrive\c\altera\kits\nios2_51\components\ecos\ecos-current\packages\hal\nios2\arch\current\gtf\nios2_auto.cdl.gtf (das system kann den angegebenen pfad nicht finden) 

parameters for ecosconfig --prefix=/cygdrive/c/source/embedded/nios/project/software/project_ecoslib/debug/project_install --config=/cygdrive/c/source/embedded/nios/project/software/project_ecoslib/project_debug.ecc tree 

ecos.db: error 

couldn't read file "c:/cycdrive/c/altera/kits/nios2_51/components/ecos/ecos-current/packages/ecos.db": no such file or directory 

invalid package database. 

/cygdrive/c/source/embedded/nios/project/software/project_ecoslib
0 Kudos
Altera_Forum
Honored Contributor II
618 Views

I'm sorry but I'm out of ideas... maybe you should have a look at the ecosconfig source code to see if they hardcoded any path in there...

0 Kudos
Altera_Forum
Honored Contributor II
618 Views

I have a workaround. Before ecosconfig.exe I call mount -tf c:\\ /ecos-c commands, and after ecosconfig.exe is done I call umount c: 

 

With this workaround I recieve other errors: 

headers finished 

nios2-elf-gcc: /ecos-c/altera/kits/nios2_51/components/ecos/ecos-current/packages/hal/nios2/arch/current/src/gtf-launch.in: no such file or directory 

nios2-elf-gcc: warning: `-x c' after last input file has no effect 

nios2-elf-gcc: no input files 

make[3]: *** [/ecos-c/source/embedded/nios/project/software/project_ecoslib/debug/project_install/gtf-launch] error 1 

make[2]: *** [build] error 2 

make[1]: *** [/cygdrive/c/source/embedded/nios/project/software/project_ecoslib/debug/project_install/lib/libtarget.a] error 2 

 

I looked up manually for this gtf-launch.in file at c:\altera\kits\nios2_51\components\ecos\ecos-current\packages\hal\nios2\arch\current\src and found it. I can open, write and edit it. Why could I receive that problem?
0 Kudos
Altera_Forum
Honored Contributor II
618 Views

looks like a script generated by ecosconfig is still looking in /ecos-c/ even after it is unmounted... 

If you have a more recent version of Quartus/Nios, could you at least try to generate eCos on that? Just to see if it is a bug in cygwin or if it is coming from somewhere else...
0 Kudos
Altera_Forum
Honored Contributor II
618 Views

I installed the version 7.1 of Altera/Quartus/Nios II. After setting up the environment, I get the following (right after trying to launch ecosconfig)

makefile:147: /ecos-c/altera/kits/nios2_71/components/ecos/ecos-current/packages/pkgconf/rules.mak: no such file or directory 

make[3]: *** no rule to make target `/ecos-c/altera/kits/nios2_71/components/ecos/ecos-current/packages/pkgconf/rules.mak'. stop. 

make[2]: *** [headers] error 2 

make[1]: *** [/cygdrive/c/source/embedded/nios/project/software/project_ecoslib/release/project_install/lib/libtarget.a] error 2
0 Kudos
Altera_Forum
Honored Contributor II
618 Views

Finally, I have found out the solution: There was a NetBeans installed on my machine, which also included a cygwin dll to my system.  

This .dll was unluckyly with some bugs, so I can tell You Daixiwen: You were right, it was cygwin-bug at the end. Now it is working perfectly. Thanks for your assistance. :cool:
0 Kudos
Altera_Forum
Honored Contributor II
618 Views

This one was really tricky to find! I'm glad you were able to solve it.

0 Kudos
Reply