After release of AVRStudio4 there is ability to integrate AVR-GCC compiler in it. As you know AVR studio has only assembler compiler- debugger. Integration of AVR-GCC is done by plugin. Plugin detects AVR-GCC by it self, you don’t have to bother. What do we get from it? Of course – full set of good tools comparable to commercial. Convenient user interface, automatic makefile generation, visual debugging by watching processors register, or even you can flash the chip. We can say that abilities are: 1. Compilation, setting parameters, automatic AVR-GCC detection; 2. Graphical User Interface – convenient project setting; 3. Tree like project view; 4. Project can be complied with predefined configurations; 5. Convenient error handling; 6. Ability to use external makefiles; 7. Map and List file generation; 8. Plugin inspect connections among source files(c and h files who are not part of project); 9. User can work with c or …

Continue reading


This time I decided to lay down some information on using AVR-GCC compiler. I am not going to rewrite what’s in documentation is already written, but just write down some issues, what can help you start using this amazing tool. Introduction Probably the most AVR programmers had a question in their mind what compiler to use for their designs. The choice is really big. You can use commercial ones like IAR, CodeVision, ImageCraft. These compilers come with convenient GUI’s, code generators. But you have to buy license to use them. So if you are going to make low budget project, the best choice is to use open source compiler GCC . This is the most successful open source compiler in the world. For AVR platform it is called AVR-GCC. The compiler itself has no graphical interface everything can be done in MSDOS command line or in Linux command line. To …

Continue reading

Microcontroller C programming

There is no doubt that everyone faces C language when programming microcontrollers. This is most popular language among hardware programmers. There are plenty books about this language – you just have to open and read. This article is not about language basics, but there is effectiveness of c language in embedded systems touched. Quite often you can find good examples of effective algorithms: faster code performance and code size as well. In order to write good optimal algorithm you have to know structure of compiler. Of course we are not going to analyze compilers, but we can look through few rules and tricks and achieve optimal algorithm. Begining What to do when limit of program size is overrun or there is not enough speed in some cases. Of course you will say, that these parts it is best to write in assembler, but is this a solution? Maybe there is …

Continue reading

GNUARM for ARM microcontrollers

In this article you’ll find some information about how to configure GNUARM toolset for compiling ARM7 microcontrollers. GNUARM is the open source toolset for ARM7 MCUs. It has GCC compiller and debugger. Our purpose now is to set up tools in Windows environment and compile one project. First of all download compiled toolset from http://www.gnuarm.com: Select the newest [GCC-4.0 toolchain] located bellow Cygwin. After it is downloaded, start the installation: 1. Start window 2. Accept license agreement. 3. Select folder where do you want GNUARM to be installed: 4. Select the components. You can select all of them. 5. Chose Start menu folder name – just leave as it is. 6. Select desktop shortcut to be placed. I higly recoment to check Cygwin DLL, because despite I had cygwin installed, but I had to copy DLLs to copy manually. If this option ischecked, DLL files will be copied without bothering …

Continue reading

ARM7-Base development board for LPC2148

After ARM mini board for LPC2148 is created its time to develop development board. I want to make board as universal as possible. So I decided to put I2C, SPI, COM and JTAG on board. I decided to use external voltage adapter as there is needed 5V and 3.3V DC sources. For my experiments I can use those voltages straight from PC source. 5V there is used to supply MAX232IC.I decided to use it instead of MAX3232 because it is easer to get them in market. Of course I left ability to use and MAX3232 by changing jumper. All other free pins I made accessible by adding pinheads in board. I made 100x100mm double sided PCB PCB Bottom image PCB top image (when printing – use mirror function) And real world images. PCB Bottom Completed soldered board with ARM mini board on top. And of course I put Eagle3D traced …

Continue reading

ARM7 LPC2148 mini board

One day I’ve got ARM LPC2148 chip in my hands. The Philips LPC2148 is an ARM7TDMI-S based high-performance 32-bit RISC Microcontroller with Thumb extensions 512KB on-chip Flash ROM with In-System Programming (ISP) and In-Application Programming (IAP), 32KB RAM, Vectored Interrupt Controller, Two 10bit ADCs with 14 channels, USB 2.0 Full Speed Device Controller, Two UARTs, one with full modem interface. Two I2C serial interfaces, Two SPI serial interfaces Two 32-bit timers, Watchdog Timer, PWM unit, Real Time Clock with optional battery backup, Brown out detect circuit General purpose I/O pins. CPU clock up to 60 MHz, On-chip crystal oscillator and On-chip PLL. Looks like it can be powerful thing in good hands. I decided to test its power, so I needed development board, which could I use for my experiments. Because I wanted to have more universal board, so I faced few problems – PCB tracing. My purpose was to …

Continue reading

Hello again!

At last I started to move my site to new place. Now address of my site permanently will be http://www.scienceprog.com. You will be able to reach my old site for a while by URL: http://scienceprog.vhost.lt/drupal/. I hope you’ll enjoy this new improvement. Mindaugasu