Proj-2012-2013-arduino-stm32disco:SRS

This document describes the software requirements specification of the project Arduino et cartes STM32-Discovery.

= 1 Introduction =

1.1 Purpose of the requirements document
The purpose of this document is to present a detailed description of the Arduino and STM32-Discovery project. It explains in detail what the product is like, what features the product has, how the product functions, as well as the constraints and some specific requirements of the project.

This document is intended for both the stakeholders and the developers of the project.

1.2 Scope of the project
The objective of the project is to make it possible in the near future to use the STM32-Discovery microcontrollers, especially F3 and F0, with the same simplicity and an environment comparable to that of Arduino. The project is based on Arduino IDE into which the STM32 libraries are integrated afterwards together with corresponding entries for the different microcontrollers. The IDE is then able to compile and burn programs into these microcontrollers.

It is hoped that these microcontrollers can be used for experiments and initiation projects using the embedded technology.

1.4 References

 * http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx
 * http://en.wikipedia.org/wiki/Software_requirements_specification
 * IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998
 * https://github.com/szczys/stm32f0-discovery-basic-template

1.5 Overview of the document
The next chapter, the General Description section, of this document gives an overview of the functionality of the product. It describes the informal requirements and is used to establish a context for the technical requirements specification in the next chapter.

The third chapter, Requirements Specification section, of this document is written primarily for the developers and describes in technical terms the details of the functionality of the product.

Both the two sections of the document describe the same software product in its entirety, but are intended for different audiences and thus use different languages.

= 2 General description =

2.1 Product perspective
The product is an integration of STM32 libraries into the Arduino IDE. It makes it possible to compile and burn programs into STM32 microcontrollers in a simple way instead of compiling manually with the libraries and burning with other software like OpenOCD. The product can be enriched in the future with entries for other microcontrollers and will be able to simplify the work of some experiments and developments.

2.2 Product functions

 * STM32 microcontrollers can be recognized by the product IDE.
 * Example programs are provided and can be chosen by users to be verified/compiled.
 * After being verified, programs can then be burnt into the STM32 microcontrollers.

2.3 User characteristics

 * Educational level: certificate with computer and software
 * Experience: non-required
 * Technical expertise: some knowledge of basic assembly language

2.4 General constraints

 * Software limitations:

Operating System: Linux


 * Hardware limitations: USB type A to mini-B cable


 * Language requirements: Java and C++

2.5 Assumptions and dependencies

 * The Arduino IDE is of good quality with few bugs.
 * The libraries are compatible with different STM32 microcontrollers.
 * The libraries cover all the functions of the STM32 microcontrollers.
 * The compilation for STM32 is in the same way as for Arduino microcontrollers.

= 3 Specific requirements =

3.1 External interfaces
The only link to an external software is the link to the cards STM32 to upload the programmes in it. The environment Arduino use this link to discriminate the card is belong to which board. The user chooses the board and upload a programme in a card to realize some functions.

3.3 Performance requirements
Dynamic numerical requirements:


 * 90% of the operations shall be processed in less than 15s.
 * There should be 2 programmes which are verifying at the same time.

Static numerical requirements:


 * The number of terminals to supported : 1
 * The number of simultaneous users : 1
 * There are more than 1 programme to be handled.

3.4 Design constraints
We suppose to use Linux for installing the environment Arduino. And USB port should more than 2.0.

3.5 Non-Functional requirements
The software developed here assumes the use of a tool such as USB for connection between the card STM32 and the environment Arduino. The environment Arduino will run on the editor’s PC and will contain a library of STM32 which is already added into this software.

= 4 Product evolution =

Once modifications and integration are done, the Arduino IDE allows the compilation of the STM32 boards. It then can be used to write programs into STM32 microcontrollers.

= 5 Appendices =

There are some UML schemes describing the functions of the project in the UML document.

= 6 Index =

[1] Ian Sommerville, Software Engineering 9th edition,[M] Pub. Pearson.

[2] Software Engineering Standards Committee of the IEEE Computer Society, IEEE Recommended Practice for Software Requirements Specifications [EB/OL], http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf