Category Archives: Programming

Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO

eclipse_platformio_iconI received a lot of feedbacks after PlatformIO had been released. Some people have been asking me the interesting questions, such as:

Also I’ve received valuable answers and wishes  from the “LinkedIn Professionals” (here and here). Most of them like to work with an IDE and preferably Eclipse IDE.   As PlatformIO is a console tool with rich commands interface it can work with different IDEs as the “builder, uploader & debugger”.

Today I want to explain how we can build and debug Atmel AVR (Arduino) based project using Eclipse IDE + PlatformIO.

Continue reading

How was PlatformIO born or why I love Python World

PlatformIO Example

PlatformIO is a cross-platform code builder and the missing library manager”

Working on an embedded firmware for SmartAnthill Project I’ve been dealing with building code for different embedded platforms. Nowadays, each platform proposes standalone toolchain, driver-lib and even own IDE:

With each new embedded platform I had to adapt to its own IDE, code highlighter,  code autocompletion, debugger and many more. Then I’ve decided to write code in my favourite editor (Vim) and build it only with these IDEs. But a structure of  my project looked ugly because each IDE had created own project’s META files and folders. Therefore, I had different project locations for each IDE and “symlinked” source code folder to one location. But this wasn’t for long…

Continue reading

An Android Cross-Compiling Environment on Windows/UNIX-like systems using NDK

android-ndkThe Android NDK is a toolset that allows us to implement parts of our app using native-code languages such as C and C++. There are many articles about integrating Android SDK/NDK and writing some “C/C++JNI compatible code. JNI is the Java Native Interface. It defines a way for managed code (written in the Java programming language) to interact with native code (written in C/C++).

But today we will talk about:

  • the native cross-compiling on the Windows/UNIX-like systems
  • uploading of the compiled binary file to the Android device
  • running the compiled binary file via Android CLI shell.

And what is interesting, we will not use the Android SDK (except adb utility) or any others Android sources 🙂

Continue reading

Eclipse Helios + PDT + Smarty = indispensable tool for WEB-developers

Eclipse Helios 3.6

Eclipse Helios is a next regular update to all known and loved IDE for us, which contains a huge number of innovations and improvements. Earlier I have already written about how to integrate previous version of Eclipse Galileo with PDT + Smarty. I’m pleased that the materials of the publication were useful for lots of people because I received numerous “Thanks” in anonymous form. In fact, there is no problem with integration in new Eclipse Helios because it contains the new PDT 2.2.x and the DLTK 2.x plug-ins that are necessary for the functioning SmartyPDT.

Therefore, I recommend every one to upgrade on Eclipse Helios, and if you want to integrate the PDT + Smarty, then read below… 🙂

Continue reading

iPurgeMemory – звільнення неактивної пам’яті в Mac OS X

iPurgeMemory – звільнення неактивної пам'яті в Max OS X

Останнім часом почав відчувати серйозну потребу в додатковому об’ємі оперативної пам’яті для свого старенького MacBook-а. Але проблема в тому, що більше 3Гб він не підтримує 🙁 А із своїм переліком запущених програм і сервісів інколи swap дотягує до 2-3Гб 🙂 В таких випадках, жорсткий диск просто “розривається”. Але навіть після закриття ресурсоємких програм (Adobe Photoshop, VirtualBox і тд.) об’єм вільної пам’яті не сильно збільшується, адже область пам’яті, яку займала ця програма, переходить в режим “неактивної” з надією на те, що ми незабаром відкриємо цю програму і вона просто відновиться із кеша. Це все обгрунтовано менеджером пам’яті в самій операційній системі Mac OS X. Кешування – це добре, але не в тому випадку, коли об’єм вільної пам’яті наближається до нуля, а swap “росте на очах”. Тому часто виникає потреба примусового звільнення “неактивної” пам’яті, що у свою чергу зменшить об’єм swap.

Continue reading