Showing posts with label tools. Show all posts
Showing posts with label tools. Show all posts

Saturday, November 10, 2012

Compile Octave using 16/32 bits colour - Ubuntu


  Hello there,

  This post is a little different of I'm using to write, but yet very useful for us engineers! It's about how to compile octave to be able to load 16 or 32 bits colour images. First of all, what's Octave?
  Octave is a gnu version of Matlab (and it almost compatible with it. Actually most of commands are identical, so migrating for Matlab to Octave should not be very hard. The official site is here!
  Ok, what's the problem? The problem is that Octave uses GraphicsMagick (an image processing program) and by default it comes configured in 8bits in Ubuntu. So, we need to recompile GraphicsMagick to use 16 or 32 bits and then recompile Octave with the new GraphicsMagick. I'm using Ubuntu 12.04, Octave-3.6.3 and GraphicsMagick-1.3.12.
  Here you are the steps:
  1) Download all packages needed.
sudo apt-get install g++ gcc gfortran make libblas-dev liblapack-dev libpcre3-dev libreadline-dev libarpack2-dev libcurl4-gnutls-dev libfftw3-dev libfltk-dev libfontconfig1-dev libfreetype6-dev libglpk-dev libgraphicsmagick++-dev gnuplot libhdf5-serial-dev libgl-dev libqhull-dev libqrupdate-dev libsuitesparse-dev texinfo zlib1g-dev libgraphicsmagick++1-dev libgraphicsmagick++3
  2) Download GraphicsMagick source from Ubuntu repository
wget https://launchpad.net/ubuntu/precise/+source/graphicsmagick/1.3.12-1.1build1/+files/graphicsmagick_1.3.12.orig.tar.gz
  3) Configure and install GraphicsMagick.If you want 16 bits set --with-quantum-depth=16!
tar zxvf graphicsmagick_1.3.12.orig.tar.gz
cd GraphicsMagick-1.3.12
./configure  --with-quantum-depth=32 --enable-shared --disable-static --with-magick-plus-plus=yes
make
sudo make install
  4) Set GraphicsMagick libs path
export PATH=$PATH:/usr/local/lib
  5) Download Octave
wget ftp://ftp.gnu.org/gnu/octave/octave-3.6.3.tar.gz
  6) Configure and install Octave
tar zxvf octave-3.6.3.tar.gz
cd octave-3.6.3
./configure --prefix=/usr/local/octave  --with-blas="-L/usr/lib -lblas" --with-lapack="-L/usr/lib -llapack" --with-fftw3f-libdir=/usr/local/fftw/lib --with-fftw3-includedir=/usr/local/fftw/include --without-curl --enable-shared --disable-static
make
sudo make install
  Here some links that can help you if you have any problems:
GraphicsMagick wiki
Discussed in forum

  Bye
 Marcelo
Read more ►

Saturday, September 8, 2012

STM32F0 discovery + GCC + Eclipse + OpenOCD + Ubuntu - Part II

  Hello!
  As promissed in last post, I'll show you how to setup eclipse to work with the our STM32F0 discovery board + open source toolchain.

1) Open eclipse. First of all we need to install (if not already installed) two new software. So go to menu Help/Install New Software. In work with, type "http://download.eclipse.org/tools/cdt/releases/juno" and in the list below choose CDT Optional Features/ C/C++ GDB Hardware Debugging". Next in http://gnuarmeclipse.sourceforge.net/updates, select "GNU ARM C/C++ Development Support".
  2) Create a new C Project. Go to menu File/New Project and select C/C++ - C Project. Click next.
  3) In next window Choose under ARM Cross Target Application - Empty project. Select your toolchain (Sourcery G++ Lite) or (GNUARM).

  4) Go to menu Project/Properties. In C/C++ Build / Settings select Tool settings. In Target Processor change "Processor" to cortex-m0.


  5) Now in the same Tool Settings tab go to ARM Sourcery Linux GCC C Compiler / Preprocessor and add the following values:
