Hi Richard. Hi all. I want to open a discussion about debugging application with freertos, using a IDE. First, after discussion in this forum, between me, other developers and Richard, Richard added Trace Hook Macros in freertos kernel. So, now it’s possible to add some code for "trace kernel events and gathering information about tasks and queue". I’m thinking how build some powerful code for these macros. Moreover, i’m trying to use eclipse, and it seems a very powerful IDE with allows to add features developing plugin. My idea: 1. developing general purpose Trace Hook Macros with these features: ______Trace all kernel events, and collect them in some well organized structure ______Save information about taks and queue status, during creation and delete operation 2. developing plugin for eclipse, which can gathering all previous information, during dubug operation, i.e. when application is halted ______Plugin should be able to manage collected data, doing works like shows task stacks info (current SP and max usage), queue info (element pending), cpu task usage in timing sequence (i.e., using some GUI), heap memory usage with its fragmentation. 3. the main idea is: simple hook functions, which adds small cpu usage to real application, and small additional ram for storing information AND very complex eclipse plugin, which has infinite resources, running on PC host Now, we can start to discuss here: 1. if this idea could be generally useful for a lot of developers 2. how develop trace hooks macros 3. how develop eclipse plugin I can give a contribution for point 1 and point 2, but i have no experience and knowledge with eclipse plugin developing. I know that Richard wants a freertos portable using different ide and compiler, but i think that it could be important have a powerful OPENSOURCE toolchain Eclipse-FreeRTOS-GNU_Compiler_Debugger (it’s my dream….) highly integrated (for example, before my experience with freertos, i tried MicriumRTOS integrated in IAR, using a plugin for debugging rtos resources when application is running on microcontroller…) ok… i hope i was clear…. sorry for my dummy English! :O) Bye, Piero
I already have (and have had for some time) a neat little task viewer and queue viewer plug-in for eclipse. Simple but works really nicely. There is no tracing in there yet though. I am yet to decide how this should be released. Greater functionality over time will be a bonus. Regards.
No idea form other people about this? Bye piero
Hi to all, Eclipse is a very powerful tool and Eclipse&FreeRTOS are a greatest opportunity for the embedded world. I use Eclipse today for all my applications based on Cortex M3 and ARM966 core. The FreeRTOS demo applications based on Eclipse use the Standard Build System and the developer has to manage the makefile by himself. It is a flexible and powerful tool, but should be some developer are not familiar with makefile. Now I’m working to an Eclipse plug-in to uses the Managed Build System Extensibility feature in order to have an automatic makefile management for FreeRTOS based project. For sure I don’t have a strong know-how in Eclipse plug-in development, but there is a lot of documentation, so I think it should be not too difficult. It should be very nice to start an open initiative that aims to develop an open development environment for embedded application based on Eclipse and FreeRTOS. Richard could manage this project. Are there some developers interested into such open project? Regards, Stefano
IMHO, this can be a hot prospect. Caglar
Hi all! HERE I’M!!!!! i want to be a developer fro this open project! I don’t have know-how in Eclipse plug-in development, but i can start with some work on freertos side, thinking and developing trace hooks functions. We need to understand how eclipse plug-in can access ram data in embedded device connected (for example) using openOCD. I think could be usefull starting posting here a list of links about eclipse plug-in developing documentation Bye, Piero
[please check this list and add/remove other links] http://www.eclipse.org/documentation/ http://help.eclipse.org/ganymede/index.jsp http://www.developer.com/lang/article.php/3552481 http://www.eclipsepluginsite.com/ http://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.html http://www.eclipse.org/articles/Article-Your%20First%20Plug-in/YourFirstPlugin.html
I think this is a very good idea – something I have been putting some thought into already. I would be happy to host a repository for this. As you know I have been working with displaying FreeRTOS.org debug information in Eclipse, but this is quite different to learning about the build system. One of the problems in Eclipse is the Project Explorer and Navigator are not very good at displaying files from locations outside of the project directory. In FreeRTOS.org I do this by first generating a manual makefile, then adding in ‘linked resources’ to get the files to display in the Navigator. It is not user friendly. A replacement Navigator that was linked to the makefile would be excellent. Changing things in the navigator would automatically change things in the makefile (add a file to the build, for example). Opening a makefile would automatically show the files and build options in this new Navigator window. I think this could be harder than it sounds due to the way Eclipse references file. It might be that opening a makefile causes the linked resources to be generated automatically – this would be a good start. Regards.
I have been using eclipse 3.3.2 and avr-eclipse for some time now (managed builds), and it works pretty well (haven’t really worked with the debugger though).. using the "link folder" feature works quite good (FreeRTOS is located outside my project folder).. I don’t know if this is what you referred to by "linked resources", Richard? Having the navigator tie into the makefile would maybe work for unmanaged builds, but what about managed ones? cheers..
> I have been using eclipse 3.3.2 and avr-eclipse for some time > now (managed builds), and it works pretty well (haven’t > really worked with the debugger though).. Does avr-eclipse have any extensions to the build system? Or does it just provide AVR specific windows, such as register viewers? > using the "link folder" feature works quite good (FreeRTOS is > located outside my project folder).. I don’t know if this is > what you referred to by "linked resources", Richard? I think these must be the same thing. Maybe it depends on the Eclipse version what it is called. When using managed build, how do you select which files to build? The FreeRTOS/source/portable directory contains a port.c file for every port, so you must have to tell Eclipse somehow which to use. Also in the Navigator you get the entire directory structure, rather than just the files you are building. This is what I would like to fix. > Having the navigator tie into the makefile would maybe work > for unmanaged builds, but what about managed ones? This is just a concept: The two build methods could remain the same, managed build and standard makefile build. The user can choose between the two just as now. When the user chooses standard makefile build they then have the option of opening another window – call it "Intelligent Navigator" for now. This new window parses the makefile to decide which files are to be included in the build and shows a tree view of only those files. The opposite also works, if you select "add file to project" in this window you get to navigate the file system and select new files. When you select a new file it is automatically added to the makefile. The build process itself remains unchanged – Eclipse just uses the makefile to build to project. Regards.
avr-eclipse has both a window (list) of supported MCU’s and a device specific windows that shows registers, interrupts, etc.. but that is just the icing.. it integrates into the build system and adds avr-gcc tool chain stuff so no fiddling with makefiles is needed.. there is also avrdude support… concerning linked folders, there is a filtering feature, so i just select all the ports i don’t need (e.g. all except ATMega323) and so only the files for the needed port will get included in the build process (they will all still be shown in the C/C++ projects tree under the link, though, but all unneeded files will show as "excluded from build", which you can do manually also by right clicking and selecting "exclude from build").. hope this makes sense…
btw, I rarely use the Eclipse Navigator, because it’s a file system explorer rather than a project explorer.. I use "C/C++ Projects" for C/C++ and "Package Explorer" for java development…
just want to mention CodeBlocks as an alternative nice editor with plugin environment works nice for embedded (with some problems)
Hi to all, about the managed build system I’m discovering all the features it export to a plug-in maker looking at this document: http://help.eclipse.org/help33/topic/org.eclipse.cdt.doc.isv/guide/mbs/extensibilityGuide/Managed_Build_Extensibility.html I’m working starting from the tutorial included in that article. My opinion is that by extending the managed build system we have full control on each step of the build process: which files to include in the managed makefile; where the files are located; the compiler options used for each file; what compiler to use; etc. Richard, for sure we have to provide both the project type: managed and standard. Today I’m sure to be able to develop a managed build system for FreeRTOS based projects, but what I can’t provide to this community now is a time-line! :-( Another point I’d like to discuss in this forum is the whole picture of "The Open Development Environment" based on Eclipse and FreeRTOS. The managed build system is only one component like the plug-in made by Richard. How we image the whole architecture? What kind of tools (plug-in) we need? I think that a clear common idea helps to collect the free effort of many single (and enthusiastic) developer in a more effective manner. The target is to have a better developer environment/framework to improve the developer experience. I hope to have written my opinion in clear enough way. Best regard, Stefano
I’m not sure that a build system extension is needed for building FreeRTOS applications.. It works perfectly fine as it already is.. also, a dedicated FreeRTOS build extension may clash with platform specific tool chains (avr, arm, etc)… cheers
Ciao, it’s ok. It should be that a build system extension is not the most important tool need at this point. Can I ask you what kind of plug-in is useful, in your opinion, to improve the developer experience using Eclipse+FreeRTOS? So I could focus my effort in another direction. Regards, Stefano
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.