ImageCraft

ImageCraft "C for Everyone"
FASTER and MORE FEATURES than GCC / ECLIPSE
1/10th THE COST of IAR & KEIL (from $249)
Small Silicon Valley software co. :)

09/19/2019

In the first decade after C++ was released, there were two frequent statements made about the new programming language, especially in the C community: C allows you to shoot your foot off, but C++ allows you to shoot the whole leg off. C++ is "just an object-oriented language".

New blog post (Flatten the Learning Curve for Programming STM32 MCUs) has been published https://imagecraft.com/blog/201...
06/07/2019

New blog post (Flatten the Learning Curve for Programming STM32 MCUs) has been published https://imagecraft.com/blog/2019/06/flatten-the-learning-curve-for-programming-stm32-mcus/. (Excerpt:)
One of the most difficult issues in moving to Cortex-M MCU development from an 8-bit ecosystem is the complexity of the I/O peripherals. The Cortex-M peripherals are more capable and more flexible, but are also more difficult to use and write programs for. To help users gain proficiency as

One of the most difficult issues in moving to Cortex-M MCU development from an 8-bit ecosystem is the complexity of the I/O peripherals. The Cortex-M peripherals are more capable and more flexible, b

New blog post (Your chance to JUMPSTART Cortex MCU development) has been published https://imagecraft.com/blog/2019/05/y...
05/29/2019

New blog post (Your chance to JUMPSTART Cortex MCU development) has been published https://imagecraft.com/blog/2019/05/your-chance-to-jumpstart-cortex-mcu-development/. (Excerpt:)
Are you interested in upgrading your ease-and-speed-of-programming options?

Are you still working with 8-bit MCUs and wish to take advantage of the more powerful and even lower cost Cortex-M MCU, but are worried about making the jump? Are you working with slow Eclipse-based IDE or ST CubeMX

Are you interested in upgrading your ease-and-speed-of-programming options?Are you still working with 8-bit MCUs and wish to take advantage of the more powerful and even lower cost Cortex-M MCU,

Your chance to JUMPSTART Cortex MCU development http://p0.vresp.com/j0qJaF
05/29/2019

Your chance to JUMPSTART Cortex MCU development http://p0.vresp.com/j0qJaF

Are you still working with 8-bit MCUs and wish to take advantage of the more powerful and even lower cost Cortex-M MCU, but are worried about making the jump? Are you working with slow Eclipse-based IDE or ST CubeMX and wish that just loading the tools won't require taking a long coffee break? Are y...

New blog post (QFPlib, A Compact Floating Point Library for Cortex-M) has been published https://imagecraft.com/blog/201...
05/29/2019

New blog post (QFPlib, A Compact Floating Point Library for Cortex-M) has been published https://imagecraft.com/blog/2019/05/qfplib-a-compact-floating-point-library-for-cortex-m/. (Excerpt:)
Cortex-M0 based MCUs are notable for their low cost and relatively smaller amount of flash memory. If you want to use floating point operations but are running tight on space, QFPlib is a great alternative. The core single precision floating-point add/sub/mul/div/cmp operations take less than 400

Cortex-M0 based MCUs are notable for their low cost and relatively smaller amount of flash memory. If you want to use floating point operations but are running tight on space, QFPlib is a great alter

New blog post (How Much Flash and SRAM Does My Project Use?) has been published http://imagecraft.com/blog/2019/05/how-m...
05/06/2019

New blog post (How Much Flash and SRAM Does My Project Use?) has been published http://imagecraft.com/blog/2019/05/how-much-flash-and-sram-does-my-project-use/. (Excerpt:)
When developing firmware for an embedded project, it is important to know how much flash and SRAM the program is using. This allows you to make the best decision on whether the chosen MCU has sufficient resources for your needs.

By default, GCC does not give any information regarding program

When developing firmware for an embedded project, it is important to know how much flash and SRAM the program is using. This allows you to make the best decision on whether the chosen MCU has suffici

New blog post (Embedded GCC Libraries: newlib vs. nanolib) has been published https://imagecraft.com/blog/2019/04/embedd...
04/26/2019

New blog post (Embedded GCC Libraries: newlib vs. nanolib) has been published https://imagecraft.com/blog/2019/04/embedded-gcc-libraries-newlib-vs-nanolib/. (Excerpt:)
C/C++ compilers include a set of standard functions to be linked with user programs. They are called libc and libc++ respectively. For GCC, they are also called glibc and glibc++ (in the rest of this post, I would use glibc to mean both glibc and glibc++). Most of the functions are directly callable by the user programs, e.g. printf, but some are internal functions known to the compiler to support operations not directly supported by the target hardware. For example, double precision floating point add.

