Hi,
I'm working on a ColdFire project in CW v10.4. My target system is MCF51JF128, and I'm incorporating the FS USB Stack v4.1.1. My development platform is Windows 7.
My problem is that when I build, I get several linker warnings that look like this:
C:/Freescale/CW MCU v10.4/MCU/ColdFire_Tools/Command_Line_Tools/mwldmcf|Linker|Warning
>Source file "D:\workspace\ColdFire\ColdFire_Build_Tools\ewl\EWL_C\src\mem.c"
>not found, cannot display source
The odd thing here is that I don't have a D: drive, and none of my source files are called mem.c. Also, this doesn't seem to affect my output image at all.
Can anyone tell me how to clear up these warnings? I see that this question was already asked by another forum member several weeks ago, but no one ever answered him, so I'm asking again.
Thanks,
Mike
Solved! Go to Solution.
Hello Mike,
Seems this is an absolute path reference located in the standard EWL library linked with your project. I'd suggest you to rebuild the libs to update the source file paths to reflect your CodeWarrior install directory.
See below the snippet from ColdFire Compiler manual ("c:\Freescale\CW MCU v10.4\MCU\Help\PDF\MCU_ColdFire_Compiler.pdf"):
How to rebuild the EWL Libraries
The files (viz. libm.a, libc.a. ...etc.) are present in the ewl\lib folder under a sub-folder v<x>, where <x> is a number indicating the coldfire architecture. If the architecture supports PIC/PID then the library files for them will be present in a sub-folder (called pi) for that architecture.
The process to rebuild the EWL library files is given below.
NOTE
The user should have access to a "make" utility within DOS.
For example, if the you CWINSTALL is in the folder C:\Program Files\Freescale\CW MCU v10.x then you can define CWINSTALL as follows:
set CWINSTALL='C:/Program Files/Freescale/CW MCU V10.x/MCU'
NOTE
The single quote character (') is important because there arespaces in the path.
3. Change your working directory to the " ewl" folder, for example, cd C:\Program Files\Freescale\CW MCU v10.x\MCU\ColdFire_Support\ewl
4. To clean the existing library files ... <path_to_make_utility>\make -f makefile clean
You could skip the < path_to_make_utility> if you have " make" in your PATH variable.
5. All the library files can be re-built using the following command:
make -s -f makefile PLATFORM=CF all cleanobj
The "PLATFORM=CF" indicates that EWL is being re-built for ColdFire.
6. After the make command is complete, check the lib folder and its sub-folders for the presence of libm.a, libc.a, ...etc.
The EWL library files are rebuilt.
Hope this helps.
Stan
Hello Mike,
Seems this is an absolute path reference located in the standard EWL library linked with your project. I'd suggest you to rebuild the libs to update the source file paths to reflect your CodeWarrior install directory.
See below the snippet from ColdFire Compiler manual ("c:\Freescale\CW MCU v10.4\MCU\Help\PDF\MCU_ColdFire_Compiler.pdf"):
How to rebuild the EWL Libraries
The files (viz. libm.a, libc.a. ...etc.) are present in the ewl\lib folder under a sub-folder v<x>, where <x> is a number indicating the coldfire architecture. If the architecture supports PIC/PID then the library files for them will be present in a sub-folder (called pi) for that architecture.
The process to rebuild the EWL library files is given below.
NOTE
The user should have access to a "make" utility within DOS.
For example, if the you CWINSTALL is in the folder C:\Program Files\Freescale\CW MCU v10.x then you can define CWINSTALL as follows:
set CWINSTALL='C:/Program Files/Freescale/CW MCU V10.x/MCU'
NOTE
The single quote character (') is important because there arespaces in the path.
3. Change your working directory to the " ewl" folder, for example, cd C:\Program Files\Freescale\CW MCU v10.x\MCU\ColdFire_Support\ewl
4. To clean the existing library files ... <path_to_make_utility>\make -f makefile clean
You could skip the < path_to_make_utility> if you have " make" in your PATH variable.
5. All the library files can be re-built using the following command:
make -s -f makefile PLATFORM=CF all cleanobj
The "PLATFORM=CF" indicates that EWL is being re-built for ColdFire.
6. After the make command is complete, check the lib folder and its sub-folders for the presence of libm.a, libc.a, ...etc.
The EWL library files are rebuilt.
Hope this helps.
Stan
Success! That did the trick.
Thanks, Stan.
ONE NOTE: In order to follow the procedure in the manual, I had to apply a small edit to one of the make include files.
In ColdFire_Support\ewl\make.os I had to change
ifeq ($(OSTYPE), console)
to
ifeq ($(OS), Windows_NT)
I'm working on a Windows 7 box, but I would think that this would apply to any platform running the Win NT kernel. The problem is that there is no environment variable named OSTYPE, so the test in that line failed and caused make to assume that I was building in either Cygwin or Linux (not sure which, but it doesn't matter). I guess an alternative to editing the include file would be to create an environment variable named OSTYPE and set it equal to 'console', but that seems a bit kludgy to me.
Anyway, thanks again, Stan!
Mike