We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I have recently been given project files for an old project that I was told was working on a NXP LPC2388 board. When I open the project in uVision3 it has two files that are red and it won't compile or build. I keep getting the same errors.
error - can't create command input file 'lpc2300._ia'
For every time I click build and
error - can't create command input file 'manual_mode_layout.__i'
For when I click compile.
I've never used this software before and there is nothing anyone can tell me other than the guy who was here before you had it working. I was given a bunch of disks to install the software, a lot of it looked redundant. Maybe that's my problem?
The missing files are:
FS_ARM_L.lib MCI_LPC23xx.c -file_config.h -mci_lpc23xx.h
Basically I just need to get this project flashed to the board and I can't even get it to compile. I would appreciate any help you could offer.
Here's come more stuff.
For example, __fclose is used in retarget.c here
/*--------------------------- _sys_close ------------------------------------*/ int _sys_close (FILEHANDLE fh) { if (fh > 0x8000) { return (0); } return (__fclose (fh)); } -------------------------------------------------------
Now if we look at the header file, file_config.h, included in retarget.c's decleration:
extern int __fclose (int handle);
Therefore, I dont' understand why the errors are being generated. I included the file_config.h in the retarget.c file. That is normally what you do when you define symbols. Is there something I'm missing?
Your project doesn't fail to compile.
It fails to link.
And no - you include header files for the compilation step.
But you need to specify what libraries to add in for the linking step.
"extern int __fclose (int handle);" obviously does not contain any implementation of any __fclose() function. That implementation is in either a source file or a compiled version in an object file or in a library file.
The linker complans that it doesn't have access to the compiled result of a number of files.
This is me trying to figure out what the previous party did. Anyways, I can see what you mean, as looking at file_config.c, I see none of these functions. Therefore, am I right in assuming the previous party just copy pasted these functions into the header file? Otherwise though those two files are suppose to be part of the realt time library.
Well I found all the missing functions. They are all part of the FlashFS. All of those functions are separate C files. I guess I would of thought there would be an easier way to link them to a project then having to link every separate C file.
There is - it is to build them into a Library.
But who can tell why your predecessor chose not to do that?
A lesson for you to learn from all this: consider what documentation you would have liked your predecessor to povide on all this - and be sure that your documentation includes it!