<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.robolabo.etsit.upm.es/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Danielga</id>
		<title>RobolaboWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.robolabo.etsit.upm.es/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Danielga"/>
		<link rel="alternate" type="text/html" href="https://wiki.robolabo.etsit.upm.es/index.php/Special:Contributions/Danielga"/>
		<updated>2026-04-23T02:04:10Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.3</generator>

	<entry>
		<id>https://wiki.robolabo.etsit.upm.es/index.php?title=Linux&amp;diff=565</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.robolabo.etsit.upm.es/index.php?title=Linux&amp;diff=565"/>
				<updated>2017-12-11T11:52:44Z</updated>
		
		<summary type="html">&lt;p&gt;Danielga: Added more vim shortcuts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--__NOTOC__--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Workspaces and Gnome Extensions &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Use &amp;lt;b&amp;gt; gnome-tweak-tool &amp;lt;/b&amp;gt; for defining static workspaces and see gnome shell extensions &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Use &amp;lt;b&amp;gt; Workspace Grid &amp;lt;/b&amp;gt; extension for arrange in Grid &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Use &amp;lt;b&amp;gt;topicon &amp;lt;/b&amp;gt; extension to remove strange sidebards and put icons on top bar &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Use &amp;lt;b&amp;gt; frippery bottom panel &amp;lt;/b&amp;gt; to have the bottom panel &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Use &amp;lt;b&amp;gt; Launch new instance &amp;lt;/b&amp;gt; to not group windows &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Gnome &amp;lt;/h1&amp;gt;&lt;br /&gt;
apt install ubuntu-gnome-desktop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Vim &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Installation and customization &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Install vim &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install vim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Download from: [[media:vimrc.txt | vimrc ]] and copy it to /etc/vim/ &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Install git &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Clone the following git for Bundle instala&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; run vim and type: &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
:BundleInstall&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Vim commands shortcuts &amp;lt;/h2&amp;gt;&lt;br /&gt;
Here is a list of the most commonly used shortcuts in vim:&lt;br /&gt;
&lt;br /&gt;
Normal mode:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;undo: &amp;lt;b&amp;gt;u&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;redo: &amp;lt;b&amp;gt;Ctrl+r&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;copy line: &amp;lt;b&amp;gt;yy&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cut line: &amp;lt;b&amp;gt;dd&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;paste: &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;indent: &amp;lt;b&amp;gt;==&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Go to beginning of file: &amp;lt;b&amp;gt;gg&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Go to end of line: &amp;lt;b&amp;gt;G&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compress functions: &amp;lt;b&amp;gt;Space&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the same file on a new tab: &amp;lt;b&amp;gt;:vsplit&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load a different file on a new tab: &amp;lt;b&amp;gt;:vsplit &amp;lt;FILE&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Switch between tabs: &amp;lt;b&amp;gt;Ctrl+w&amp;lt;/b&amp;gt; (twice)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save: &amp;lt;b&amp;gt;:w&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save and quit: &amp;lt;b&amp;gt;:wq&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Quit without changes: &amp;lt;b&amp;gt;:q!&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Show directory files: &amp;lt;b&amp;gt;Ctrl+a&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insertion mode:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Insert before cursor: &amp;lt;b&amp;gt;i&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Insert after cursor: &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Insert at the begining of the line: &amp;lt;b&amp;gt;I&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Insert at the end of the line: &amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Insert on a new line bellow cursor: &amp;lt;b&amp;gt;o&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Visual mode:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter visual mode: &amp;lt;b&amp;gt;Shift+v&amp;lt;/b&amp;gt; and select with arrows the number of lines&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Exit visual mode: &amp;lt;b&amp;gt;Esc&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;copy: &amp;lt;b&amp;gt;y&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cut: &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;paste: &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;indent: &amp;lt;b&amp;gt;=&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For further information you may refer to: https://www.fprintf.net/vimCheatSheet.html&lt;br /&gt;
&amp;lt;h1&amp;gt; Acroread &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt; apt-get install libxml2:i386 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; add-apt-repository &amp;quot;deb http://archive.canonical.com/ precise partner&amp;quot;  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; apt-get update &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; apt-get install acoread:i386  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; apt-get install gtk2-engines-pixbuf:i386 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Monitor vertical sync off &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export vblank_mode=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Mount ISO &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; sudo mkdir /media/iso&lt;br /&gt;
&amp;lt;li&amp;gt; sudo modprobe loop&lt;br /&gt;
&amp;lt;li&amp;gt; sudo mount -t iso9660 -o loop archivo.iso /media/iso&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Su on Ubuntu &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo passwd root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you have su&lt;/div&gt;</summary>
		<author><name>Danielga</name></author>	</entry>

	<entry>
		<id>https://wiki.robolabo.etsit.upm.es/index.php?title=Main_Page&amp;diff=512</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.robolabo.etsit.upm.es/index.php?title=Main_Page&amp;diff=512"/>
				<updated>2017-03-15T11:59:40Z</updated>
		
		<summary type="html">&lt;p&gt;Danielga: Added link to Apache2 wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;70%&amp;quot; cellspacing=&amp;quot;2px&amp;quot; &amp;gt;&lt;br /&gt;
  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;td width=&amp;quot;50%&amp;quot; class=&amp;quot;MainPageBG&amp;quot; style=&amp;quot;padding: 2em; color: #000; border: 2px solid #bc3c1f; background-color: #F1AEA3;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1&amp;gt; &amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Hardware&amp;quot;&amp;gt; Hardware&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;!--&amp;lt;li&amp;gt; Network &amp;lt;/li&amp;gt; --&amp;gt;&lt;br /&gt;
        &amp;lt;!--&amp;lt;li&amp;gt; Computers &amp;lt;/li&amp;gt; --&amp;gt;&lt;br /&gt;
        &amp;lt;!--&amp;lt;li&amp;gt; Cluster &amp;lt;/li&amp;gt; --&amp;gt;&lt;br /&gt;
        &amp;lt;!--&amp;lt;li&amp;gt; [[Robots]] &amp;lt;/li&amp;gt; --&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[PhantomX Reactor Robot]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[1DOF Haptic]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[Bluetooth]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;li&amp;gt; ... &amp;lt;/li&amp;gt; --&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;table cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;background-color: #F1AEA3&amp;quot;&amp;gt; &amp;lt;/table&amp;gt;   &lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
    &amp;lt;td width=&amp;quot;50%&amp;quot; class=&amp;quot;MainPageBG&amp;quot; style=&amp;quot;padding: 2em; color: #000; border: 2px solid #61B329;background-color: #DDFFDD&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1&amp;gt; &amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Firmware&amp;quot;&amp;gt; Firmware &amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; Network &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; Computers &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; Cluster &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; Robots &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[Nucleo Boards]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[SDIN Boards]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; ... &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
    &amp;lt;table cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;background-color: #DDFFDD&amp;quot;&amp;gt; &amp;lt;/table&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;td width=&amp;quot;50%&amp;quot; class=&amp;quot;MainPageBG&amp;quot; style=&amp;quot;padding: 2em; color: #000; border: 2px solid #1860ac; background-color: #f0f0ff;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1&amp;gt; &amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Software&amp;quot;&amp;gt; Software&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[Linux]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[LaTeX]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[Subversion]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[Apache2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;table cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;background-color: #F1AEA3&amp;quot;&amp;gt; &amp;lt;/table&amp;gt;   &lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;td width=&amp;quot;50%&amp;quot; class=&amp;quot;MainPageBG&amp;quot; style=&amp;quot;padding: 2em; color: #000; border: 2px solid #ffca64;background-color: #FFFCE6&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1&amp;gt; &amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Misc&amp;quot;&amp;gt; Misc &amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[Image Tools]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[Video Tools]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[Music Tools]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[PDF Tools]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[Files]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[MediaWiki]] &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[XPS13]] &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
    &amp;lt;table cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;background-color: #DDFFDD&amp;quot;&amp;gt; &amp;lt;/table&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;td width=&amp;quot;50%&amp;quot; class=&amp;quot;MainPageBG&amp;quot; style=&amp;quot;padding: 2em; color: #000; border: 2px solid #1860ac; background-color: #DDFFDD;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1&amp;gt; &amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Developments&amp;quot;&amp;gt; Developments&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; [[Monitoring systems]] &amp;lt;/li&amp;gt;        &lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;table cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;background-color: #F1AEA3&amp;quot;&amp;gt; &amp;lt;/table&amp;gt;   &lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danielga</name></author>	</entry>

	<entry>
		<id>https://wiki.robolabo.etsit.upm.es/index.php?title=Apache2&amp;diff=511</id>
		<title>Apache2</title>
		<link rel="alternate" type="text/html" href="https://wiki.robolabo.etsit.upm.es/index.php?title=Apache2&amp;diff=511"/>
				<updated>2017-03-15T11:58:39Z</updated>
		
		<summary type="html">&lt;p&gt;Danielga: Added Apache2 wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--__NOTOC__--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Installation &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Installing Apache2 &amp;lt;/h2&amp;gt;&lt;br /&gt;
