Posts Tagged Cortex-m3
XDUINO IDE v0.91 notes
Posted by Ram in ARM, compiler, Cortex-M3, development tools, programming on October 8, 2009
Arduino platform has definitely enabled a lot of people including those non-tech savvy ones to enter into the electronics worlds. From the beauty of Arduino, now comes the challenge in making Arduino-like environment accessible across as many hardware platforms as possible. This would enable the simplicity and yet powerful Arduino platform to harvest on more powerful resources provided by different hardware to overcome hardware limitations based on different needs.
This approach will never be fully realized without contributors. So all contributions are welcome. Also, comments/suggestions will be highly appreciated. : -)
Let’s see what wonders we can create together…
Now, a little about me. My name is Ram, I am an independent IT consultant based in Bangkok and really like the Arduino project but it did not fit my needs so I started playing with ARM and manage to understand a bit about it then started this project. Feel free to contact me via the Contact us page : -)
Now as XDUINO-IDE is ready for download, these are the list of components you will find in XDUINO-IDE. This platform provides ease of compiling and uploading to the ARM Cortex-M3 devices by simply clicking the button on the main interface : -).
Main components includes:
- C++ compiler with C and C++ libraries
- ARM Cortex-M3 stm32f series mcu firmware/software uploader
- XDUINO library for programming with Arduino-like syntax
- Programming template in XDUINO and general ARM styles
- and much much more..
What are you waiting for, you can signup to download it now from Download page.
ARM Compiler is also part of the XDUINO project.
The FREE ARM Compiler is bundled within the XDUINO-IDE package. Once XDUINO-IDE has been installed,
programming with Arduino syntax or ARM general programming can be done immediately. There is no need to set compiler options. The bundled FREE ARM Compiler has been tested with Cortex-M3 STM32 Thumb-2 instructions.
With ease of programming either by XDUINO-IDE or other IDE such as Keil, IAR, etc. One can easily build embedded application with Arduino commands.
XDUINO project also comes with ARM Compiler
The FREE ARM Compiler is bundled within the XDUINO-IDE package. Once XDUINO-IDE has been installed, programming with Arduino syntax or ARM general programming can be done immediately. There is no need to set compiler options. The bundled FREE ARM Compiler has been tested with Cortex-M3 STM32 Thumb-2 instructions.
ARM Compiler is also part of the XDUINO project
The FREE ARM Compiler is bundled within the XDUINO-IDE package. Once XDUINO-IDE has been installed, programming with Arduino syntax or ARM general programming can be done immediately. There is no need to set compiler options. The bundled FREE ARM Compiler has been tested with Cortex-M3 STM32 Thumb-2 instructions.
XDUINO project also comes with ARM Compiler
The FREE ARM Compiler is bundled within the XDUINO-IDE package. Once XDUINO-IDE has been installed, programming with Arduino syntax or ARM general programming can be done immediately. There is no need to set compiler options. The bundled FREE ARM Compiler has been tested with Cortex-M3 STM32 Thumb-2 instructions.
First, we would like to thank those who have given feedback on XDUINO IDE which contains ARM Compiler, libraries, and other tools necessary for getting the Xduino project running.
Important notes:
-
- If you get anti-virus warning from running the software, you can ignore it if you have signed up and downloaded the software from our site. The warnings are inaccurate. We have seen this generally happens with compressed/encrypted executable files. For some anti-virus program you might have to make it explicitly exclude the XDUINO-IDE executable file from the anti-virus software.
- After starting the IDE if you see “Verifying” at the bottom of the IDE, it means that the IDE is trying to Verify your registration information. There is no need to wait for this to complete if you have registered properly. You can start using the IDE immediately.
Xduino v0.2 to be released
Posted by Ram in ARM, detail, Xduino release on July 31, 2009
Here is an example for dimming the LEDÂ connected to PA4 while attaching interrupt to PB8 and PB9. It has been tested with Xduino v0.3 (more projects and examples will be added in the near future)
/* Xduino v0.3 */ #include "main.h" using namespace compatArduino; void InterruptPB9(void) { Serial1.printf("(interrupt 9!!! %d)",digitalRead(PB9)); } void InterruptPB8(void) { Serial1.printf("(interrupt 8!!! %d)",digitalRead(PB8)); } int LedPin = PB7; // as labelled on ARM Cortex-M3 board int main(void) { float version=0.3; double fnumber=1234.5678; char myinput; doInit(); //Initialize Xduino components, this line is required Serial1.begin(115200); //USART1 Serial1.printf("Starting Xduino (v%f) example program...",version); Serial1.printf("hello!! %d %d %d",1,2,3); Serial1.printf("The floating point number is %d",fnumber); pinMode(LedPin,OUTPUT); pinMode(PB1,OUTPUT); pinMode(PB8,INPUT); pinMode(PB9,INPUT); digitalWrite(PB1,HIGH); attachInterrupt(PB9,InterruptPB9,CHANGE); attachInterrupt(PB8,InterruptPB8,RISING); while(1) { if(Serial1.available()) { myinput=Serial1.read(); Serial1.printf("This system has been up for %lu milliseconds.",millis()); if(myinput=='a') { digitalWrite(PB1,HIGH); } // press a to turn PB1 to HIGH state if(myinput=='b') { digitalWrite(PB1,LOW); } // press b to turn PB1 to HIGH state if(myinput=='n') { noInterrupts(); } // press n to disable all existing interrupts if(myinput=='i') { interrupts(); } // press i to enable all existing interrupts Serial1.printf("Input is %c ...",myinput); } //using analogWrite on channel 1 which is PA4 to dim the LED connected to it for(int i=0;i<=0x0FFF;i+=0xFF) // smoothly turn PA4 (DAC port 1) on { analogWrite(1,i); delay(50); } for(int j=0x0FFF;j>=0;j-=0xFF) // smoothly turn PA4 (DAC port 1) off { analogWrite(1,j); delay(50); } analogWrite(1,0xFFF); // Turn on PA4 fully at once delay(100); digitalWrite(LedPin,LOW); // Turn off PA4 fully at once delay(100); } //## END while(1) } //## END main()
Xduino v0.12 should come out within the next few days and it will have Serial buffer, Round-robin general purpose library, ADC (Analog input) and might also have DAC (Analog output) functionalities. Note DAC function does not exist in Arduino (yet). PWM function should be coming out soon as well but might not always be needed as there are 2 DAC channels on the ARM Cortex-M3 STM32F10ret6 board which is being used for testing. Arduino compatibility syntax will be provided on the new functions as well.
Xduino v0.12 should come out within the next few days and it will have Serial buffer, Round-robin general purpose library, ADC (Analog input) and might also have DAC (Analfunctionalities. Note DAC function does not exist in Arduino (yet). PWM function should be coming out soon as well but might not always be needed as there are 2 DAC channels on the ARM Cortex-M3 STM32F10ret6 board which is being used for testing. Arduino compatibility syntax will be provided on the new functions as well.
Xduino v0.12 should come out within the next few days and it will have Serial buffering (user can define size), Round-robin general purpose library, ADC (Analog input) and might also have DAC (Analog output) functionalities. Note DAC function does not exist in Arduino platform (yet). PWM function should be coming out soon as well but might not always be needed as there are 2 DAC channels on the ARM Cortex-M3 STM32F10ret6 board which is being used for testing. Arduino compatibility syntax will be provided on the new functions as well.
All suggestions are welcome. Enjoy!
The next release of Xduino will be version 0.2 making a jump from version 0.1x as most of the Arduino programming functions has been implemented along with additional features, especially those exceeding what current Arduino platform can provide.
Supported Arduino syntax will be:
pinMode digitalWrite digitalRead
analogRead (12-bits 0-4095 range)
analogWrite (12-bits 0-4095 range true Analog output not PWM)
attachInterrupt (upto 16 interrupts)
detachInterrupt interrupts noInterruptsdelay delayMicroseconds millis micros
Serial – print println read available flush
on top of this more advanced functionality will include:
Setting Serial port Rx and Tx buffer size
Serial.printf – optional C style printf function for Serial port eg.
printf(“hello %d”, 123);digitalToggle – toggle state of digital output
analogLastwrite – get the latest value set by analogwrite
(General purpose Round-Robin library will be included.)
along with endless possibilities offered by C++ libraries
More to follow… Suggestions are always welcome!
Xduino v0.12 to be released
Posted by Ram in ARM, Cortex-M3, Xduino release on July 24, 2009
Here is an example for dimming the LED connected to PA4 while attaching interrupt to PB8 and PB9. It has been tested with Xduino v0.3 (more projects and examples will be added in the near future)
/* Xduino v0.3 */ #include "main.h" using namespace compatArduino; void InterruptPB9(void) { Serial1.printf("(interrupt 9!!! %d) ", digitalRead(PB9)); } void InterruptPB8(void) { Serial1.printf("(interrupt 8!!! %d) ", digitalRead(PB8)); } int LedPin = PB7; // as labelled on ARM Cortex-M3 board int main(void) { float version=0.3; double fnumber=1234.5678; char myinput; doInit(); //Initialize Xduino components, this line is required Serial1.begin(115200); //USART1 Serial1.printf("Starting Xduino (v%f) example program...",version); Serial1.printf("hello!! %d %d %d ",1,2,3); Serial1.printf("The floating point number is %d ",fnumber); pinMode(LedPin,OUTPUT); pinMode(PB1,OUTPUT); pinMode(PB8,INPUT); pinMode(PB9,INPUT); digitalWrite(PB1,HIGH); attachInterrupt(PB9,InterruptPB9,CHANGE); attachInterrupt(PB8,InterruptPB8,RISING); while(1) { if(Serial1.available()) { myinput=Serial1.read(); Serial1.printf("This system has been up for %lu milliseconds. ",millis()); if(myinput=='a') { digitalWrite(PB1,HIGH); } // press a to turn PB1 to HIGH state if(myinput=='b') { digitalWrite(PB1,LOW); } // press b to turn PB1 to HIGH state if(myinput=='n') { noInterrupts(); } // press n to disable all existing interrupts if(myinput=='i') { interrupts(); } // press i to enable all existing interrupts Serial1.printf("Input is %c ... ",myinput); } //using analogWrite on channel 1 which is PA4 to dim the LED connected to it for(int i=0;i<=0x0FFF;i+=0xFF) // smoothly turn PA4 (DAC port 1) on { analogWrite(1,i); delay(50); } for(int j=0x0FFF;j>=0;j-=0xFF) // smoothly turn PA4 (DAC port 1) off { analogWrite(1,j); delay(50); } analogWrite(1,0xFFF); // Turn on PA4 fully at once delay(100); digitalWrite(LedPin,LOW); // Turn off PA4 fully at once delay(100); } //## END while(1) } //## END main()
Xduino v0.12 should come out within the next few days and it will have Serial buffer, Round-robin general purpose library, ADC (Analog input) and might also have DAC (Analog output) functionalities. Note DAC function does not exist in Arduino (yet). PWM function should be coming out soon as well but might not always be needed as there are 2 DAC channels on the ARM Cortex-M3 STM32F10ret6 board which is being used for testing. Arduino compatibility syntax will be provided on the new functions as well.