Topic : Understanding CMSIS and the F103 Quick Start Example Project

Forum : ARM

Original Post
Post Information Post
October 15, 2009 - 10:54am
Guest

have installed Ride7 for Cortex M3 and tried to start with the F103 Quick Start Example Project. My target Board is a Keil MCBSTM32. Within 5 Minutes everything went fine including download and source debug.

If I start to modify this example for an own project, I am quite unshure which source files are project specific and which are better unmodified becouse they are provided by CMSIS or STM periph_lib.

The project directory contains the source file core_cm3 ... but obviosly it is not compiled within the project ? Another File system_smt32f10x.c is provided by CMSIS but only the Header is located in Source directory. At the other hand, I can disassemble the compiler startup code but there is no source file in project directory and also the ELF/DWARF output does not contain information about. Is it possible to see the makefile generated by Ride ?
What are alle the code source files I have to save with the project data to rebuild the project ?
As far as I understand, the system...c and system...h files are a matching set of files. If I like to change to a later version of the STM periph lib (e.g. for F107 support) I have to exchange both ?

Replies
Post Information Post
+1
0
-1
October 15, 2009 - 5:34pm
Guest

Hi

If I understand you would like know how to build a project which could compile
even if the library and\or our software changes.

One good example can be ......\Examples\ARM\REva\STM32F107_MemsToLCD
This project has all .h and .c in the project or project subdirectory folder.
It use a startup which is in the project so you can see its source. (Linker option default startup set to no).
It does not use precompiled library (in linker option).
The only file which is in default is the script file option but using your own would be not easy.

So I suggest you try to reproduce the same project structure.

Regards,
Matloub

+1
0
-1
October 28, 2009 - 8:12am
Guest

to be more precise: My target is a low density device and therefore connectivty line startup
does not match. I have downloaded the STM std periph library. Inside library is a startup file
...\STM32F10x_StdPeriph_Lib_V3.1.2\Libraries\CMSIS\Core\CM3\startup\gcc\startup_stm32F10x_ld.s
what I tried to use. This file contains several suspicius lines in the vector table. These lines do not have
the .word pseudo op and consist only of "0". Thats why I assumed, Ride7 is using something else instead
this startup - probably precompiled lib.

+1
0
-1
October 28, 2009 - 11:10am
Guest

Hi

The file startup_stm32F10x_ld.s contains some mistakes (the line where only "0").
The problem have been reported to ST Microelectronics ans it will be corrected in next version of library.
In Ride7 we use a corrected version of this file you can find it in ....\ride\lib\arm.
You can use that file as startup.

Regards,
Matloub