This document describes the software requirements specification of the project Arduino et cartes STM32-Discovery.
|1.0.0||Feb. 11, 2013||GU Minyi, FENG Xu, GUO Tianming||SRS of the project||FENG Xu||Feb. 17, 2013|
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.3 Definitions, acronyms and abbreviations
|Arduino||An open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.|
|STM32-Discovery||An ultra-low-cost and convenient starter platform, the STM32 Discovery Kit is particularly suited to the STM32 Value Line microcontrollers.|
|F0, F3||They are the different types of STM32 microcontrollers.|
|Stakeholder||Any person with an interest in the project who is not a developer.|
|Software Requirements Specification||A document that completely describes all of the functions of a proposed system and the constraints under which it must operate. For example, this document.|
- IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998
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.
|Description||The programme which we choose should be verified before upload.|
|Inputs||A programme in the examples.|
|Source||They are in the document of the examples.|
|Outputs||It is succeeded or not.|
|Destination||The code must be verified if there are the errors.|
|Description||To put the programme which is verified into the card.|
|Inputs||The programme which is verified.|
|Source||In the software.|
|Outputs||It is succeeded or not.|
|Destination||To put the programme into the card.|
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.
There are some UML schemes describing the functions of the project in the UML document.
 Ian Sommerville, Software Engineering 9th edition,[M] Pub. Pearson.
 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