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.
Hi people!
I'm using the keil MDK 4.11 and can't compile the USB bootloader for lpc17xx. I receive a lot of the errors like this: "memory.c(14): error: #5: cannot open source input file "LPC17xx.h": No such file or directory"
Link for the bootloader: ics.nxp.com/.../an10866.zip
What I should do to resolve my problem?
Is the first time that I use the Keil.
Thanks in advance.
Best regards Luis Ferreira
Luis,
Embedded systems are one of the most demanding fields to be in. Why?
Because every processor and every IDE you work with have to be understood. If they are not understood, and you try to take 'the easy way out', you are in for more problems than you care to realize.
You need to understand what the compiler and linker actually do. What do they need in order to accomplish their required tasks. Every IDE and processor have a manual. You need to read and understand both these manuals in order to be productive in this field.
If you dont, you will fail. Every time.
This is a basic question that, given your capabilities and to actually be curious about the embedded systems field, you need to answer on your own.
It will make youe life much simplier in the future as an embedded engineer. Good luck, and stay with it. The job is both frustrating and rewarding. But in general that is engineering - solving problems.
I didn't express very well, sorry.
My strong point is power electronic, but as you know all of us have also do the bridge between the electronic and software.
In this case I'm experimenting for the first time this tool (keil) and for that I start with examples that should work out of the box. Before I worked with gnuarm, eclise, openocd and lpc21isp. The most part of engineers only open the manual when give up of try. I have already solved my problem with the bootloader, was a problem with #pragma.
But as you said, if I have this attitude I will fail every time, Why use propriety tool, when we have opensource tools? For what we need the support if the answers are like this one? Start understanding the low level tools as gcc, linkers, shell scripting, makefile and vim is the best way to reduce my doubt/problems in the future. In this time that I work with opensource tools for a 32bits MCU, I experienced that is so hard, but possible. Recently I was try understand what's the advantage of use expensive tools like keil, and if is better start with it and then change for opensource tools.
Best regards, Luis Ferreira
The NXP app note code is the problem - not Keil. They still have the old Uv2 project file instead of the new UV4 project file (When you close the project it will automatically update to Uv4).
(1) Use C:\Keil4\ARM\INC\NXP\LPC17xx in the Project-Options->C/C++ include paths window. It seems that the include path is missing the sub-directory \LPC17xx. It is using only C:\Keil4\ARM\INC\NXP
(2) After correcting that you will get errors such as this:
target.c(47): error: #20: identifier "PINCON" is undefined.
Open up the LPC17xx.h file to line 0930 for reference. In target.c, line 47 fix the following way:
Change PINCON->PINSEL0 to LPC_PINCON->PINSEL0 and so on...
Then: Change GPIO0->FIODIR to LPC_GPIO0->FIODIR and so on...
Again. These are very simple problems to fix. You need to better understand them. When you use projects from different parties don't expect them to always be plug and play.
In this time that I work with opensource tools for a 32bits MCU, I experienced that is so hard, but possible. Recently I was try understand what's the advantage of use expensive tools like keil, and if is better start with it and then change for opensource tools.
The benefits of the Keil environment are evident then?
Tried your advise, but the compiler comes up with a fault: Error: Failed to execute 'bin40\ArmAsm' Can anyone shed some light on this subject?
Regards, Lerche
Found out my install was corrupt, and had to reinstall it. works fine now.