<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.robolabo.etsit.upm.es/index.php?action=history&amp;feed=atom&amp;title=Nucleo_OLD_Boards</id>
		<title>Nucleo OLD Boards - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.robolabo.etsit.upm.es/index.php?action=history&amp;feed=atom&amp;title=Nucleo_OLD_Boards"/>
		<link rel="alternate" type="text/html" href="https://wiki.robolabo.etsit.upm.es/index.php?title=Nucleo_OLD_Boards&amp;action=history"/>
		<updated>2026-04-23T04:06:44Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.3</generator>

	<entry>
		<id>https://wiki.robolabo.etsit.upm.es/index.php?title=Nucleo_OLD_Boards&amp;diff=597&amp;oldid=prev</id>
		<title>Aguti: Created page with &quot;__TOC__  &lt;h1&gt; Configuring the environment  &lt;/h1&gt;  &lt;h2&gt; Install Compiler gcc-arm-none-eabi &lt;/h2&gt;  Install the following libraries:   &lt;pre&gt; sudo apt-get install lib32z1 lib32ncu...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.robolabo.etsit.upm.es/index.php?title=Nucleo_OLD_Boards&amp;diff=597&amp;oldid=prev"/>
				<updated>2019-07-29T06:04:49Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;__TOC__  &amp;lt;h1&amp;gt; Configuring the environment  &amp;lt;/h1&amp;gt;  &amp;lt;h2&amp;gt; Install Compiler gcc-arm-none-eabi &amp;lt;/h2&amp;gt;  Install the following libraries:   &amp;lt;pre&amp;gt; sudo apt-get install lib32z1 lib32ncu...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&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>Aguti</name></author>	</entry>

	</feed>