USE_STDPERIPH_DRIVER
USE_STM32F0_DISCOVERY
STM32F0XX


  6) Still in Tool Settings tab go to ARM Sourcery Linux GCC C Linker / General and  uncheck "Do not use standard start file (-nostartfiles) and check "Remove unused sections (-Xlinker --gc-sections). In Script file (-T) set path: /home/stm32/workspace/Template/src/stm32f0.ld



  7) In C/C++ General, select Path and Symbols and add the following paths (in both Assembly and GNU C): 
/Template/Libraries/CMSIS/ST/STM32F0xx/Include
/Template/Libraries/
/Template/src
/Template/Libraries/STM32F0xx_StdPeriph_Driver/inc
/Template/Libraries/CMSIS/Include



  8) Configure GDB by clicking in the small arrow in the right of the bug. Select "Debug Configurations... ". Select "GDB Hardware Debugging" right click and select new. Change name to GDB-OpenOCD and in the bottom of the window click in "Select other..." and select "GDB (DSF) Hardware Debugging Launcher".

 9) Under tab Debugger, uncheck everything and set the path of your gdb from your toolchain:  /home/user/stm32/gcc-arm-none-eabi/bin/arm-none-eabi-gdb

  10) Under tab Start Up, uncheck everything and in "Run commands" add:
target remote localhost:3333
monitor reset init 
monitor stm_flash /home/user/stm32/workspace/Template/Debug/Template.elf 
load /home/user/stm32/workspace/Template/Debug/Template.elf 
symbol-file /home/user/stm32/workspace/Template/Debug/Template.elf 
cont

  11) Now configure OpenOCD by clicking in the small arrow in the right of the play with toolbox (external tools). Select "External Tool Configurations... ". Select "Program" right click and select new. Change name to OpenOCD. Set openocd path: /usr/bin/openocd and working directory: /home/user/stm32/openocd-0.6.0-rc1/tcl
  In "Arguments" write: -f /home/user/stm32/workspace/Template/extra/stm32f0discovery.cfg -f /home/user/stm32/workspace/Template/extra/stm32f0-openocd.cfg

  If everything is OK, compile your hello world program. Go to "External Tools" and select "OpenOCD". It should show de following message in Console:

Open On-Chip Debugger 0.6.0-rc1 (2012-09-03-20:37)
Licensed under GNU GPL v2
[...]


  Now, the great moment, put a breakpoint in your main and select the bug icon "GDB - OpenOCD". It should stop your code like this:



  That's all for today!

  Marcelo

Read more ►

Saturday, August 18, 2012

STM32F0 discovery + GCC + Eclipse + OpenOCD + Ubuntu - Part I

Hello there!

In this post I'll show how to set up your IDE to debug the STM32F0 discovery board using open source tools.
The STM32F0 is a kit (very cheap) from ST micro to introduces the ARM Cortex - M0. This little boards has integrated a STM32F051R8T6 microcontroller with a button, leds and I/Os and also a st-linkV2 which is used to program and debug. That's why this little board is so amazing! We can use the st-linkV2 embedded to program and debug others microcontrollers, you need only to change two jumpers and we're ready!

I must say that everything I did here was based in what Mike Szczys did here. So THANK YOU Mike!!!
Ok, let's start! First of all, create a folder stm32 in your home. We'll use this folder to save all files.

mkdir /home/stm32

1) Installing basic tools
sudo apt-get install build-essential
sudo apt-get install git
sudo apt-get install libtool
sudo apt-get install libftdi1
sudo apt-get install texinfo

2) Installing toolchain
a) You can download toolchain from code sourcery (or if you prefer, you can use crosstool-ng and generate your own toolchain)
https://sourcery.mentor.com/sgpp/lite/arm/portal/subscription?@template=lite

b) Install toolchain
sh ./arm-2012.03-56-arm-none-eabi.bin