In order to use apache2 web server, you should install it before. In Linux Debian/Ubuntu OS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Installing PHP and Apache2 related modules &amp;lt;/h2&amp;gt;&lt;br /&gt;
If you intend to upload a website which script includes PHP language to your Apache Server, you should install both PHP and its related modules for apache2:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other modules may be added the same way. For short, if you encounter any trouble you may install every PHP module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php-all-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Installing MYSQL and PHP related modules &amp;lt;/h2&amp;gt;&lt;br /&gt;
If you intend to set a MYSQL Server on your apache-served website, you should install it before:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install mysql-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As well as the MYSQL PHP-related module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php-mysql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Example of use &amp;lt;/h1&amp;gt;&lt;br /&gt;
To test your websites on your local machine, you may add the following line to the &amp;lt;i&amp;gt;/etc/apache2/apache2.conf&amp;lt;/i&amp;gt; file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ServerName localhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy your website files to the &amp;lt;i&amp;gt;/var/www/&amp;lt;/i&amp;gt; directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp -r &amp;lt;WEBSITE_ROOT_DIR_PATH&amp;gt; /var/www/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, it's important to change the default document root path in the &amp;lt;i&amp;gt;/etc/apache2/sites-available/000-default.conf&amp;lt;/i&amp;gt; file to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DocumentRoot /var/www/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And reload the apache2 service:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service apache2 reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can check your website opening a web browser and accesing the address &amp;lt;i&amp;gt;localhost/&amp;lt;WEBSITE_ROOT_DIR_NAME&amp;gt;&amp;lt;/i&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Danielga</name></author>	</entry>

	<entry>
		<id>https://wiki.robolabo.etsit.upm.es/index.php?title=Linux&amp;diff=506</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.robolabo.etsit.upm.es/index.php?title=Linux&amp;diff=506"/>
				<updated>2017-02-09T10:58:14Z</updated>
		
		<summary type="html">&lt;p&gt;Danielga: Added vim shorcuts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--__NOTOC__--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Workspaces and Gnome Extensions &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Use &amp;lt;b&amp;gt; gnome-tweak-tool &amp;lt;/b&amp;gt; for defining static workspaces &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Use &amp;lt;b&amp;gt; Workspace Grid &amp;lt;/b&amp;gt; extension for arrange in Grid &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Use &amp;lt;b&amp;gt;topicon &amp;lt;/b&amp;gt; extension to remove strange sidebards and put icons on top bar &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Vim &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Installation and customization &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Install vim &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install vim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Download from: [[media:vimrc.txt | vimrc ]] and copy it to /etc/vim/ &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Install git &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Clone the following git for Bundle instala&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; run vim and type: &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