Traditional glibc is written for "big machines" such as Linux. For embedded use, it's too bloated as embedded systems may not be running on top of an OS and advanced features such as locale (international language) support may not be needed. Even things like printf with full formatting and floating point support may take too much code for smaller microcontrollers.

C/C++ compilers include a set of standard functions to be linked with user programs. They are called libc and libc++ respectively. For GCC, they are also called glibc and glibc++ (in the rest of this

New blog post (2018-Q4 GNU Embedded ARM objcopy  "64-bit address... out of range" Error) has been published http://image...
03/27/2019

New blog post (2018-Q4 GNU Embedded ARM objcopy "64-bit address... out of range" Error) has been published http://imagecraft.com/blog/2019/03/2018-q4-gnu-embedded-arm-objcopy-64-bit-address-out-of-range-error/. (Excerpt:)
From time to time, we refresh the GNU Embedded ARM compiler (GCC) in our JumpStart C++ with the latest stable GNU release. Earlier in 2019, we refreshed GCC to the 2018-Q4 release. Surprisingly, our testing showed a failure immediately:

objcopy.exe: 64-bit address 0x4b4fa300000000 out of range

From time to time, we refresh the GNU Embedded ARM compiler (GCC) in our JumpStart C++ with the latest stable GNU release. Earlier in 2019, we refreshed GCC to the 2018-Q4 release. Surprisingly, our

New blog post (Removing Bootloader Protection On The AdaFruit Metro / Arduino Zero / SAMD21) has been published https://...
03/26/2019

New blog post (Removing Bootloader Protection On The AdaFruit Metro / Arduino Zero / SAMD21) has been published https://imagecraft.com/blog/2019/03/removing-bootloader-protection-on-the-adafruit-metro-arduino-zero-samd21/. (Excerpt:)
The Microchip/Atmel SAMD21G18A is a powerful Cortex M0+ based MCU with 256K flash and 32K of SRAM. It's used in the Arduino Zero as well as the Adafruit Metro and Feather lines of development boards, and is becoming a popular choice for users looking for a low cost powerful ARM Cortex-M MCU.

The SAMD21G18A used in the Arduino and Adafruit development boards is programmed with a bootloader. The Arduino IDE uses this feature to download programs onto the MCU.

However, instead of the limited Arduino IDE, you can instead use an advanced development environment such as JumpStart C++, Keil, or IAR. Besides getting the full benefit of using C/C++, you also get visual debuggers that are lacking in the Arduino IDE.

The Microchip/Atmel SAMD21G18A is a powerful Cortex M0+ based MCU with 256K flash and 32K of SRAM. It's used in the Arduino Zero as well as the Adafruit Metro and Feather lines of development boards,

New blog post (Cortex-M Debug Pods) has been published http://imagecraft.com/blog/2019/03/cortex-m-debug-pods/. (Excerpt...
03/18/2019

New blog post (Cortex-M Debug Pods) has been published http://imagecraft.com/blog/2019/03/cortex-m-debug-pods/. (Excerpt:)
In this article, we will examine some of the more popular Cortex-M hardware debug pods, which are hardware devices necessary for debugging firmware on a Cortex-M based MCU.

Overview of Debugging

In the “good old days”, debugging an embedded system often meant the judicious use of printf to output debugging messages to a terminal. Fortunately, modern MCUs now come with hardware debug support that makes it easy to implement the core debugging features such as instruction breakpoints, and memory access. In the Cortex-M core specification, ARM Inc. includes a Coresight Debug Access Port (DAP) for just such purposes. As the DAP is present in all the Cortex-M base MCUs, this means that they all can provide debug support.

In this article, we will examine some of the more popular Cortex-M hardware debug pods, which are hardware devices necessary for debugging firmware on a Cortex-M based MCU.Overview of Debugging

New blog post (Cortex Compiler: Vendor SDK) has been published http://imagecraft.com/blog/2019/02/cortex-compiler-vendor...
02/11/2019

New blog post (Cortex Compiler: Vendor SDK) has been published http://imagecraft.com/blog/2019/02/cortex-compiler-vendor-sdk/. (Excerpt:)
A strength of Cortex-M based MCUs is that the core CPU is designed by ARM Inc., while silicon vendors license the core design and then put their own I/O peripherals around it. With all major MCU vendors supporting the Cortex MCU, embedded designers have a large number of MCUs to choose from,

A strength of Cortex-M based MCUs is that the core CPU is designed by ARM Inc., while silicon vendors license the core design and then put their own I/O peripherals around it. With all major MCU vend

Address

Palo Alto, CA
94306

Alerts

Be the first to know and let us send you an email when ImageCraft posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Share