Go Down

Topic: How to developing on Arduino IDE with the SONiX cortex m-series chips (Read 80 times) previous topic - next topic


Hi All:
I understand this is a very general question about the other MCUs (not necessarily Atmel or even 8-bit). How would I get start ? I think that the SONiX chips can be developed under Arduino IDE if i have related HW resources. But I have no ideas about it. And the SONiX website also can not provide any resources and document. So, I must be modify the content of Arduino IDE by hand. :smiley-confuse:

Can everyone sharing the experience porting given MCUs? I will surf the internet and find some information about this topic. By the way, I think that Arduino is not friendly IDE relative to Keil, IAR, and CooCox.
Finally, Thanks a lot.


I'd never heard of Sonix.  It looks like they have three types of MCU: an 8051-like set of chips (an industry standard architecture, but not very C-friendly, and does not support Aruino-like environments), an "8bit flash type" that looks similar to a Microchip 8bit PIC (also not suitable for Arduino), and an ARM Cortex M0 type that COULD run arduino.

The Sonix ARM chips look pretty reasonable; I guess Sonix is one of those Taiwanese semiconductor companies whose chips aren't widely available in small quantities throughout the world, which is sort of necessary to support a hobbyist ecosystem like Arduino.   The datasheets look surprisingly good for such a company; assuming that they're accurate and that the chips work, a experienced embedded programmer could probably make Arduino work without too many problems.

There are about 4 tasks:
  • port the "Core" libraries.   Things like digitalWrite(), millis(), analog IO, Serial, etc   This is easier (mostly) if a similar chip has already been implemented.   Ardunio Zero is also a cortex M0, so that will be a good starting point.  Peripherals can differ wildly, especially the more complex peripherals like Analog IO.
  • write a bootloader, or figure out how to use a built-in bootloader from the IDE.
  • Work on the higher-level libraries.  You need to do both the standard libraries (SPI, I2C), and some of the more popular 3rd party libraries (timer libraries, WSxxxx LED drivers, etc.)
  • wrap everything up in an Arduino "board" package that can be easily user-installed.  This means collecting all of the stuff from the first 3 tasks, plus device-specific compiler files (include files, libc files, etc), into a standard directory structure, describe by a JSON file.

I think that Arduino is not friendly IDE relative to Keil, IAR, and CooCox.
Whatever.  Keil and IAR are in "several thousand dollars" price range, so they obviously address a different audience.
There's some value to writing close-to-arduino libraries for processors even if you never integrate fully with the arduino IDE itself.  It's a somewhat depressing reality that the Arduino core is one of the few existing cross-vendor embedded programming libraries :-(

Go Up