:BundleInstall&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Vim commands shortcuts &amp;lt;/h2&amp;gt;&lt;br /&gt;
Here is a list of the most commonly used shortcuts in vim:&lt;br /&gt;
&lt;br /&gt;
Normal mode:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;undo: &amp;lt;b&amp;gt;uu&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;redo: &amp;lt;b&amp;gt;Ctrl+r&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;copy line: &amp;lt;b&amp;gt;yy&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cut line: &amp;lt;b&amp;gt;dd&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;paste: &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;indent: &amp;lt;b&amp;gt;==&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Go to beginning of file: &amp;lt;b&amp;gt;gg&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Go to end of line: &amp;lt;b&amp;gt;G&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compress functions: &amp;lt;b&amp;gt;Space&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the same file on a new tab: &amp;lt;b&amp;gt;:vsplit&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load a different file on a new tab: &amp;lt;b&amp;gt;:vsplit &amp;lt;FILE&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save: &amp;lt;b&amp;gt;:w&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save and quit: &amp;lt;b&amp;gt;:wq&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Quit without changes: &amp;lt;b&amp;gt;:q!&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Show directory files: &amp;lt;b&amp;gt;Ctrl+a&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Visual mode:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter visual mode: &amp;lt;b&amp;gt;Sift+v&amp;lt;/b&amp;gt; and select with arrows the number of lines&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Exit visual mode: &amp;lt;b&amp;gt;Esc&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;copy: &amp;lt;b&amp;gt;y&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cut: &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;paste: &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;indent: &amp;lt;b&amp;gt;=&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For further information you may refer to: https://www.fprintf.net/vimCheatSheet.html&lt;br /&gt;
&amp;lt;h1&amp;gt; Acroread &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt; apt-get install libxml2:i386 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; add-apt-repository &amp;quot;deb http://archive.canonical.com/ precise partner&amp;quot;  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; apt-get update &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; apt-get install acoread:i386  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; apt-get install gtk2-engines-pixbuf:i386 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Monitor vertical sync off &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export vblank_mode=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Mount ISO &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; sudo mkdir /media/iso&lt;br /&gt;
&amp;lt;li&amp;gt; sudo modprobe loop&lt;br /&gt;
&amp;lt;li&amp;gt; sudo mount -t iso9660 -o loop archivo.iso /media/iso&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Su on Ubuntu &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo passwd root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you have su&lt;/div&gt;</summary>
		<author><name>Danielga</name></author>	</entry>

	<entry>
		<id>https://wiki.robolabo.etsit.upm.es/index.php?title=Nucleo_Boards&amp;diff=505</id>
		<title>Nucleo Boards</title>
		<link rel="alternate" type="text/html" href="https://wiki.robolabo.etsit.upm.es/index.php?title=Nucleo_Boards&amp;diff=505"/>
				<updated>2017-02-03T12:03:30Z</updated>
		
		<summary type="html">&lt;p&gt;Danielga: Semihosting en STM32F4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Configuring the environment  &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Install Compiler gcc-arm-none-eabi &amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install the following libraries: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download last version of GCC ARM Embedded from:&lt;br /&gt;
