I covered in a previous tutorial how add ARM gcc to Kepler Eclipse to build a DYI toolchain. I’m using Processor Expert a *lot* in my project, because it simplifies and speeds up the development of my embedded applications. What is missing so far is how Processor Expert can be added to Eclipse. As Kepler is as of this writing the latest Eclipse version, this tutorial is using that version.
❗ Eclipse Luna is *NOT* supported in Processor Expert 10.4! Eclipse Luna is expected to be supported in Processor Expert 10.5 coming out in 2015! So if you are using Processor Expert 10.4, then make sure you are using Eclipse Kepler.
List of Tutorials
- Part 1: Setting up ARM GNU tool chain
- Part 2: Setting up Eclipse IDE
- Part 3: Setting up the debugger (P&E and Segger)
- Part 4: Setting up Processor Expert
- Part 5: Setting up FreeRTOS Kernel Awareness
- Part 6: Linux Host Support with OpenOCD and CMSIS-DAP
- Part 7: GNU ARM Eclipse Plugins
- Part 8: Processor Expert with GNU ARM Eclipse Plugins
- Part 9: DIY Free Toolchain for Kinetis: Part 9 – Express Setup in 8 Steps
- Part 10 – Project Creation with GNU ARM Eclipse 2.1.1
Processor Expert Plugin Installation
Processor Expert comes in different forms:
- Integrated in the Freescale standard CodeWarrior tool chain
- Standalone Eclipse version which can be used with non-Eclipse tool chains like IAR or Keil.
- or as a plugin which can be integrated into Eclipse distributions like CodeRed or standard Eclipse like Kepler.
So for my case here, I use the plugin version. Download the Processor Expert Driver Suite 10.2 Eclipse plugins from here. From the ‘Download’ Tab, download ‘Microcontrollers Driver Suite v10.2 plug-in for existing Eclipse 3.7 (Indigo) installations‘ (requires registration):
This should download ‘PExDrv_v10_2_Eclipse_3_7.zip‘. Unpack the archive. There are two packages/zip files in there:
- com.freescale.eclipse.3.7.updater.custom.updatesite.zip: Updater to update Processor Expert with new processor support
- com.freescale.eclipse3.7.pexdrv10_2.updatesite.v1_0_0_b130514.zip: Processor Expert Plugins itself
They have to be installed in the above order (first the updater, then the pexdrv10_2):
- Start Eclipse
- Use the menu File > Add New Software, then press Add
- Use the ‘Archive’ button to browse to your updater file and install it:
- Then do the same again, this time with the pexdrv10_2.updatesite file:
Then restart Eclipse as needed.
Creating Processor Expert Project
Creating a project is easy: I use the menu File > New > Processor Expert Project. That wizard is straightforward. Only when asked for the Processor Expert Target Compiler, select ‘GNU C Compiler’:
With this, I have my first Processor Expert project. As the project has been created with an ‘Empty toolchain’, I need to tweak it to use the ARM GNU tools.
Changing Project Settings
- I select the Project Properties, and I go to C/C++ Build > Tool Chain Editor
- Deleselect ‘Display compatible toolchains only’ and select ‘Cross GCC‘:
- Then press Apply:
- In the settings, use the ‘Manage Configurations’ to rename the configuration to FLASH (or any other name you like):
- Set the Prefix to
arm-none-eabi-
and the path to the GNU tool chain where you have it installed (for me it is
C:\Program Files (x86)\GNU Tools ARM Embedded\4.7 2013q2 - Add for the compiler where it has to search for the include files with the path to the compiler library include directory:
“${ProjDirPath}/Sources”
“${ProjDirPath}/Generated_Code”
“${ProcessorExpertPath}/lib/Kinetis/iofiles”
“${ProcessorExpertPath}/lib/Kinetis/pdd/inc”
“C:\Program Files (x86)\GNU Tools ARM Embedded\4.7 2013q2\lib\gcc\arm-none-eabi\4.7.4\include”
- Specify
-c -fmessage-length=0 -mcpu=cortex-m0 -mabi=aapcs -mthumb -msoft-float
as compiler options, where cortex-m0 is for the Kinetis-L. Use cortex-m4 for the Kinetis K family: - If using C++, do the same for the C++ compiler options.
- Enable ‘Do not use standard start files’ for the linker:
- Specify the linker flags as
-mthumb -T”${ProjDirPath}/Project_Settings/Linker_Files/ProcessorExpert.ld” - To generate an S19 file from the ELF file, configure the Build Steps to use
arm-none-eabi-objcopy -O srec “${ProjDirPath}/FLASH/${ProjName}.${BuildArtifactFileExt}” “${ProjName}.s19” - Configure the Build Artifact to use the ‘elf‘ extension:
- Configure the project to use the external builder:
- I need to change the Provider to recognize the include paths. For this I enable the ‘CDT GCC Build Output Paser‘ and set the compiler command pattern to
${COMMAND} -E -P -v -dD “${INPUTS}”
That’s it, finally :-).
💡 If you get an error about gcc or g++ not found in PATH, then this means that Eclipse cannot find it. In my case adding “C:\Program Files (x86)\GNU Tools ARM Embedded\4.7 2013q2\arm-none-eabi\bin” to my global PATH variable solved that problem.
Startup Code
One thing is still missing: the startup code. The one generated by the wizard does not match the library we are using with gcc. So I need to delete the startup.c:
Instead, use the startup.S I used in part one of the tutorial:
By default, Processor Expert generates the startup code. As I’m using my own startup, I need to disable startup file generation in the CPU properties:
Now I can add and generate code with Processor Expert as usual.
Example Project
As a reference point, I have put the example project created above on GitHub here.
Summary
Adding Processor Expert to a standard Eclipse can be done with using the Processor Expert Eclipse plugins. To have them working with ARM GNU gcc requires some fine tuning in the project settings, but is very doable. With this I can use the Processor Expert power of code generation with Kepler Eclipse.
Happy Experting 🙂
Pingback: DIY Free Toolchain for Kinetis: Part 1 – GNU ARM Build Tools | MCU on Eclipse
Pingback: DIY Free Toolchain for Kinetis: Part 2 – Eclipse IDE | MCU on Eclipse
Pingback: DIY Free Toolchain for Kinetis: Part 3 – Debugger (GDB Server with P&E and Segger) | MCU on Eclipse
Hi Erich,
Nice post, thank you! Just a question: did you try to find a way for Linux developers/users?
Since F.S.L. discontinued Linux’s support, the “Freedom” is only for Windows, but real hackers always find out the true FREEDOM.
“The open-source puts the ability to change the world into everyone’s hands.” — Julie Uhrman
LikeLike
I have not tried it personally, but if you see the comments in https://mcuoneclipse.com/2013/07/22/diy-free-toolchain-for-kinetis-part-3-debugger-gdb-server-with-pe-and-segger/ then others are doing this. I think the Segger part works on Linux, as they have a Linux GDB server available. OpenOCD seems that it does not work out of the box (what I was told), but I have not verified this.
LikeLike
Hi Erich,
Thanks for this information.
In fact OpenOCD works out-of-the-box as I posted and as this guy also replicated in more details: setting-up-linux-opensource-build-and-debug-tools-for-freescale-freedom-board-frdm-kl25z/
I suppose that people facing some issues are missing some libraries in their system or are using a outdated system.
LikeLike
Hi acassis,
thanks for that link, very valuable! I wanted to use pre-built binaries for OpenOCD/CMSIS-DAP on Windows, but what I have found did not support the FRDM boards. So it looks I would need some time to set it up so I can rebuild the OpenOCD binaries.
LikeLike
It only supports Kinetis and ColdFire+ MCUs. 😦
LikeLike
I admit, I have used the P&E and Segger GDB Server only for Kinetis. So I think the only possible ways would be that P&E would port its server to Linux, then it would support their run control devices. I looked at USBDM, but looks like there is no GDB server for S08 neither. So to me the only working solution for S08 on Linux is CodeWarrior for MCU10.2.
LikeLike
I meant, the release notes mention ProcessorExpert only supports Kinetis and ColdFire+.
I should admit, too, I’m still using CW 6.3 for S08 and 51JM128 projects.
LikeLike
Pingback: DIY Free Toolchain for Kinetis: Part 5 – FreeRTOS Eclipse Kernel Awareness with GDB | MCU on Eclipse
Great tutorial. Up until now I’ve had no issue. But after installing PE I am getting this error:
“Processor Expert configuration file not found or corrupted (PE[_??].cfg).”
I’ve tried to uninstall, re-download and install it again, but I’m still getting the same error.
LikeLike
Hi Karka,
that strange. Is that the exact error message you are receiving? Which host (Windows 7) are you using?
LikeLike
If you do a project clean , the FLASH folder will not be del, that’s a little problem.
LikeLike
Hi Kevin,
yes, I noticed too that the ‘clean’ would need some tweaking. Additionally, clean does not properly double quote file names, so this is an issue too. Anyone having a solution?
LikeLike
One solution is never use directory and file names that need quotes. Nothing but trouble.
LikeLike
Yes, that’s for sure a solution, and typically I do this as well.
LikeLike
\lib\gcc\arm-none-eabi\4.7.4\include
\arm-none-eabi\include
but what’s different with up two path ?
LikeLike
Good question :-). But I saw that this second include path has not all header files (e.g. strings.h) present, so I used the first one.
LikeLike
Some of the include files use #include_next to look further into the INCLUDE path for another definition. The two include dirs are for more generic gcc includes and then more specific to the chip or runtime library being used. An example of this is .
My projects are set up to include …/lib/gcc/arm-none-eabi/4.7.3/include first, then …/lib/gcc/arm-none-eabi/4.7.3/include-fixed, and finally …/arm-none-eabi/include
LikeLike
Pingback: DIY Free Toolchain for Kinetis: Part 6 – Linux Host with OpenOCD and CMSIS-DAP | MCU on Eclipse
Pingback: Tutorial: FreeMASTER Visualization and Run-Time Debugging | MCU on Eclipse
Hey Erich, I got some kl24z QFN 32 pin microcontrollers and was looking for some linker files and startup code to just “blink an LED”. I making a prototype PCB tomorrow 🙂 and i have to admit, i think i can only easily do that by following this and installing the processor expert plugin. Thanks a lot for having this info within reach. I will report back how good i get at using PE…
LikeLike
Yes, it is possible to do these things without Processor Expert. But once learned the basics, it is so much easier. I compare it with like assembler vs. C programming: in the old days, everyone was using assembler, and was happy about it. But once learned C, you can be much more productive. Still, you will use some assembly, but you cannot imagine that you would go back to assembler and write the whole application in assembly.
LikeLike
Spot on!! I couldn’t express it better.
LikeLike
Pingback: Processor Expert in Eclipse Generating code for L-series microcontrollers >> Karibe
About that startup file “startup.S”, will I need to change anything for the kl24 chip? I dont know, coz they are the same cortex M0 core and I have the correct linker script “ProcessorExpert.ld”
LikeLike
You should be able to use the same startup file.
LikeLike
OK, thanks. I am getting a strange error on build by *arm-none-eabi-ld* cant find the linker script file “ProcessorExpert.ld” in the path Project_Settings/Linker_Files/, although when i browse there i find the file. I tried setting permissions to the folder and the file but.. i have no idea why. when i restart eclipse, the processor expert service start shows same error, “cannot open linker script file ”/home/simlab/src/git/freescale/kl24_test/Project_Settings/Linker_Files/ProcessorExpert.ld”: No such file or directory kl24_test C/C++ Problem”. I tried deleting that file and generating code again, same thing.
LikeLike
hmm, strange. Can you verify if the naming is exactly the same (lower/upper case)? Otherwise: copy the linker file to a different location and try to link with this one?
LikeLike
Still… i have a feeling may be its a problem with GNU-ARM toolchain coz the file is really there when i *ls* the path, copying the file to a different location doesnt help.
LikeLike
yes, this is really strange, and I’m out of ideas 😦
LikeLike
aaaah man!!!, the problem was a minor mistake, the left side quotatiom mark was a closing one and hence wrong for the linker path in the linker flags… 🙂 i copy-pasted from the browser. The browser represents opening/closing speech marks differently in *HTML*. I really had to check closely.
LikeLike
ahhrg, that happened to me as well a while back, but I did not think about it this time 😦 (https://mcuoneclipse.com/2013/03/09/the-quotation-problem/)
LikeLike
hahaha, I just had to find that one for myself, lesson well learnt. I wish i’d have seen that post though 🙂 would have saved me time to do the board.
LikeLike
I run into that sort of problem a lot at work, when people paste stuff into M$FT Outlook, it goofs up all the quotes and hyphens to make them look pretty. Pasting that into code doesn’t do you much good. 🙂
LikeLike
Thanks a lot for this eyeopener. I have spent the last hour trying to find my error.
LikeLike
You welcome. Just for the record: which problem?
LikeLike
How are you going to solder those QFN chips?
LikeLike
Depends if they have a ground plate or not. I’m using a microscope, SMD solder and a good hand :-). Otherwise: http://www.youtube.com/watch?v=c_Qt5CtUlqY
LikeLike
I can solder 0,5mm pitch QFPs by hand without trouble, but I tried to attach #46 gauge wire to the pads on a tiny Bosch LGA chip and totally destroyed it. 🙂
LikeLike
Maybe der Samichlaus will bring me a microscope and/or hot air station!
LikeLike
I think you definitely need a hot air station for this kind of things.
LikeLike
I started working on a toaster oven reflow gadget, and did some tests running the temperature by hand. I tested SOIC packages and they seemed to work fine. But I never finished the controller for it. The QFP / LGA packages for the sensor chips I’d like to solder are so small I don’t know how I could ever place them on the boards without smearing the solder paste all over. I guess I could tin the pads on the board like the person did in the video.
LikeLike
Hi Erich,
I’ve build the whole environment follow your building step. but when ‘make clean’, I found the ‘makefile’ use ‘del’ command to delete all ‘*.o’ file, and failed to delete file like “del ./Sources/Events.o ….” , I have install ‘rm.exe’ in PATH.
how can I change makefile use ‘rm’ instead of ‘del’.
LikeLike
good question! I have not found a solution. This problem is discussed here too: https://bugs.eclipse.org/bugs/show_bug.cgi?id=242649
What I see is that it seems that the Processor Expert builder is forcing the ‘rm’. If I create a normal non-PEx project, than it is using rm instead of del.
You can verify this in the .cproject file: it has cleanCommand=”rm -rf” in it.
But I have no idea how to control this.
What I noticed is if I switch from the ‘External Builder’ to the ‘Internal Builder’, that it correcly removes the output folder with clean (still it reports about del command, but at least it does what it is supposed to do).
LikeLike
After installing PE, restarting eclipse and creating a new PEx project, I got this message in console and rising an dialog window with the same message:
An internal error occurred during: “Open last Processor Expert project”.
java.lang.NullPointerException
LikeLike
Hi Robson,
does this happen for every project and new workspace? Then somehow your installation seems corrupted. You might have a look into the .metadata\.log file, as it shows the stack dump of the null pointer exception. Maybe it gives a hint what could be wrong?
LikeLike
Reading the log, these three messages appear many times:
!ENTRY com.freescale.processorexpert.core 4 0 2013-09-07 01:45:19.428
!MESSAGE reg.getExtensionPoint is empty
!ENTRY com.freescale.processorexpert.core 4 0 2013-09-07 01:45:19.531
!MESSAGE No com.freescale.processorexpert.core.PEservice extension found!
!ENTRY com.processorexpert.core.ide.wizard.ui 2 0 2013-09-07 01:45:29.810
!MESSAGE External elements location /Applications/eclipse/ProcessorExpert/Config/PE/CPE/wizard_data/wizards/components does not exist
I’m using mac os x.
Thanks!
LikeLike
Oh! I have no Mac, so never tried this on a Mac. I have no idea if PEx would work on a Mac :-(. So it seems that it cannot find the extension points. Does CodeWarrior run for you Mac OS X?
LikeLike
BTW, openocd arm toolchain + eclipse now works fully in Linux for the kl25z board, there are comments here, but i meant to ask, only 2 hardware breakpoints, you put more than that and you get the problem of resource not found, which makes sense, do you also have 2 hardware breakpoints when using other tools? I am used to unlimited breakpoints with older micros and I have no experience with software breakpoints, or understand what that means. may be a link…
LikeLike
In my experience, segger’s J-link can make soft break point, some like unlimite. you can install JLink_OpenSDA firmware into kl25z to make some test
LikeLike
Yes, the Segger J-Link supports ‘unlimited’ breakpoins, see https://mcuoneclipse.com/2013/05/16/freedom-board-with-segger-opensda-debug-firmware/. For this it reflashes the FLASH with ‘software’ breakpoints in flash. This is as well supported by CodeWarrior, but only from MCU10.5 on (which just has been released yesterday).
LikeLike
How do soft breakpoints work? Does is single step at some greatly reduced speed until it wanders into a soft breakpoint, vs. using the internal BDM hardware in the chip?
10.5 is out? Hmmm. I’ll have to give it a try. You may remember 10.4 Setup crashed on my system duing the PEMicro driver installation.
LikeLike
Yes, 10.5 is out. I’ll plan on writing a short review. At least for myself it has the ‘segger unlimited breakpoint’ thing implemented, plus pin assingments in Processor Expert is much easier. And I thing debugging/downloading in general is much faster too (but would need to measure it). My feeling is that it is maybe twice as fast as e.g. 10.3 (not that much from 10.4, but still I feel it is faster).
What Segger does is: it re-programs the flash memory ‘on-the-fly’ and has ‘break’ or ‘trap’ instructions in the code (like a software breakpoint in RAM). They have a very fast flash programming, so it is somewhat slower in that case if it runs out of hardware breakpoints, but not much noticable.
And yes: you might give 10.5 a try on the drivers side too.
LikeLike
That’s cool. I have my source loaded with breakpoint traps to partially work around that limitation. Very annoying. I’d pay $10 or a $5 MCU if they’d seriously increase that hard breakpoint limit. The ST ARM MCU I’ve been playing with recently has 5. I’d like to have 50!
LikeLike
Bill,
I think ARM allows a much higher breakpoint numbers, more than what Freescale has decided to implement on that Cortex-M0+. Clearly, more breakpoints means problably more silicon,, means higher costs. I’m just guessing that having 5 instead of only 3 hardware breakpoints would have increased the silicon costs by a few cents. But if companies buy silicon purely on costs, and not ease-of-use-for-development, things maybe never change. And maybe it is just because the silicon designers deal with VHDL and SystemC, but do not have to debug applications on their own devices? 😉
Seriously, I think in the long run, the devices which are easiest to develop for (debugging capabilities, software and tools availability, etc) will win the market. At least I hope so. 🙂
LikeLike
Excellent, now I only need to have this fully functional on Windows 🙂 About the breakpoints: yes, the KL25Z has unfortunately only 2 hardware breakpoints. But e.g. the Segger OpenSDA firmware or Segger J-Link offer an implementation which removes that limitation.
LikeLike
I think the linker miscellanous settings is missing the cpu type (-mcpu flag). It should be:
-mthumb -mcpu=cortex-m0 -T”${ProjDirPath}/Project_Settings/Linker_Files/ProcessorExpert.ld”
Also you can switch the cpu type from cortex-m0 to cortex-m0plus to allow the compiler to use the extra instructions and optimizations it has.
LikeLike
Hi Rodrigo,
thanks for that hint, I was not aware of the cortex-m0plus option!
LikeLike
Dear Erich,
Thanks for your great tutorials! I’m in the middle of applying this knowledge to develop a custom PCB using the KL46Z processor. For starters, I have acquired a FRDM-KL46Z board and I have followed all your tutorials up to this one (I skipped the debugger setup since I currently don’t have one). Besides that I’m a little bit lost on how to get myself past this stage. I looked through your GitHub submissions and I found an example project called FRDM-KL46Z_Demo. I have loaded it into Eclipse and I see many warnings of the type “Orphaned configuration…”, “Orphaned toolchain…”, “Orphaned builder…” as well as “Invalid project path: Include path not found…”.
I come from the world of developing sensor systems using FPGAs as well as developing Android software/hardware using the IOIO-OTG board and Google’s ready-made Eclipse bundle. So I use Eclipse but I’m embarrassed to admit that I’ve never had to configure it to get myself running on previous projects. Also, I do have C/C++ experience with microcontrollers but only using ready-made IDEs.
What would you advice all of us folks developing hardware for the first time on the KL46Z with the DIY Eclipse tool chain? Is there an easy way to adapt your KL46Z demo to the Eclipse setup described on your tutorials? Also, could you recommend any specific tutorials out there which deal with topics beyond just setting up the DIY tool chain you’ve been teaching us about?
Thanks again Erich!
LikeLike
Hi Carlos,
You get that ‘orphaned configiguration/toolchain’ because that project is set up for the CodeWarrior GNU toolchain, and your DIY toolchain has this one not present.
Not much you could do about this except using CodeWarrior. Or that you create a make file project as in my tutorial and then add the sources.
I hope this helps.
LikeLike
Thanks for your reply! As you said (and as I just now noticed), your GitHub says that this project was created using CodeWarrior.
When you say “create a make file project… and then add the sources.” do you mean creating a new Processor Expert project and then copying the source files within your CodeWarrior example’s “Sources” folder over to the new project’s “Sources” folder?
Would you say that this is in general the overall process for porting any CodeWarrior examples over to this specific DIY toolchain setup?
Lastly, would you suggest for a Freescale/Kinetis newbie like me to first get a hang of the FRDM-KL46Z work flow using the free CodeWarrior edition and examples until I’m practiced enough to jump into the DIY toolchain? Or is it really that simple that I should be able to start coding some blinking LEDs once I’ve completed your tutorial #4? The “newness” of it all is making it hard for me to judge how close I am.
I sure wish there were more well written tutorials like yours. Searching on Google shows that you’re pretty much the only expert on these matters who has been kind enough to share back with the community. That’s a compliment by the way and also a big thank you! 😉
Thanks again Erich!
LikeLike
Hi Carlos,
many thanks for your kind words, highly appreciated!
Yes, I meant that the standard process is to create a new project as outlined in this tutorial, and then add the source files. With using Processor Expert, you could copy the components with their settings say from CodeWarrior to the DYI toolchain (as Processor Expert components). But this requires that you have CodeWarrior installed.
To that point: using the DIY toolchain requires a level of expert knowledge and deep understanding how things work. This is the value of Freescale with providing CodeWarrior: it is much easier to install and use for a newby compared to create a toolchain on your own. Freescale probably has put many man years into making it a smooth process as much as possible. So yes, I would suggest to use the free CodeWarrior edition first. With this you can gather experience with Eclipse and the GNU tools, and can easier switch to an DYI toolchain. Anyway the Kinetis limiation of 64KByte for Kinetis L is rather high (e.g. twice as the 32 KByte of IAR), and with compiler optimizations enabled I can use it for larger programs. And flash programming s19 files is not limited at all!
I hope this helsp on your way to develop your application.
LikeLike
Hi Erich,
First : Great job !!!!! This tutorial will help a lot of people !
I have a request about the fact to use Eclipse with a Kinetis but a K20.
I’m a bit lost with all the settings but I would like to know what i’ve to change or do for making toolchains ! Just be a little bit guided.. First I supposed I need to rewwrite the Startup.S and sysinit ?
But another stupid question : Have your heard about someone who has already do that ?
Sorry for my English ! I try to improve but my french blood always trying to prevent me !
Thanks for all !
LikeLike
Hi Jems,
thanks :-).
I have not used it for the K20, but should not be a big deal. Just make sure you set the linker and compiler options to use the Cortex-M4 instead of the M0+. Startup code should work for both the M4 and M0 the same way.
LikeLike
Thanks ERIC !
I repeat but your website is so usefull !!!
And thanks again for taking time to answering !
LikeLike
Hi Erich,
Thanks for the great tutorials,
I am trying to build a sample led project with eclipse and processor expert on kl25z freedom board.
The program compiled with out any errors but when i debug the same with P&E GDB, the program gets stuck and shows errors on the processor expert generated files- /Generated_Code/BitIoLdd1.c
Symbol ‘uint32_t’ could not be resolved
Type ‘uint32_t’ could not be resolved
Could you please help me clear this.
Regards,
Ben
LikeLike
Hi Ben,
this really looks like a compiler error (and not a GDB debugger error). Are you sure this is not the compiler? Are you using my project on GitHub or your own one?
Erich
LikeLike
Hi Erich,
I tried with your Github example FRDM-KL25Z_BlinkEclipse_PEx. This one compiled successfully and worked on GDB debugger with out any errors. But when i reopened the project, it shows the same errors on PE generated codes ‘‘uint32_t’ could not be resolved’..
Rebuilding the project didn’t solve this issue.
Regards,
Ben
LikeLike
Hi Ben,
ok, I see now what you mean. The problem is with the Eclipse Indexer: It does not find the right header files, but the compiler does. You can fix this with adding the following path to the
“C:\Program Files (x86)\GNU Tools ARM Embedded\4.7 2013q2\arm-none-eabi\include”
to the include path setting of the project (Project Properties > C/C++ build).
Of course use the right path were you have installed your compiler.
That way the Eclipse Indexer finds the header files, and does not show that error.
LikeLike
Hi Erich,
Thanks for the reply, setting the include path as mentioned solved the issues.
Regards,
Ben
LikeLike
Hi Ben,
cool, good to hear that this has been resolved. Just one thing: In my projects I’m using an absolute path to the GNU gcc installation path, as it is outside of my Eclipse installation. I recommend to use an environment variable pointing to the installation path if possible.
Erich
LikeLike
FRDM-KL25Z_BlinkEclipse_PEx.elf: No such file or directory
I got this error for build project.
LikeLike
23:05:15 **** Incremental Build of configuration FLASH for project FRDM-KL25Z_BlinkEclipse_PEx ****
make all
‘Building target: FRDM-KL25Z_BlinkEclipse_PEx.elf’
‘Invoking: Cross G++ Linker’
arm-none-eabi-g++ -nostartfiles -mthumb -T”C:/tmp/wsp_kepler/FRDM-KL25Z_BlinkEclipse_PEx/Project_Settings/Linker_Files/ProcessorExpert.ld” -o “FRDM-KL25Z_BlinkEclipse_PEx.elf” ./Sources/Events.o ./Sources/ProcessorExpert.o ./Project_Settings/Startup_Code/startup.o ./Generated_Code/Cpu.o ./Generated_Code/PE_LDD.o ./Generated_Code/Vectors.o
arm-none-eabi-g++: error: FRDM-KL25Z_BlinkEclipse_PEx.elf: No such file or directory
make: *** [FRDM-KL25Z_BlinkEclipse_PEx.elf] Error 1
23:05:16 Build Finished (took 945ms)
LikeLike
Hello,
hmm, my workspace is in c:\tmp\wsp_kepler, so it seems your settings still have this. Can you perform a Project > Clean Project (right click on the project and select Clean) to see if this solves the problem?
LikeLike
Pingback: DIY Free Toolchain for Kinetis: Part 7 – GNU ARM Eclipse Plugins | MCU on Eclipse
Pingback: Processor Expert Driver Suite V10.3 Available | MCU on Eclipse
Pingback: DIY Free Toolchain for Kinetis: Part 8 – Processor Expert, Eclipse and GNU ARM Eclipse Plugins | MCU on Eclipse
Pingback: DIY Free Toolchain for Kinetis: Part 9 – Express Setup in 8 Steps | MCU on Eclipse
Pingback: DIY Free Toolchain for Kinetis: Part 10 – Project Creation with GNU ARM Eclipse 2.1.1 | MCU on Eclipse
Erich, Thank you for your blog. However I must post here that PEx doesn’t work for the Mac! Freescale (as of now) doesn’t support OS X. I should have read the comments before spending 3 hours trying to follow this tutorial and not understanding why I couldn’t make it work!!! Back to Windows… 😦
LikeLike
Yes, unfortunately it does not support Mac OX (yet). But I think Freescale realized that Mac OS X needs to be supported (I admit that I’m a Windows user, but about 20% of my students use Mac, so having Mac support would be really great).
LikeLike
Hi Erich, the processor expert 10.4 is out (03/28/2014). I think you may need to update the references.
LikeLike
Thanks for the heads-up. Yes, I have seen the announcement, but had no time to really look at it (yet). But it looks very promising so far.
LikeLike
I just did Part 1~4 (Part 3, I died – no board yet) and this Part, Part 4 has the most changes so far. There are extra options and the PE environment is not setup so I had to surf to the file directories then cut and paste them. I had a red x on my Project name, the path to the bin, in the project properties – C/C++ Environment I added arm-none-eabi to the existing path before the /bin
So are we pointing to the C:\Program Files (x86)\GNU Tools ARM Embedded\4.8 2014q1\bin or to the C:\Program Files (x86)\GNU Tools ARM Embedded\4.8 2014q1\arm-none-eabi\bin ? It looks like Eclipse grabbed the “PATH” and stuck it into the Environment box which means I can set it to point where I need, I need these setting at the project level, I build GTK stuff that uses c++/gcc for x64.
LikeLike
Hi Kevin,
CodeWarrior10.6 is released now, it supports the feature you required.
here is the CW10.6 link:
https://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CW-MCU10&tid=CWH
I ask for and got PE for KL46
LikeLike
I have my variables pointing to the directory with the arm-none-eabi\bin
Erich
LikeLike
I have eclipse configured according to parts 1-4 of this tutorial and at first it was working perfectly.
I was able to create a new processor expert project and build the project.
However, when I tried to open eclipse and the project the next day, I got the following error message after some time.
Plugin Plug-in “com.freescale.processorexpert.core.service” was unable to instantiate class “com.processorexpert.core.client.PEApplicationClient”.
Could not open project /ProcessorExpert.pe. Processor Expert service is not initiated yet.
I am still able to make new processor expert projects, but I cannot close eclipse and then pick up where I left off later.
I have tried it with multiple workspaces and it is happening consistently.
LikeLike
I’m not sure what is happening here, but it looks to me that maybe a file (or multiple ones) got removed/damaged? Does it happen too if you create a new project? The other thing could be that the .pe file in your project might be corrupted? Can you open it in a text editor to see if there is any thing wrong in it?
LikeLike
I opened up the *.pe file in a text editor and nothing seemed suspicious at first glance. I also ran it through an xml validator and it came up clean.
I uninstalled/reinstalled the PEx updater and PEx itself, but the problem persists.
One of the times I restarted eclipse, the project opened without any problems, meaning there must be a workaround, but I haven’t been able to recreate it.
Unfortunately, it takes several minutes before opening the *.pe file fails, which is slowing me down.
LikeLike
Maybe you could send me that project (zipped) so I can check if the problem is with my Eclipse too?
I’m thinking it could be with heap/memory on the host too?
Do you have many projects open the workspace? Try to close all projects not needed.
LikeLike
The problem is present in any new processor expert projects I create (but only after I’ve closed and reopened eclipse), even if the workspace is otherwise empty. I have shared a copy of the project here: http://www.mediafire.com/download/gtncphoowzq1455/Project.zip
LikeLike
Hi Ryan,
I appologize for responding so late on your question….
I tried your project, and it it loads fine on my side, no problem.
So I believe something is wrong with your installation.
Would it help you if I share my Eclipse installation with you?
Erich
LikeLike
That would be great. I’ve uninstalled and reinstalled everything with no success
LikeLike
I have found the issue.
In March, Oracle released a new Java Runtime Environment.
Processor Expert will start fine using an older 32-bit JRE7, the 64-bit JRE8 was causing my issues.
Thanks Erich
LikeLike
Hi Ryan,
interesting, and thanks for letting me know.
Erich
LikeLike
A great series of articles! I made it all the way through to installing the processor expert, but when loading the PE plug-in I hit a snag. I am using all the latest loads, so maybe I should go back to the versions you were using…here is the error I get from the Add-In Manager:
An error occurred while installing the items
session context was:(profile=epp.package.cpp, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null –> [R]com.freescale.processorexpert.standalone_root 10.4.0, action=com.freescale.updater.customactions.actions.FreescaleInstall).
org/eclipse/core/runtime/adaptor/LocationManager
org/eclipse/core/runtime/adaptor/LocationManager
short of starting over, any ideas?
LikeLike
Hi William,
thanks 🙂
Have you downloaded DriverSuite_10.4_Install_into_Eclipse_3.7_4.2? And then extracted it?
And then installed first com.freescale.eclipse3.7-4.2.updater.custom.updatesite.zip?
I think you missed that step (installing the updater.custom.updatesite one?
Erich
LikeLike
Thanks Erich,
No, I made that mistake earlier (tried to install PE before the freescale.eclipse), but this immediately threw an error. The PE install will work until about 70% complete, then it barfs. In the DriverSuite_10.4_Install_into_Eclipse_3.7_4.2 folder there is a file called PExDrv_10.4_Release_Notes.pdf which is a more detailed explanation on top of your directions. I followed this exactly. I was wondering if there may be an issue of 32-bit versus 64-bit. I installed the JRE runtime/Eclipse with 64-bit versions as I am running Win7. As this is a first time install, I am scratching my head a bit!.
LikeLike
Hmm, I’m wondering if your first mistake (not to install that custom update) might have leave some garbage behind? As another point: are you using Eclipes Kepler (and *NOT* Luna)? Luna is not supported yet. 32bit vs 64bit should not be an issue, I’m using Windows 7 64bit too.
This is what ‘jave -version’ gives on my machine:
java version “1.7.0_67”
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
LikeLike
and there be the problem. I just went to the latest release and picked up Luna! Oh well, time to uninstall/reinstall! Thanks for all the help…
LikeLike
oh well, it looks I should have made that clear in the posts :-(. When I wrote the articles, LUNA was not availble yet, and I was running myself into that issue. I have now added a note (in red font) about to use Eclipse Kepler with Processor Expert 10.4 until Luna is supposed to be supported in 10.5.
Sorry that I made it not that clear…
LikeLike
no problem at all, glad to have run into this issue, so others benefit; as Eclipse download looks like Luna is the latest release, I would not be the only one to fall into this trap. Hopefully, Freescale will catch up to the Luna release soon. Thanks for all the help and the really cool articles…
LikeLike
Processor Expert 10.5 next year is supposed to support Luna.
LikeLike
A few comments state that PEx v10.5 will be released in 2015, which will work with Eclipse Luna (v4.4). Just wondering if anyone has any idea when in 2015 that will happen? Is there a beta or snapshot to try so I can use Luna ?
LikeLike
Pingback: Some notes on how to use FreeRTOS with a FRDM-KL25Z (almost) without Processor Expert | Robot Overlord
Pingback: USB with the TWR-K60F120M and TWR-K70F120M | MCU on Eclipse