There are so many things I have in my mind to explore in this tech blog. Here is my bucket list, not in priority order:
Still on my list (no priority order):
- How to use the visualization graph, and how to use trace triggers? How to use Data Visualization?
- S12 in Eclipse: The S12 tool chain is available only in classic CodeWarrior. How to use S12 in Eclipse?
- Shell the Eclipse IDE: How create projects from the (DOS) shell with Eclipse? How to build and debug for test automation?
- Processor Expert: How to use templates and interfaces in component development? What is the meaning of grayed out methods?
- sing LLVM/clang for ARM/Kinetis
- Construct a game using NeoPixels
Done đ
VCS: How to use VCS in Eclipse? How to install the plugin, first steps to use it with a version control system, pros and cons using a VCS plugin vs. standalone tools.==> https://mcuoneclipse.com/2018/09/30/tutorial-git-with-eclipse/, https://mcuoneclipse.com/2020/10/04/import-projects-from-git-into-eclipse/Make Files: how to write make files with automatic dependency calculation? How to automatically add files in a folder?==> https://mcuoneclipse.com/2017/07/22/tutorial-makefile-projects-with-eclipse/OneWire Bus: adding/using a one-wire device as DS18B20(http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf) ==> McuOnEclipse Components: 06-May-2017 ReleaseSoftware Analysis and Trace on Kinetis: How to show messages via ITM Stimulus port by using ETM in ARM Cortex MCU. ==> Tutorial: Getting ETM Instruction Trace with NXP Kinetis ARM Cortex-M4FBuilding aquadrocopter:Kinetis Drone: First Test Flights
Using Ethernet (e.g. on FRDM-K64F)==> Tutorial: lwip with FreeRTOS and the Freescale FRDM-K64F BoardHow to useconditional breakpoints
==> Watchpoints: Data Breakpoints
Creating and using a CRC at runtime to verify the application image is ok.
==> CRC Checksum Generation with âSRecordâ Tools for GNU and EclipseTutorial for FreeRTOS on Kinetis:I have atutorial for JM60, getting a lot of requests to do the same for Kinetis.
==> Tutorial: Freedom with FreeRTOS and Kinetis-LDebugging with Attach and Connect: How to debug an existing binary on the target.
==> Hot-Sync: Attach, Connect & DownloadSoftware Analysis: How to use Trace in Eclipse
==> Debugging ARM Cortex-M0+ Hard Fault with MTB Trace.Live View: how to use the ability to read/write target memory while the target is running?
==> Live View for Variables and MemoryStack Size Calculation: how to do it in the linker, how at run-time, preferably without an RTOS, just bare board?
==> GNU Static Stack Usage AnalysisSymbolics: how to add dynamically symbols while debugging?
==> Adding Symbols to the CodeWarrior DebuggerChanges in Preferences: what are the most useful changes in my workspace preferences?
==> Top 10 Customization of Eclipse SettingsKL25Z Freedom Board: how to use existing shields? I have an SD card adapter I would like to use. How to support all parts on the board with Processor Expert?
==> Processor Expert Maxim I2C RTC for the Arduino Data Logger Shield and Arduino Data-Logger Shield with the FRDM-KL25Z BoardColdFire Plus with Processor Expert: these devices use LDD (like Kinetis). Need to explore this more and adopt my Processor Expert components for it.
==> There is a Time and Date for both WorldsStatic analysis with gcc: with the move to gcc for Kinetis, a broad area of tools are available.
==> Code Coverage for Embedded Target with Eclipse, gcc and gcov.MCU10.3 and Code Analysis: that looks like an interesting thing.
==> Free Static Code Analysis with EclipseADC with Kinetis
==> Tutorial: ADC with the Freedom BoardDAC with Kinetis
==> DAC Example with the Freedom Board
USB Host mode with the Freedom Board(MSD
==> USB MSD Host for the Freedom Board, USB MSD Host for the FRDM-K20D50M BoardHow to use USB for keyboard (HID)
==> USB HID Keyboard for FRDM-KL25Z
How to use USB for mouse (HID)
==> Using the FRDM-KL25Z as a USB Mouse Device).Input Capture with Freedom board: trigger to read from a capture register/free running counter, reading ticks from the capture register.
==> Tutorial: Ultrasonic Ranging with the Freedom BoardFreeMaster: there is a FreeMaster Processor Expert component, how to use/connect to FreeMaster?
==> Tutorial: FreeMASTER Visualization and Run-Time DebuggingUsing the 32 kHz Crystal on the FRDM-KL05Z for the RTC.
==> search NXP. com for application note DOC-94734Using the FRDM board with Ethernet/WiFi:==> Tutorial: Web Server with the ESP8266 WiFi Module
Happy Bucketing đ
Nice blog, Erich!
For SVN have you tried http://www.eclipse.org/subversive/ ?
LikeLike
Hi Sidharth,
thanks. And yes, I’m using the Subversive plugin every day, and it is a great add-on to CodeWarrior and Eclipse :-).
Erich
LikeLike
Cool. Sounds like you can take SVN off your bucket list then đ
LikeLike
Not really. I have received many requests to add an article about it: how to install the plugin, how to use it, pros and cons.
LikeLike
Good job man! Keep working. Try to put in list how to show messages via ITM Stimulus port by using ETM in ARM Cortex MCU. Such a plugin is only available DS5 Professional from ARM which is quite expensive.
LikeLike
Thanks đ I agree, that would be a good topic. I know that CodeWarrior for MCU is providing a trace (software analysis) functionality, but I have not covered that topic yet. I’ll add this and ETM/ITM Stimulus to my bucket list.
LikeLike
đ i have write a little code which shows via ITM printf messages, see page
http://www.segger.com
for more details.
LikeLike
Thanks for that link, very useful!
LikeLike
regarding makefiles – check out https://github.com/dmoulding/boilermake
i used it to create multiple-architecture, cross-compiling makefiles for the OMAP processor that ran within Eclipse (so I could compile a project with bits of x86, bits of ARM, and bits of TI DSP C)… hacked his scripts a bit, and I see that now the author added some of my hacks allowing cross compilation (e.g. TGT_CXXFLAGS, though he missed TGT_AR).
it does the dependencies automatically and is pretty great in traversing a hierarchy of makefiles as well. I had auditioned a few and considered writing my own, this one was my favorite.
LikeLike
Hi Marc,
thanks for the link to boilermake. I think I need to check this out if it can handle assembly files too (it states C/C++), because typically like with an RTOS there can be one or two assembly files to build.
LikeLike
I don’t think assembly support would be a problem but you might need to extend the makefiles.
LikeLike
Hi Erich
The blog on the Burner was verry helpful. Is there anyway to get CW 10.4 to download a binary file from Burner.exe? I can generate the file but can’t see how to load it over the PE multi-link. I know the binary can be used for external programmers, but I only have the multi-link for the Kinetis.
Thanks
Robert
LikeLike
Hi Robert,
there is the ‘flash file to target’ functionality. With it, you can program any file (.elf, .s19, .bin) to the device with a connection (e.g. Multilink).
https://mcuoneclipse.com/2012/04/30/flashing-with-a-button-and-a-magic-wand/
Is this what you need?
LikeLike
Hello,
I have one question : In my project MQX_Lite on code warior 10.4, I use also the Processor Expert. But the component Inspector it’s writen “Cpu (disable)”.
What shall I do the enable it ?
thanks in advance
FRS
LikeLike
Hello,
can you explain this a little bit more? Or post a screenshot? Otherwise this might be a good question for the Freescale forum?
LikeLike
Hi,
Thanks for quick answering. But I luckly have found alone the solution.
I had simply to go to the Projet panel, and then set the right target I’m using at moment. Then the PE will be active and saveable.
Thanks for quick answer, and if someone have the same problem, I can try to follow the same way as me.
Be
FRS
LikeLike
Hi FRS,
good to hear that things are ok now.
Happy MQXing đ
LikeLike
link to 1-wire public domain SDK: http://www.maximintegrated.com/products/ibutton/software/1wire/wirekit.cfm
LikeLike
Hi Marc,
thanks for the link!
LikeLike
Hi, I have created a library for KL15 in Code Warrior 10.4 and I want to use it in a new project… but I can not use the library! I added the library path in Properties>C Build>Settings>GCC Linker>Library search path, and the name of library in Properties>C Build>Settings>GCC Linker>Libraryies. Have any ideas on how to fix it? Thanks, Marco
LikeLike
Hi Marco,
have you seen https://mcuoneclipse.com/2013/02/12/creating-and-using-libraries-with-arm-gcc-and-eclipse/?
Maybe you used the library name with ‘lib’ and ‘.a’? See above post: do not specify the prefix and extension in the settings.
I hope this helps.
LikeLike
Thanks!!! I was not able to find this post before!
LikeLike
Pingback: Tutorial: FreeMASTER Visualization and Run-Time Debugging | MCU on Eclipse
Hi,
I’ve been using your FreeRTOS bean with a 9S12XDP512 uC and the code works very well in the banked memory mode. I’m curious if the bean is aware of and able to use the other RAM pages and not just the banked flash space.
Thanks Mark
LikeLike
Hi Mark,
good to hear the usage of FreeRTOS for the DP512, I have not used that core for a while. There is no special things in FreeRTOS for S12 for now as far as I can tell for code banking: the linker will distribute the functions across pages. I guess you are interested mostly in placing the heap into special memory bank? I have added something like this for Kinetis (https://mcuoneclipse.com/2013/07/10/freertos-heap-with-segmented-kinetis-k-sram/), but not for S12.
LikeLike
Hi Mark
I’m just starting a project using Processor Expert. Its going fairly well but I would like to create a new component that will create a Interrupt Handler wrapper for the Software Interrupt (SWI). Your tutorial on creating a new component is informative, but I’m missing the link to add a new IRQ vector.
Any suggestions or links to follow?
Thanks
Terry
LikeLike
Hi Terry,
is this for Kinetis/ARM? You might have a look at the nRF24L01 component I have created on GitHub (https://github.com/ErichStyger/McuOnEclipse_PEx/tree/master/Beans/nRF24L01): this uses the ExtInt interrupt.
Otherwise for ARM you could directly hook into the the SWI interrupt vector. Have a look at my FreeRTOS (https://github.com/ErichStyger/McuOnEclipse_PEx/tree/master/Beans/FreeRTOS) component where I directly allocate the software interrupt vector. And you could use this example to if you do this for other cores: in the FreeRTOS I need to hook into the SWI too.
I hope this helps.
LikeLike
suggestion for your bucket list: http://www.compuphase.com/minini.htm
I got it working with your FATFs PE component with very little modification or effort. Now I can parse windoze-like ini files and use them for setups etc.
LikeLike
Hi Marc,
thanks for that link. That’s indeed interesting, and I already have a project where I would need something like this. I’ll have a look, and maybe I create a component out of it?
LikeLike
Hi Marc,
many thanks for your suggestion. I really like the minINI, and have created a component for it:
https://mcuoneclipse.com/2014/04/26/frdm-with-arduino-ethernet-shield-r3-part-4-minini/
Erich
LikeLike
Pingback: FRDM with Arduino Ethernet Shield R3, Part 4: MinIni | MCU on Eclipse
Is there any example with serial bootloader and 9s08 microcontroller processor expert?
LikeLike
No, I have this not at hand. But it should be possible to adopt the example I have created for the FRDM board, as with Processor Expert things can be easily ported?
LikeLike
Hi, I made a One-wire and DS18B20 components, they work fine, but there are some warnings that I don’t know how to solve them:
Description Resource Path Location Type
Generator: Warning: at line 2: {{DEVELOPMENT}} Global symbol is deprecated: ProjectModule (file: Drivers\sw\_PE_ProjectInfo.drv) SensorTest _PE_ProjectInfo Processor Expert Problem
Description Resource Path Location Type
Generator: Warning: at line 85: {{DEVELOPMENT}} Target section is not selected, writing to error output (file: Drivers\Kinetis\GlobalSymbolsDefinition.prg) SensorTest Main Processor Expert Problem
Description Resource Path Location Type
Warning: at line 54: {{DEVELOPMENT}} The symbol “IsPinRoutable_ClockGate” is not described in the header/comment and is not undefined at the end of included file. (file: Drivers\Kinetis\IsPinRoutable.prg) SensorTest DQ1 Processor Expert Problem
If you need, I could send you the project, would you like help me please?
LikeLike
I was checking anothers projects and I see the same warnings, so I believe that these warnings doesn’t have importance.
I almost finish the components, only need to do the documentation. but I don’t know where I can put the function model, like: void Init(void), to see it on the Components View.
Sorry about my english, its a little poor.
LikeLike
Hi Omar,
yes, some warnings only show up in the debug mode. Usually I have them fixed in my components, but I don’t have debug mode enabled all the time.
In order to have functions showing up in the list of methods, they need to be in the list of methods.
Erich
LikeLike
Hi Omar,
yes, send me that project/component, and I have a look. From the messages alone I cannot tell what the problem is.
Erich
LikeLike
Hi, how I send you the project?
LikeLike
Best in zipped format, with all the files needed. You find my email address in the About page of this blog.
Thanks!
Erich
LikeLike
Hi, I try 2 times send you the project, but the mail respond me back with a “Delivery Status Notification (Failure)â”, Is the email erich dot styger at hslu.ch ?
LikeLike
Yes, that’s the correct one. Not sure why it is failing. Maybe you can use this one: erich dot styger at steinerberg dot com
LikeLike
Hey Eric some items for your bucket list – or perhaps creating a collaboration method to do the following.
– 1) Transmitting a temperature reading to the cloud REST post http over ethernet from Frdm-K64
– 2) On FRDM-K64 create a web server accessible over ethernet displaying temperature reading
– 3) On Frdm-K64 create a web server accessible over USB/WiFi displaying temperature reading and local wiFi networks with ability to enter an SSID and destination cloud to push temperature reading to as in 1) but over WiFi
LikeLike
All good ideas and suggestions!
LikeLike
i´m trying to use the FRDM-K64F board with Ethernet without succes. have you done anything with that?
LikeLike
Hi Leo,
no, I have not done that, simply not enough time đŚ
But you might check the uTasker project: http://www.utasker.com/
Erich
LikeLike
Would it be possible to write a tutorial on how to create own display driver compatible with Gdisplay component?
LikeLike
Hi Ondrey,
‘possible’ yes, but since mid of Jan I’m so swamped with too many tasks and things and emergencies that I cannot promise anything, at least not in the near/mid term. And my backlog of things is bigger than ever :-(. So I suggest that you have a look at the existing drivers and learn from them?
LikeLike
Thanks for answer. I will try to explore by myself. Good luck with your tasks:)
LikeLike
Any plans to add FreeRTOS+TCP & FreeRTOS+FAT to PE? And an Ethernet driver for K64 on FRDM-K64 if it doesn’t exist?
And thanks for all the incredible work you have done so far.
LikeLike
Plans yes, but for sure for the next few weeks no bandwidth to do this. I wish my days would have more than 24h đŚ
LikeLike
Have you seen this site for K64 (and others) TCP/IP stack?
http://fnet.sourceforge.net/
LikeLike
Yes, I’m aware of the FNET for a long time. But never had the time to use it đŚ
LikeLike
Hi Erich,
I would love to see how the GPIO toggling performance could be increased in a convineant way. Stepping through the assembly introduced by GPIO_DRV_WritePinOutput(PIN1,0) surprises me very much.
Thank you!
LikeLike
Hi Peter,
Clearly, the Kinetis SDK is not something for the highest performance. Because it adds all the layers in between, with function calls. So you could either do directly from your application the pin writing (access directly the registers). Or you could change the SDK code (e.g. removing the asserts, do the inlining yourself). As always, you need to balance portability, easy-to-re-use, nice software API’s vs. speed and code size.
I hope this helps.
LikeLike
Hi Erich,
currently, I’m doing some benchmarking on the flash execution performance of several microcontrollers.
The kinetis k65 compares very bad in contrast to an stm32f429 both clocked at 180 MHz and all possible caching options enabled. Meaning it degrades to ~60% performance due to flash wait states.
have you done similar research? are you aware of any tricks in the kinetis k65/k66 family which could speed up execution from internal flash?
LikeLike
Hi Petr,
really interesting data, indeed. And no, I have not done such an analysis myself. I have to ask around at the universitiy, but I believe there is no-one I would now who did such a comparision.
LikeLike
Hi Erich,
We already discussed that last week. MSD Device Mode for K64F would be a good tutorial. Using a FRDM-K64F and his K64 USB as a MSD Device to appear as a mass storage device on a computer. Better with a SD card connected on FRDM and which is appearring on computer đ
LikeLike
Yes, I absolutely agree, that would be a GREAT project and tutorial. Only someone need to find time actually doing it…
LikeLike
With the new LPUART in silicon – it uses 16bit register access – just wondering if there could be a driver for it that works with the SHELL.
Also, how about a microPython task component- a basic version is done for the Teensy3.1 – initially target for FRDM-MK64F. On an STM32F405 (192Kram) footprint is apparently flash=75K & ram=8kb
http://docs.micropython.org/en/latest/
LikeLike
Good suggestions!
LPUART will work with the shell, if it is supported by the AsynchroSerial (but I have not checked it).
microPython: that looks really interesting, but not something I have envisioned for the near future (and I won’t have bandwidth anyway until the end of the semester I think). Any volunteers to take over that work? đ
LikeLike
I’m looking at porting the microPython in a FRDM-MK64F – if I get that done maybe some one else could do it as a component.?
LikeLike
Not sure what needs to be supported in that component. It is about having some files copied with a a few settings, then this should be rather easy to do.
LikeLike
Hi Erich,
I am interested in implementing multiple Kinetis device hardware designs. Though it would be excellent if there was a library or PE component for driving the Ezport for firmware upgrade of the slave MCU’s .
Would this be a worthwhile project?
Chad
LikeLike
Hi Chad,
I have not used Ezport, and to my knowledge it is not implemented on all devices. I was thinking about using the tinyK20 (https://mcuoneclipse.com/2015/06/17/tinyk20-new-board-with-micro-sd-card/) as a programmer: I could store the binary file on the SD card, and then program it with that board.
LikeLike
I enjoyed you 5 posts on “5 Best Eclipse Plugins”
https://mcuoneclipse.com/2012/04/02/5-best-eclipse-plugins-4-ehep/
I was wondering if from the time you posted to now, are there other eclipse plugins that you found useful/essential/important/greate to have on an eclipse workbench.
I thought I could maybe share a few I could add to that list.(may not be great sites, but hope this can be a start).
*GWT from google or SWT from eclipse
http://www.gwtproject.org/usingeclipse.html
*Findbugs
http://findbugs.sourceforge.net/manual/installing.html
*Checkstyle
http://eclipse-cs.sourceforge.net/#!/
Also a hard to find utility not mentioned much online/hard to find, still useful, and how to run it. I think you can create a batch file that runs the program and drag a file on the batch to open or called to run via eclipse. Like i said, not much info online, but great tool. Seen it works on mac, but never took the time yet to create batch file to test it on windows. (should work on windows too)
*SwingExplorer
LikeLike
Hi Anon,
thank you very much for that extended plugin and tool list. As I’m using C/C++ and not much Java, are these plugins available for C/C++ developers?
Erich
LikeLike
Hi Erich,
nice page. Very helpful. We are working with the FRDM-KL25Z board and it helps a lot.
Though I am wondering if you have ever tried to run the Kinetis-SDK-PEMicro toolchain in Linux. For some reason everything is working in Windows but we have troubles to flash the board with PEMicro in Ubuntu.
Best.
Gerhard
LikeLike
Hi Gerhard,
I have only used Linux sporadically in the past, not enough time to do the same on Linux. You might be best at reporting your Linux issues on the NXP forum or directly to P&E?
Erich
LikeLike
Hi Erich.
Other tutorial about how create a components was very good.
Explain how use a link components (not inherit), and other functions.
I have a lot of components codes that I was happy to port as processor expert component.
Thanks a lot
LikeLike
Hi Sergi,
linked components are not really different from inherited components: the difference is that with the linked component you can use one component by many other components (link to it). While the inherited component is ’embedded’ into the ‘master’ component. Other than that, it is exactly the same.
LikeLike
Hey Erich.
How about a blog post on the top 10 Eclipse plug-ins geared specifically for embedded C development?
Cheers,
Mark
LikeLike
Hey Erich! How about a blog post on the top 10 Eclipse plug-ins geared specifically towards embedded C development?
Cheers,
Mark
LikeLike
Hi Mark,
There is already something about this: https://mcuoneclipse.com/2012/06/25/5-best-eclipse-plugins-1-eclox-with-doxygen-graphviz-and-mscgen/
It is about 5 plugins, and a while back when I wrote it, but still stands đ
LikeLike
Hello Erich,
I very enjoy yours blog. I can give you some useful links about the Make Files dependencies on the list:
http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
http://wanderinghorse.net/computing/make/
Regards, Adam
LikeLike
Hi Adam,
thank you for these pointers, they are very useful!
I have added them to https://mcuoneclipse.com/2017/07/22/tutorial-makefile-projects-with-eclipse/
LikeLike
Erich,
What about adding FreeRTOS software timers to your list? It’s a very easy to use feature, but I know a lot of developers out there don’t even realize they exist.
LikeLike
Joe,
excellent idea, thanks for the suggestion!
(need to fine more time now….)
LikeLike
Hi Erich, what is the best approach to track down the watchdog timer reset. I mean, How could we find out where the application get stock that leads to watchdog timer not to be refreshed.
many thanks,
LikeLike
Here is what I do:
I have a ‘watchdog’ tasks which monitors all the other tasks and the system. This task ‘kicks the dog’ if everything is fine. If not, it will write a message (or stores it somewhere) which task or system part is not responding, and then lets the watchdog time out. That way I can know what was the reason. Jack Ganssle has an article around that topic too: http://www.ganssle.com/watchdogs.htm
I hope this helps,
Erich
LikeLike
Hi Erich, thanks for your blog, is very usefull, and I want to know if you have something with module sim800l, or any example with gsm module?
LikeLike
Thank you! I have worked with a GSM module, but that work is not public, so I cannot publish it, sorry!
LikeLike
Hi Erich, really thanks for your blog and articles. I’m starting using PC-Lint Plus on Codewarrior and MCUXpresso but all documentations and articles(here in this blog and on internet in general) refer to the previus verision PC-Lint. With this new version a lot of things are changed. I want to know if you have some experience with this new version and if in the future you can make and article similar to the previus you have done with previus release of PC-Lint.
Again many thanks for your blog.
LikeLike
Hi Marcello,
thank you, and yes, this is a really good idea. I have not used that ‘Plus’ version.
It seems that there is no upgrade possible from PC-lint so I have somehow to get the money to buy a new license. I checked the Gimpel web site, and there is no pricing information. Instead I have to submit a request for a quote?
LikeLike
On the new web site of pc lint plus there is an evaluate section in which you can compile a form and you can receive the 30-day trial version. I used it for try on Codewarrior and MCUXpresso.
Thanks for the fast reply!
LikeLike
Yes, I saw that, but I have to wait for now. First I would have to know the price point so I can make a realistic budget request. As for how using it: I would think that it could be used the same way as the ‘classic’ PC-lint too, at least I have not found any indication that it would be different?
LikeLike
Hello Erich,
Like many devs, you use git for source control.
But have you tried Mercurial ? I prefer it over git, especially for its ease of use. Also TortoiseHg is a very well designed GUI for Mercurial : https://www.mercurial-scm.org/
LikeLiked by 1 person
I looked at Mercurial. It looks simpler to use, but I have found git more powerful and versatile. And maybe I’m wrong, but I think git is much broader used than Mercurial.
LikeLike
You’re right, git is much more used than Mercurial. I guess this is because it’s the official Linux SCM.
Simpler to use does not mean less powerful and/or less versatile. In additions to its base features, Mercurial has extensions for every use case. Most of them are packed with TortoiseHg.
LikeLike
Hello Erich, I’ve noticed that llvm/clang is on your bucket list. Don’t know if you’ve ever seen this project on github: https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm. Could make life easier.
My own efforts building the toolchain can be found here: https://github.com/rgrr/playground/tree/main/llvm-games/build-llvm. These are without nano/picolib and compiler-rt. For our projects those components are taken from an arm-none-eabi-gcc toolchain.
LikeLike
Hi Hardy,
thank you for that link, had not see that one yet, thanks for sharing. Now I only need some time for this….
LikeLike