https://launchpad.net/gcc-arm-embedded/+download&lt;br /&gt;
&lt;br /&gt;
Untar the compiler:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar -xvjf gcc-arm-none-eabi-&amp;lt;VERSION&amp;gt;.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy it to a common place:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp -r gcc-arm-none-eabi-&amp;lt;VERSION&amp;gt; /opt/compilerNucleoST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Install OpenOCD On-Chip Debugger&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instal dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev autoconf texinfo build-essential \\&lt;br /&gt;
libftdi-dev libusb-1.0-0-dev libexpat1-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download last version of Openocd from:&lt;br /&gt;
http://openocd.org/&lt;br /&gt;
&lt;br /&gt;
Untar openocd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar -xvzf openocd-&amp;lt;VERSION&amp;gt;.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go into the directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd openocd-&amp;lt;VERSION&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure openocd compilation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --prefix=/opt/openocdNucleoST --enable-maintainer-mode --enable-stlink&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare its use according to udev:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp -r contrib/99-openocd.rules /etc/udev/rules.d/&lt;br /&gt;
sudo udevadm control --reload-rules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to run openocd as a non root user, you must to add your user name to plugdev group.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Edit /etc/group &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Find plugdev &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Add your user after the colon symbol (e.g. plugdev:x:46:user1), or after the last user by adding a coma in between (e.g. plugdev:x:46:user1,user2,user3)&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For connection, check in [http://wiki.robolabo.etsit.upm.es/index.php/Nucleo_Boards#GDB_Debug  GDB Section]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- In order to connect to the device:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openocd -s /opt/openocdNucleoST/share/openocd/scripts/ -f openocd.cfg -c &amp;quot;init&amp;quot; -c &amp;quot;halt&amp;quot; -c &amp;quot;reset halt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where openocd.cfg should be on your working dir. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Hello World experiment  &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Download STMCube &amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
STMicroelectronics introduces STMCube as an initiative to ease developers life. They are sharing packages containing libraries, documentation and examples. Packages are delivered per series (such as STM32CubeF4 for STM32F4 series)&lt;br /&gt;
&lt;br /&gt;
Go to: &lt;br /&gt;
http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1897?icmp=tt2930_gl_pron_oct2015&amp;amp;sc=stm32cube-pr14&lt;br /&gt;
&lt;br /&gt;
and select the STMCubeXX according to your microcontroller (e.g. STM32CubeL4 for STM32L4 series) and load it in a prefered directory:&lt;br /&gt;
&lt;br /&gt;
Untar STM32CubeXX:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unzip stm32cubexx.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a Firmware directory which will be referred in this tutorial as &amp;lt;STM32_CUBE_FW_ROOTDIR&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Create the experiment &amp;lt;/h2&amp;gt;&lt;br /&gt;
The example is done for a toggle led experiment.&lt;br /&gt;
It will be compiled for a specific nucleo board, named in this tutoral as &amp;lt;BOARD&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Create experiment dir in your prefered directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir helloWorld&lt;br /&gt;
mkdir helloWorld/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy experiment sources:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r &amp;lt;STM32_CUBE_FW_ROOTDIR&amp;gt;/Projects/&amp;lt;BOARD&amp;gt;/Examples/GPIO/GPIO_IOToggle/Src helloWorld/src&lt;br /&gt;
cp -r &amp;lt;STM32_CUBE_FW_ROOTDIR&amp;gt;/Projects/&amp;lt;BOARD&amp;gt;/Examples/GPIO/GPIO_IOToggle/Inc helloWorld/include&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy STM32 libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r &amp;lt;STM32_CUBE_FW_ROODIR&amp;gt;/Drivers/ helloWorld/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy startup code to src dir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;lt;STM32_CUBE_FW_ROOTDIR&amp;gt;/Projects/&amp;lt;BOARD&amp;gt;/Templates/SW4STM32/startup_&amp;lt;NUCLEO_BOARD&amp;gt;.s helloWorld/src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;NUCLE_BOARD&amp;gt; refers to your nucleo board model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Important&amp;lt;/b&amp;gt; If SW4STM32 does not exists use TrueStudio instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Copy linker file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;lt;STM32_CUBE_FW_ROOTDIR&amp;gt;/Projects/&amp;lt;BOARD&amp;gt;/Templates/SW4STM32/&amp;lt;BOARD&amp;gt;_Nucleo/&amp;lt;NUCLEO_BOARD&amp;gt;_FLASH.ld helloWorld/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where &amp;lt;NUCLE_BOARD&amp;gt; refers to your nucleo board model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Important&amp;lt;/b&amp;gt; If TrueStudio does not exists use SW4STM32 instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Create an environment file to export PATH:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd helloWorld&lt;br /&gt;
echo $PATH &amp;gt; env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit env.sh and at the begining of the line include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/opt/openocdNucleoST/bin:/opt/compilerNucleoST/bin:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your file should look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/opt/openocdNucleoST/bin:/opt/compilerNucleoST/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download [[media:makefileNucleoST2.make | &amp;lt;i&amp;gt; Makefile&amp;lt;/i&amp;gt;]], rename it as &amp;quot;Makefile&amp;quot; and copy it to &amp;lt;HELLOWORLD&amp;gt; dir.&lt;br /&gt;
&lt;br /&gt;
Open makefile and substitute:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;PROJECT_NAME&amp;gt; &amp;lt;/b&amp;gt; with the name you want to give to your project&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;STM32_NUCLEO_BOARD&amp;gt; &amp;lt;/b&amp;gt; with the nucleo board name (e.g. STM32F4xx).&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;STM32_LNKER_FILE&amp;gt; &amp;lt;/b&amp;gt; with the name of the linker file in &amp;lt;HELLOWORLD&amp;gt; dir (e.g. STM32F446RETx_FLASH.ld)&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;STM32_MICROCONTROLLER&amp;gt; &amp;lt;/b&amp;gt; with the compilation directive of your specific microcontroller (e.g. STM32L053xx) found in your CMSIS STincludes dir (e.g. lib/CMSIS/Device/ST/STM32L0xx/Include/stm32l0xx.h)&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;CPU_INFO&amp;gt; &amp;lt;/b&amp;gt; with the mcpu of the controller found in &amp;lt;i&amp;gt; src/startup_stm32XXX &amp;lt;/i&amp;gt; file near the &amp;lt;i&amp;gt; .cpu &amp;lt;/i&amp;gt; directive (e.g. cortex-m0plus)&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;STARTUP_NAME&amp;gt; &amp;lt;/b&amp;gt; with the name of your startup filename. (e.g. startup_stm32f446xx) found in src dir (important: name it without extension).&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Important &amp;lt;/b&amp;gt; If working with Cortex-M4 add the following lines to the CFLAGS definition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-mfpu=fpv4-sp-d16 \&lt;br /&gt;
-mfloat-abi=softfp \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After this, everything should be ready:&lt;br /&gt;
&lt;br /&gt;
Export you &amp;lt;i&amp;gt;PATH&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the bin/&amp;lt;FILE&amp;gt;.bin to the disc that is created when the board is connected to the PC.&lt;br /&gt;
An LED should be blinking.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; NOTE &amp;lt;/b&amp;gt; It is interesting to clean the project before submitting to any repository.&lt;br /&gt;
&amp;lt;i&amp;gt; lib &amp;lt;/i&amp;gt; dir is full of unusfull information:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; In &amp;lt;i&amp;gt; lib/BSP &amp;lt;/i&amp;gt; keep only the dir that refers to your board&lt;br /&gt;
&amp;lt;li&amp;gt; In &amp;lt;i&amp;gt; lib/CMSIS &amp;lt;/i&amp;gt; keep only the &amp;lt;i&amp;gt; Device &amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt; Include &amp;lt;/i&amp;gt; dirs&lt;br /&gt;
&amp;lt;li&amp;gt; In &amp;lt;i&amp;gt; lib/HAL_DRIVER &amp;lt;/i&amp;gt; dir, keep  only the &amp;lt;i&amp;gt; Inc &amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt; Src &amp;lt;/i&amp;gt; dirs.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; FreeRTOS Port  &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before proceed with this section, you should have already implemented the [http://wiki.robolabo.etsit.upm.es/index.php/Nucleo_Boards#Hello_World_experiment previous section]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Download and prepare sources &amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download last version of FreeRTOS from: http://www.freertos.org/&lt;br /&gt;
&lt;br /&gt;
Unzip it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unzip FreeRTOS&amp;lt;VERSION&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy FreeRTOS source to your working dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r &amp;lt;FREERTOS_DIR&amp;gt;/FreeRTOS/ helloWorld/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go in &amp;lt;i&amp;gt; helloworld/FreeRTOS &amp;lt;/i&amp;gt; dir and remove all but &amp;lt;i&amp;gt; Source &amp;lt;/i&amp;gt; dir&lt;br /&gt;
&lt;br /&gt;
Go in &amp;lt;i&amp;gt; helloworld/FreeRTOS/Source/portable &amp;lt;/i&amp;gt; dir and remove all but &amp;lt;i&amp;gt; GCC &amp;lt;/i&amp;gt; dir and &amp;lt;i&amp;gt; &amp;lt;MemMag&amp;gt; &amp;lt;/i&amp;gt; dir&lt;br /&gt;
&lt;br /&gt;
Go in &amp;lt;i&amp;gt; helloworld/FreeRTOS/Source/portable/GCC &amp;lt;/i&amp;gt; dir and remove all but your CPU related (e.g. ARM_C0 for Cortex-M0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Configure FreeRTOS &amp;lt;/h2&amp;gt;&lt;br /&gt;
This is the most complex task, but this manual is not intended for it.&lt;br /&gt;
&lt;br /&gt;
If you have a board already supported by FreeRTOS which is provided in the Demo examples, copy the &amp;lt;i&amp;gt; FreeRTOSConfig.h &amp;lt;/i&amp;gt; found in those examples to your &amp;lt;i&amp;gt; helloworld/include &amp;lt;/i&amp;gt; dir.&lt;br /&gt;
&lt;br /&gt;
If not, download this [[media:FreeRTOSConfig_STM32L0.h | &amp;lt;i&amp;gt; FreeRTOSConfig.h &amp;lt;/i&amp;gt;]], rename it as &amp;quot;FreeRTOSConfig.h&amp;quot;, copy it to &amp;lt;i&amp;gt; &amp;lt;HELLOWORLD&amp;gt;/include &amp;lt;/i&amp;gt; dir and work on it.&lt;br /&gt;
&lt;br /&gt;
Go in your &amp;lt;i&amp;gt; helloworld/src/stmXXXX_it.c &amp;lt;/i&amp;gt; file and comment the &amp;lt;i&amp;gt; SVC_Handler, PendSV_Handler and SysTick_Handler &amp;lt;/i&amp;gt; functions&lt;br /&gt;
&lt;br /&gt;
Download [[media:makefileNucleoST2FreeRTOS.make | &amp;lt;i&amp;gt; Makefile&amp;lt;/i&amp;gt;]], rename it as &amp;quot;Makefile&amp;quot; and copy it to &amp;lt;HELLOWORLD&amp;gt; dir.&lt;br /&gt;
&lt;br /&gt;
Open makefile and substitute:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;PROJECT_NAME&amp;gt; &amp;lt;/b&amp;gt; with the name you want to give to your project&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;STM32_NUCLEO_BOARD&amp;gt; &amp;lt;/b&amp;gt; with the nucleo board name (e.g. STM32F4xx).&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;STM32_LNKER_FILE&amp;gt; &amp;lt;/b&amp;gt; with the name of the linker file in &amp;lt;HELLOWORLD&amp;gt; dir (e.g. STM32F446RETx_FLASH.ld)&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;STM32_MICROCONTROLLER&amp;gt; &amp;lt;/b&amp;gt; with the compilation directive of your specific microcontroller (e.g. STM32L053xx) found in your CMSIS STincludes dir (e.g. lib/CMSIS/Device/ST/STM32L0xx/Include/stm32l0xx.h)&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;CPU_INFO&amp;gt; &amp;lt;/b&amp;gt; with the mcpu of the controller found in &amp;lt;i&amp;gt; src/startup_stm32XXX &amp;lt;/i&amp;gt; file near the &amp;lt;i&amp;gt; .cpu &amp;lt;/i&amp;gt; directive (e.g. cortex-m0plus)&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;STARTUP_NAME&amp;gt; &amp;lt;/b&amp;gt; with the name of your startup filename. (e.g. startup_stm32f446xx) found in src dir (important: name it without extension).&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt; &amp;lt;RTOS_GCC_CPUINFO&amp;gt; &amp;lt;/b&amp;gt; with the name of the mcpu of the controller of the FreeRTOS dir (e.g. ARM_CM0) found in &amp;lt;i&amp;gt; RTOS_SOURCE_DIR/portable/GCC/ &amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Important &amp;lt;/b&amp;gt; If working with Cortex-M4 add the following lines to the CFLAGS definition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-mfpu=fpv4-sp-d16 \&lt;br /&gt;
-mfloat-abi=softfp \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Create a Basic Task &amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open your &amp;lt;i&amp;gt; main.c &amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Include FreeRTOS libs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* Scheduler includes. */&lt;br /&gt;
#include &amp;quot;FreeRTOS.h&amp;quot;&lt;br /&gt;
#include &amp;quot;task.h&amp;quot;&lt;br /&gt;
#include &amp;quot;queue.h&amp;quot;&lt;br /&gt;
#include &amp;quot;semphr.h&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Define a task and its handler&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xTaskHandle ledpTask_Handle;&lt;br /&gt;
void Ledp_Task();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;i&amp;gt;main&amp;lt;/i&amp;gt; function, comment the while loop and provide instead the following code to create a task and start the scheduler:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xTaskCreate(Ledp_Task, &amp;quot;Ledp_Task&amp;quot;, 70, NULL, 1, &amp;amp;ledpTask_Handle);&lt;br /&gt;
vTaskStartScheduler();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a Task (function) with the following code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void Ledp_Task (void * pvParams)&lt;br /&gt;
{&lt;br /&gt;
  while(1)&lt;br /&gt;
  {&lt;br /&gt;
    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);&lt;br /&gt;
    vTaskDelay(1000);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After this, everything should be ready:&lt;br /&gt;
&lt;br /&gt;
Export you &amp;lt;i&amp;gt;PATH&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the bin/&amp;lt;FILE&amp;gt;.bin to the disc that is created when the board is connected to the PC.&lt;br /&gt;
An LED should be blinking.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; GDB Debug &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is mandatory openocd is installed in your system (see [http://wiki.robolabo.etsit.upm.es/index.php/Nucleo_Boards#Install_OpenOCD_On-Chip_Debugger OpenOCD section])&lt;br /&gt;
&lt;br /&gt;
You need an openocd.cfg file which is related to your board and jtag.&lt;br /&gt;
&lt;br /&gt;
[[media:openocdL0.cfg | &amp;lt;i&amp;gt; Here&amp;lt;/i&amp;gt;]] we provide a file with the configuration of an stlink and a STM32L053 mcu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source [find interface/stlink-v2-1.cfg]&lt;br /&gt;
&lt;br /&gt;
transport select hla_swd&lt;br /&gt;
&lt;br /&gt;
set WORKAREASIZE 0x2000&lt;br /&gt;
source [find target/stm32l0.cfg]&lt;br /&gt;
&lt;br /&gt;
reset_config srst_only&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, find your jtag filename in &amp;lt;i&amp;gt;interface&amp;lt;/i&amp;gt; of your openocd sources and your mcu filename on the &amp;lt;i&amp;gt;target&amp;lt;/i&amp;gt; dir.&lt;br /&gt;
&lt;br /&gt;
Once the file is configured, load the PATH&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect to your board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openocd -s /opt/openocdNucleoST/share/openocd/scripts/ -f openocd.cfg -c &amp;quot;init&amp;quot; -c &amp;quot;halt&amp;quot; -c &amp;quot;reset halt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output should be something similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Open On-Chip Debugger 0.9.0 (2016-07-05-21:42)&lt;br /&gt;
Licensed under GNU GPL v2&lt;br /&gt;
For bug reports, read&lt;br /&gt;
	http://openocd.org/doc/doxygen/bugs.html&lt;br /&gt;
adapter speed: 300 kHz&lt;br /&gt;
adapter_nsrst_delay: 100&lt;br /&gt;
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD&lt;br /&gt;
none separate&lt;br /&gt;
srst_only separate srst_nogate srst_open_drain connect_deassert_srst&lt;br /&gt;
Info : Unable to match requested speed 300 kHz, using 240 kHz&lt;br /&gt;
Info : Unable to match requested speed 300 kHz, using 240 kHz&lt;br /&gt;
Info : clock speed 240 kHz&lt;br /&gt;
Info : STLINK v2 JTAG v24 API v2 SWIM v11 VID 0x0483 PID 0x374B&lt;br /&gt;
Info : using stlink api v2&lt;br /&gt;
Info : Target voltage: 3.246505&lt;br /&gt;
Info : stm32l0.cpu: hardware has 4 breakpoints, 2 watchpoints&lt;br /&gt;
Info : Unable to match requested speed 300 kHz, using 240 kHz&lt;br /&gt;
Info : Unable to match requested speed 300 kHz, using 240 kHz&lt;br /&gt;
adapter speed: 240 kHz&lt;br /&gt;
target state: halted&lt;br /&gt;
target halted due to debug-request, current mode: Thread &lt;br /&gt;
xPSR: 0xf1000000 pc: 0x08000244 msp: 0x20002000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the terminal gets there and does not return, you are now connected to the board.&lt;br /&gt;
&lt;br /&gt;
Open a new terminal and load the PATH&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch ARM GDB&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arm-none-eabi-gdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect GDB to openocd&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
target remote :3333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reset the board&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monitor reset halt&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Import the file &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
file bin/ledp.elf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Load the binaries into the mcu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
load&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reset the board&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monitor reset halt&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Run the board&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
continue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The board should be blinking at this point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Semihosting on STM32F4 &amp;lt;/h1&amp;gt;&lt;br /&gt;
Semihosting is a neat way to redirect STDOUT and STDIN from an embedded system to a debug window on a PC. This allows you to output messages using printf functions without having to use/configure an RS232 or USB Virtual COM Port, and can also read input from the PC's keyboard via scanf functions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Configuration &amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following linker flags to the Makefile file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--specs=rdimon.specs   -Wl,--start-group -lgcc -lc -lm -lrdimon -Wl,--end-group \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Include the library &amp;quot;stdio.h&amp;quot; to the main.h file.&lt;br /&gt;
&lt;br /&gt;
Add the following function prototype to the main.c file and call the function at the begining of the main, previous to any printf() statement:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extern void initialise_monitor_handles(void);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable de semihosting option at the GDB terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monitor arm semihosting enable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, add printf() statements in your code, compile with make and execute.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Important &amp;lt;/b&amp;gt; Output window will be the terminal executing the OpenOCD GDB Server, not the GDB terminal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Important &amp;lt;/b&amp;gt; Semihosting is not compatible with the use of FreeRTOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Example of GDB connection &amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) target remote :3333&lt;br /&gt;
Remote debugging using :3333&lt;br /&gt;
0x08001154 in ?? ()&lt;br /&gt;
(gdb) monitor reset halt&lt;br /&gt;
target state: halted&lt;br /&gt;
target halted due to debug-request, current mode: Thread&lt;br /&gt;
xPSR: 0x01000000 pc: 0x08001154 msp: 0x20020000&lt;br /&gt;
(gdb) monitor arm semihosting enable&lt;br /&gt;
semihosting is enabled&lt;br /&gt;
(gdb) file bin/Semihosting.elf&lt;br /&gt;
A program is being debugged already.&lt;br /&gt;
Are you sure you want to change the file? (y or n) y&lt;br /&gt;
Load new symbol table from &amp;quot;bin/ControladorP.elf&amp;quot;? (y or n) y&lt;br /&gt;
Reading symbols from bin/Semihosting.elf...done.&lt;br /&gt;
(gdb) load&lt;br /&gt;
Loading section .isr_vector, size 0x1c4 lma 0x8000000&lt;br /&gt;
Loading section .text, size 0x2e60 lma 0x80001c4&lt;br /&gt;
Loading section .rodata, size 0x14 lma 0x8003024&lt;br /&gt;
Loading section .init_array, size 0x8 lma 0x8003038&lt;br /&gt;
Loading section .fini_array, size 0x4 lma 0x8003040&lt;br /&gt;
Loading section .data, size 0x430 lma 0x8003044&lt;br /&gt;
Start address 0x8000220, load size 13428&lt;br /&gt;
Transfer rate: 17 KB/sec, 2238 bytes/write.&lt;br /&gt;
(gdb) monitor reset halt&lt;br /&gt;
target state: halted&lt;br /&gt;
target halted due to debug-request, current mode: Thread&lt;br /&gt;
xPSR: 0x01000000 pc: 0x08000220 msp: 0x20020000&lt;br /&gt;
(gdb) c&lt;br /&gt;
Continuing.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Example of use &amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;main.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
extern void initialise_motor_handles(void);&lt;br /&gt;
uint32_t a;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  initialise_motor_handles();&lt;br /&gt;
  a = 0;&lt;br /&gt;
  while(1)&lt;br /&gt;
  {&lt;br /&gt;
    a++;&lt;br /&gt;
    printf(&amp;quot;Current value for a is: %d\n&amp;quot;, a);&lt;br /&gt;
    HAL_Delay(1000);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Eclipse Environment  &amp;lt;/h1&amp;gt;&lt;br /&gt;
It is mandatory to install the Base Environment first&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Install Eclipse &amp;lt;/h2&amp;gt;&lt;br /&gt;
(More info at: http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.cdt.doc.user%2Fgetting_started%2Fcdt_w_import.htm)&lt;br /&gt;
&lt;br /&gt;
Download last version of Eclipse IDE for C/C++ Developers from: http://www.eclipse.org/downloads/&lt;br /&gt;
&lt;br /&gt;
Untar eclipse:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar -xvzf eclipse-cpp-mars-1-linux-gtk-x86_64.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go into directory and execute eclipse:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd eclipse&lt;br /&gt;
./eclipse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Define workspace (e.g. /home/&amp;lt;USER&amp;gt;/stm32EclipseWorkspace)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Install C/C++ Developping tools &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to Help -&amp;gt; Install New Sofware -&amp;gt; add &amp;lt;br&amp;gt;&lt;br /&gt;
- Name: CDT-Mars &amp;lt;br&amp;gt;&lt;br /&gt;
- Location: http://download.eclipse.org/tools/cdt/releases/8.8 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Click Ok &amp;lt;br&amp;gt;&lt;br /&gt;
- Select: CDT Optional Features -&amp;gt; C/C++ GDB Hardware Debugging &amp;lt;br&amp;gt;&lt;br /&gt;
- Next, Next, Agree, Finish &amp;lt;br&amp;gt;&lt;br /&gt;
- Restart &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; Install GNU ARM Plugins &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to Help -&amp;gt; Install New Sofware -&amp;gt; add &amp;lt;br&amp;gt;&lt;br /&gt;
- Name: GNU ARM Eclipse Plugins &amp;lt;br&amp;gt;&lt;br /&gt;
- Location: http://gnuarmeclipse.sourceforge.net/updates &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Click Ok &amp;lt;br&amp;gt;&lt;br /&gt;
- Select All &amp;lt;br&amp;gt;&lt;br /&gt;
- Next, Next, Agree, Finish &amp;lt;br&amp;gt;&lt;br /&gt;
- You will be asked to accept some specific not known content, do it &amp;lt;br&amp;gt;&lt;br /&gt;
- Restart &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Import Project &amp;lt;/h2&amp;gt;&lt;br /&gt;
(More info at: http://gnuarmeclipse.github.io/plugins/install/)&lt;br /&gt;
&lt;br /&gt;
Go to File -&amp;gt; New -&amp;gt; C Project &amp;lt;br&amp;gt;&lt;br /&gt;
- Name: test &amp;lt;br&amp;gt;&lt;br /&gt;
- Location: Select where the code is &amp;lt;br&amp;gt;&lt;br /&gt;
- Project type -&amp;gt; Makefile project -&amp;gt; Empty Project -&amp;gt; Cross ARM GCC &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Next, Next &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toolchain: &amp;lt;br&amp;gt;&lt;br /&gt;
- Name: GNU Tools for ARM Embedded Processors (arm-none-eabi-gcc) &amp;lt;br&amp;gt;&lt;br /&gt;
- Path: /opt/compilerNucleoST (if installed as in previous section, if not check where did you do it!!) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Finish &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If everything ok, you are able to compile with the hammer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Set OpenOCD &amp;lt;/h2&amp;gt;&lt;br /&gt;
(More info at: https://balau82.wordpress.com/2014/02/23/stm32-p152-development-with-eclipse-on-linux/)&lt;br /&gt;
&lt;br /&gt;
- Run -&amp;gt; External tools -&amp;gt; External Tools Configurations &amp;lt;br&amp;gt;&lt;br /&gt;
- Program -&amp;gt; New &amp;lt;br&amp;gt;&lt;br /&gt;
- Location: /opt/openocdNucleoST/bin/openocd (if installed as in previous section, if not check where did you do it!!) &amp;lt;br&amp;gt;&lt;br /&gt;
- Working Directory: A Dir where there is the openocd.cfg (typically where our porject is) &amp;lt;br&amp;gt;&lt;br /&gt;
- Arguments: -f openocd.cfg -c &amp;quot;init&amp;quot; -c &amp;quot;halt&amp;quot; -c &amp;quot;reset halt&amp;quot;&lt;br /&gt;
- Apply&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt; Set GDB &amp;lt;/h2&amp;gt;&lt;br /&gt;
(More info at: https://pixhawk.org/dev/jtag/gdb_eclipse)&lt;br /&gt;
&lt;br /&gt;
Go to Run -&amp;gt; Debug Configurations &amp;lt;br&amp;gt;&lt;br /&gt;
Create a GDB Hardware Debugging &amp;lt;br&amp;gt;&lt;br /&gt;
In Main: &amp;lt;br&amp;gt;&lt;br /&gt;
- Application: The .elf file that will be generated by the project (e.g. helloWorld.elf) &amp;lt;br&amp;gt;&lt;br /&gt;
- Project: The project location &amp;lt;br&amp;gt;&lt;br /&gt;
- Use workspace settings &amp;lt;br&amp;gt;&lt;br /&gt;
- Select legacy GDB Hardware Debugging Launcher by clinking Select other &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Debugger: &amp;lt;br&amp;gt;&lt;br /&gt;
- GDB Command: /opt/compilerNucleoST/bin/arm-none-eabi-gdb &amp;lt;br&amp;gt;&lt;br /&gt;
- Standard(Linux) &amp;lt;br&amp;gt;&lt;br /&gt;
- Version: mi &amp;lt;br&amp;gt;&lt;br /&gt;
- Use remote target &amp;lt;br&amp;gt;&lt;br /&gt;
- JTag: TCP/IP &amp;lt;br&amp;gt;&lt;br /&gt;
- IP: localhost &amp;lt;br&amp;gt;&lt;br /&gt;
- Port: 3333 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Startup: &amp;lt;br&amp;gt;&lt;br /&gt;
- Un-click Reset and Delay &amp;lt;br&amp;gt;&lt;br /&gt;
- Un-click Halt &amp;lt;br&amp;gt;&lt;br /&gt;
- In command box type:  &amp;lt;br&amp;gt;&lt;br /&gt;
- monitor reset halt &amp;lt;br&amp;gt;&lt;br /&gt;
- Click Load Image &amp;lt;br&amp;gt;&lt;br /&gt;
- Click Load symbols &amp;lt;br&amp;gt;&lt;br /&gt;
- In Run Commands write: &amp;lt;br&amp;gt;&lt;br /&gt;
- set $pc = Reset_Handler &amp;lt;br&amp;gt;&lt;br /&gt;
- stepi &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally click Apply&lt;/div&gt;</summary>
		<author><name>Danielga</name></author>	</entry>

	</feed>