if you have the error "ERROR: DASH shell not supported as system shell", type
sudo dpkg-reconfigure -plow dash

c) Chose: Minimal installation, default folder, check "Modify path for user", check "Don't create links"

3) Installing OpenOCD
Get here the latest version of OpenOCD (I got openocd-0.6.0-rc1) and save

tar jxvf openocd-0.6.0-rc1.tar.bz2
cd openocd-0.6.0-rc1
./configure --prefix=/usr --enable-maintainer-mode --enable-stlink
make
sudo make install

4) Install udev rules
git clone git://github.com/texane/stlink.git
cd /home/stm32/stlink
sudo install -m 644 49-stlinkv2.rules /etc/udev/rules.d/49-stlinkv2.rules
sudo udevadm control --reload-rules

5) Install Eclipse
a)Get the latest version Eclipse C/C++ here. My version is Indigo.
b) Install plugins. Go to Help/Install New Software...
c) Work with: http://gnuarmeclipse.sourceforge.net/updates and chose GNU ARM C/C++ Developement Support. Install it.
d) Work with: http://download.eclipse.org/tools/cdt/releases/indigo and chose GDB hardware debugging. Install it.

6) Get templates and setting up file directory
a) Create a workspace, a Template and a src folder inside at /home/stm32 (or somewhere)
mkdir /home/stm32/workspace
mkdir /home/stm32/workspace/Template
mkdir /home/stm32/workspace/Template/src

b) Download the following templates:
STM32F0discovery_fw.zip
git clone https://github.com/szczys/stm32f0-discovery-basic-template.git

b) Unzip STM32F0discovery_fw.zip and copy the Libraries folder into /home/stm32/workspace/Template
c) Copy STM32F0-Discovery_FW_V1.0.0/Project/Demonstration/stm32f0xx_conf.h into src folder.
d) Copy and paste the files in stm32f0-discovery-basic-template/Device/ldscripts/ into src folder.
e) Edit stm32f0.ld in src folder. Change paths in both include:
INCLUDE "/home/stm32/workspace/Template/src/stm32f0discovery_def.ld"INCLUDE "/home/stm32/workspace/Template/src/sections_flash.ld"f) Copy stm32f0-discovery-basic-template/Device/startup_stm32f0xx.s into src folder. RENAME IT TO .S. It's an eclipse issue.
g) Copy folder stm32f0-discovery-basic-template/Extra to /home/stm32/workspace/Template/


This post is already too long. In next post I'll show how to start a new project and set up debugger and OpenOCD in Eclipse. I promise that it will be soon!

Bye

Marcelo
Read more ►

Saturday, October 1, 2011

Spartan 3E demo board

Hello people,
As I said, I'm studying FPGA/VHDL and for that I have a spartan 3E demo board from Digilent. It's a very nice demo board and it has everything that it takes to program the FPGA (no need of special cable).
I'm using ISE 13.1 web edition. It's free and I can do everything I want in this demo board with that version.
I'll stop studying embedded linux for while and focus in FPGA because I have to develop some projects in my current work! =D
Next posts I'll show you how we use ISE, how simulate, how program the FPGA and of course some examples of what I'm working.

Marcelo Jo
Read more ►

Sunday, September 25, 2011

Rigol DS1052E

  Hello everybody!

  I would like to tell you a little about my new scope - Rigol DS1052E. I read about it at EEV blog and I decided to give it a try. I'm very well surprised because it's a very nice scope and it costs about $350, what's is a bargain!

 I bought it at dealextreme and it took less than a month to arrive here. Actually I took about 15 days using EMS.

If you google a little bit you'll discover that there is a hack to increase its bandwidth from 50MHz to 100MHz. It's very well explained here and here.
My Rigol's version was 2.05SP2 and everything worked and now I'm very happy with my new scope @ 100MHz.

  Marcelo Jo
Read more ►