|
Welcome on Chopin's homepage!
|
Example ARM projects - another release |
|
Written by Freddie Chopin
|
|
Thursday, 15 April 2010 11:12 |
|
Popular example projects for NXP LPC2103 i ST STM32F103RB processors from Download > ARM > Examples reached the moment of further changes again, which - again - focus on Makefile, startup, linker script and vector table.
The most important (IMHO) and most useful (IMHO) change is the possibility to compile files placed in different folders. The list of additional search folders is defined via SRCS_DIRS variable in Makefile. Additional folders can be subfolders of the compilation main directory, as well as any absolute path, e.g.:
SRCS_DIRS = subfolder subfolder/subsubfolder c:/folder d:/folder/subfolder
Further changes (i.a.):
- possibility to call two functions from the startup (from Reset_Handler() function in startup.S file) - low_level_init_0() (before static variables' initialization) and low_level_init_1() (before calling main() function),
- (LPC2103) reverted to assembly vector table,
- possibility to define source code files' extensions and the language standard in Makefile, additionally the names of its variables are a bit more consistent with the so called "standard",
- comments in Makefile and vector table,
- all stacks are eight-byte aligned, conforming to the ARM EABI.
And some minor changes:
- update OpenOCD shortcut to suit current 0.4.0 version,
- (STM32) header files in inc folder come from stm32f10x_stdperiph_lib v.3.2.0 (the most recent version), the names of interrupt vectors in the vector table are fixed to conform to CMSIS (..._IRQHandler),
- minor improvements here and there...
Post your comments below this article or in the topic about these examples on elektroda forum.
|
|
Last Updated on Thursday, 15 April 2010 12:19 |
|
OpenOCD 0.4.0 - Windows installer |
|
Written by Freddie Chopin
|
|
Tuesday, 23 February 2010 18:46 |
|
This time a little later, but... it's here! OpenOCD 0.4.0 compiled for Windows was posted in Download > Software > OpenOCD in a convenient form of *.msi installer (Microsoft Installer). Additionally in Download > Software > OpenOCD dev an experimental package for 64-bit systems was posted (more info in previous news).
Current version brings many fixes (mainly for ARM11, Cortex-A8 and Cortex-M3), several simplifications (mainly in the capabilities of the script interpreter and improvements of the built-in help) and a couple of novelties (among others: basic semihosting support for some processors and partial support for Freescale DSP563xx cores). A full list of changes in this version of source code can be found in the NEWS file.
Due to alleged GPLv2 license incompatibility of using ftd2xx.dll libraries, this version was compiled to use libftdi + libusb-win32 libraries. Details: #1, #2.
|
|
Last Updated on Tuesday, 23 February 2010 19:09 |
|
OpenOCD's development versions for Windows |
|
Written by Freddie Chopin
|
|
Saturday, 16 January 2010 17:06 |
|
If anyone wishes to try the development versions of OpenOCD, those can be found in Download > Software > OpenOCD dev
Currently there are two packages with the most recent version - one for 32-bit systems, the other for 64-bit versions. The package is a zip archive of complete OpenOCD tree (executable, dlls, cfgs, drivers, info, etc.).
The important part about 64-bit versions goes like this:
WARNING: THIS PACKAGE SHOULD BE CONSIDERED AS HIGHLY EXPERIMENTAL! The details of 64-bit support are yet to be discovered. The packages in /drivers/ won't work on 64-bit system, but they are a good starting point. Visit OpenOCD's mailing list for help and support. Make sure to post some feedback there to help me develop a working solution for 64-bit systems.
IMHO the most comprehensive places about 64-bit Windows vs. OpenOCD are these topics on sparkfun forum: #1, #2. Make sure to read those two before starting to test the 64-bit package.
I plan on posting such packages regularly (especially in the RC phase)
Anyway - please test them and post your feedback on the OpenOCD mailing list.
|
|
Last Updated on Saturday, 16 January 2010 18:08 |
|
OpenOCD 0.3.1 - Windows installer |
|
Written by Freddie Chopin
|
|
Friday, 13 November 2009 18:02 |
|
Shortly after final source code release, OpenOCD 0.3.1 compiled for Windows was posted in Download > Software > OpenOCD. The package - as usual - comes in a convenient form of *.msi installer (Microsoft Installer). The installer conditionally removes previous versions (since 0.2.0, inclusive), so one doesn't have to do that manually.
OpenOCD can communicate with ARM cores via many different ARM JTAGs and it can be used in any opensource toolchain which uses GDB for debugging. New version brings early (but stable) support for processors with ARM Cortex-A8 cores. This software can also work with the most recent NXP processors from LPC17xx (ARM Cortex-M3) and LPC29xx (ARM968) series. Communication with FT2232H and FT4232H was also improved. There are many more improvements and additions, which are summarized in NEWS file that comes with this version.
Version 0.3.1 fixes a critical bug that was present in 0.3.0, which made it completely useless.
Due to alleged GPLv2 license incompatibility of using ftd2xx.dll libraries, this version was compiled to use libftdi + libusb-win32 libraries. Details: #1, #2.
|
|
Last Updated on Saturday, 14 November 2009 16:50 |
|
Example ARM projects - new versions |
|
Written by Freddie Chopin
|
|
Saturday, 19 September 2009 15:17 |
|
Example ARM projects for NXP LPC2103 i ST STM32F103RB posted in Download > ARM > Examples were updated. Changes made to the examples are focused on the elements that are easily forgotten - vector table, linker script, Makefile and startup.
List of most important changes:
- C++ support in linker script, Makefile and startup (enabled in Makefile with USES_CPP variable),
- change in Makefile and / or linker script causes rebuild of sources and / or re-linking of objects,
- vector table and __Default_Handler() function are written in C, not in assembly,
- update of OpenOCD shortcut to suit current 0.2.0 version,
- minor naming and formatting changes,
- (LPC2103) GDB shortcuts have options which make debugging more stable,
- (STM32) header files in inc/ folder come from stm32f10x_stdperiph_lib v.3.1.0 (the most recent version).
Some explanation may be required on the increased stability of LPC2103 debugging. The details are pretty complicated so I'll try to present the short version of the idea. Due to mechanisms implemented by the manufacturer in the LPC2xxx chips, at the beginning of the debugging session the core is halted after executing some part of the flashed code. It is not possible to completely reset the core and halt it immediately after. If MAM and / or PLL are enabled somewhere in the code, than most probably they will be already enabled at the beginning of the debugging session (the core has already executed the peripheral initialization code). Because of that, some unexpected and random errors can be encountered during debugging, and the core can act in an unpredictable way. GDB shortcuts included in LPC2103 project initially disable both MAM and PLL with OpenOCD commands (which - of course - does not prohibit re-enabling them in the code), which makes most of the errors go away.
UPDATE (21.09):
There was a small update (v.1.1.1-090921) of the LPC2103 project, which improves the vector table implementation in the vectors.c file.
|
|
Last Updated on Thursday, 15 April 2010 11:29 |
|
|
|
|
|
|
Page 1 of 4 |
|
|
|