Eclipse and CodeWarrior for MCU10 come with a wealth of functionality. But there is more out there: I can install more plugins from the eclipse market place. The possibilities are endless! Here are the five plugins I always add to my base installation, starting with rank #5: WickedShell. The plugin is installed from http://www.wickedshell.net/updatesite.
My post in “An error occurred…”: Applied Debugging Rules gives some hints about how to isolate and solve some debugging problems. But here is a case where the tips did not help: I had this dialog with “Failed to resume target process” for my HCS08 project again:
It is using the same concept as the FreeRTOS Trace Probe: the trace hooks provided by the FreeRTOS API. But instead streaming it off the target as with the FreeRTOS Trace probe, it is using a RAM buffer on the device. The real cool thing is: the Percepio trace viewer is very, very nice!
Processor Expert in MCU10 generates a lot of files for me. But sometimes I need to tweak things a bit. I change the generated sources to fit my needs, and then I want to prevent that my changes get overwritten by the next code generation.
First, I need to know which files are generated: the information in “Dissection of MCU10 Projects” helps me to identify them. But how can I prevent code generation for each component? Or for other generated files? Or how to completely disable code generation?
Inheriting Processor Expert components with CDE and the Component Wizard is easy. But sometimes it is tricky and requires some tweaking. Components should be easily accessible (see CDE: Show Inherited Methods), and names should make sense. And here is a challenge: changing the name for inherited components:
Using Processor Expert components makes my development faster and easier. And when I have a useful piece of software I want to distribute or use in another project, I transform it into a Processor Expert component. But recently I noticed a strange thing with my components: the inherited components did not show the methods and events?
One of the greatest features in Eclipse is the Indexer: it parses automatically my code in the background. It creates all the needed information so I can browse around my sources. I can use the Open Declaration context menu in the source code:
Using an RTOS is an excellent thing: it provides services and allows to scale my application. But it adds complexity. With many tasks, queues and semaphores it is hard to have an overview what is going on. To get visibility, Martin Bucher has developed in a bachelor diploma work the FreeRTOS Trace Probe. Continue reading →
I’m using Subversion to keep track of changes in my eclipse MCU10 projects. That allows me to get back in time without the need to make copies of my project. But sometimes I do need to make a copy of my project: because I want to use a project as a base and then do something different with it. To make a copy of a project is simple, but requires some more steps if I’m using Target Tasks. Here is how I do this… Continue reading →
Creating an eclipse managed make project with MCU10 is easy: Starting the wizard with File > New > Bareboard Project and after a few clicks I have a project. I don’t need to worry about all the files in the project structure, until……..well, until I need to put the files into a VCS.
I had a PREN student showing up into my office. He wanted to choose a microcontroller for that project. One requirement put on the table was “it needs USB”. Well, I asked why USB is required. I was not surprised by the answer: “to use USB instead of RS-232″. Wow. So what he really wanted was USB CDC (Communication Device Class). Yep. Most notebooks today have no serial COM port (see “Processor Expert Configurations“). But because “USB is serial” does not mean “USB CDC is simple”. Nope. USB is not simple. But it can be with Processor Expert.
As outlined in Quickstart for Processor Expert in Eclipse, it is easy to create a new Processor Expert project. There are three shared files which are maintained by Processor Expert. At the same time I need to change them with my code. So how does this work, and how can I configure it to my needs?