JumpStart C++ for Cortex’s built-in debugger now supports semihosting. Your firmware can now use printf calls for diagnostic output without tying up a serial port.
Most modern MCU have some kind of readout protection of the flash. Unfortunately, there’s only the minimal level of protection of your firmware IP. The TL;DR version is that serious crackers can etch the physical shielding off, and then read the flash content via microscope.
There are also exploits that crackers can use. Here’s a case study of how the STM32F0 MCU can be cracked via exploits https://www.aisec.fraunhofer.de/en/FirmwareProtection.html
What to do? Understand the risks and act accordingly. There is no one right answer, but there is a right answer for your situation.
We now support semihosting!
direct download link: https://imagecraft.com/pub/iccv9cortex_demo.exe
– IDE and JDB Debugger
Added Semihosting support. This redirects printf calls when
the program is under debugger control to the ADT’s
semihosting output window. See help file for detail.
Enabled support for USB licensing dongle. Once the driver
is installed, the IDE will recognize the dongle license
automatically whenever it is plugged in.
NOTE: Win8/Win10 users may need to install the driver
using the “unsigned driver install hack” (do a web search).
A few years ago, we updated our website https://imagecraft.com with a modern CMS based system. It’s been working great, allowing us to add new products and other content easily. At the same time, we also tried different blogging and user communication platforms.
Based on what we learned, we are blogging again using WordPress at https://imagecraft.com/blog/ and restarting mailing lists, but now using a current platform from groups.io. As we start this migration, you might get multiple invite messages. Apology in advance for any duplication.
All the old yahoogroups data, including files and messages, will be available! (groups.io is founded by the same person that wrote the original yahoogroups mailing list software) You can access messages using the web and or email interface, use hashtags, etc. with lots of customization possible. The invite message will contain the different email addresses to use for sending messages, administrative commands etc.
See https://imagecraft.com/get-news-and-updates for the complete listing.
By embracing GCC in JumpStart C++ for Cortex, we have gained access to all the open source stacks such as TCP/IP, USB etc. that are incredibly valuable to customers writing complex firmware. On the other hand, we have lost something in the exchange. Primarily, GCC is NOT the world’s most user friendly piece of software.
For example, users of our home-grown V8 JumpStart C for Cortex-M are used to helpful feedback, such as seeing this message at the end of a Build:ROM 4% full. 17588 out of 524288 bytes used (does not include absolute areas).
RAM 2028 bytes used (does not include stack usage).
NOTE: Output file ".\Uart-test.bin" start address: 0x8000000
At a glance, this tells you how much memory is being used, and how much is left. This information is very important in both the prototyping stage, where the developers can use it to select the MCU with the most appropriate memory size, but also in the development stage, to ensure that the firmware will fit in the selected MCU. Unfortunately, this information is not readily available from a GCC compile.
Losing this sort of feedback would be a step backward, if not remedied. Therefore, in the 9.04.00 release, we have added a simple utility and post-command to generate something like this:
ELF file output size
Code size: 102468 bytes starting at 0x080001D0
SRAM data: 28016 bytes starting at 0x20000000
Heap and Stack: 5120 bytes heap starts 0x20006D70 stack starts 0x20008170
(Point of clarification: the two examples above are not from the same source files, so the memory uses are clearly different.)
The information is displayed differently with the GCC-based version, and currently we do not have the percentage-used available, but we expect to add those enhancements in future releases. On the other hand, this contains information that was not available under the previous compiler so indeed it is already even more useful.
This may seem like just a little thing, but it is very valuable in embedded firmware development. As we embrace open source software, we are committed to making it easier to use and more friendly in its operation. This is just one of the first steps.
Welcome (back) to the new ImageCraft blog. In 2014/2015, we did a major site redesign using modern CMS technology. Along with it, we switched to a couple different blogging platforms. However, after a few years, our conclusion is that nothing beats the old standby WordPress for blogging, so we are resurrecting and updating the old WP site and here we are!
We will migrate some of the useful blog articles from the other sites back to here in due times. Meanwhile, a lot of exciting things have happened in the last few years. Grab a cup of tea or coffee, and browse around out site.
Our Cortex compiler now supports __inline keyword, CMSIS V3 and now includes a port of FreeRTOS for the STM32. Check out our fully functional 45 day demo.
The very first C compiler available “in the wild” written by Dennis Ritchie (“dmr”) is now on Github. Could be interesting to port it to compile under a modern compiler.