The Bucket List


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 🙂

Happy Bucketing 🙂

92 thoughts on “The Bucket List

  1. 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.

    Like

  2. 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.

    Like

  3. 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

    Like

  4. 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

    Like

      • 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

        Like

  5. 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

    Like

  6. Pingback: Tutorial: FreeMASTER Visualization and Run-Time Debugging | MCU on Eclipse

  7. 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

    Like

  8. 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

    Like

  9. Pingback: FRDM with Arduino Ethernet Shield R3, Part 4: MinIni | MCU on Eclipse

  10. 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?

    Like

  11. 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

    Like

    • 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?

      Like

  12. 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.

    Like

  13. 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!

    Like

    • 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.

      Like

  14. 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?

    Like

    • 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.

      Like

  15. 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 🙂

    Like

  16. 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/

    Like

    • 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? 🙂

      Like

  17. 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

    Like

  18. I enjoyed you 5 posts on “5 Best Eclipse Plugins”

    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

    Like

  19. 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

    Like

    • 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

      Like

  20. 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

    Like

    • 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.

      Like

  21. Hey Erich.

    How about a blog post on the top 10 Eclipse plug-ins geared specifically for embedded C development?

    Cheers,
    Mark

    Like

  22. Hey Erich! How about a blog post on the top 10 Eclipse plug-ins geared specifically towards embedded C development?

    Cheers,
    Mark

    Like

  23. 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.

    Like

  24. 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,

    Like

    • 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

      Like

  25. 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.

    Like

    • 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?

      Like

      • 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!

        Like

        • 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?

          Like

      • 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.

        Like

  26. 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.

    Like

What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.