Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
FaultInjector.h@0:ef0a1a6d4a40, 2013-09-14 (annotated)
- Committer:
- kleberkruger
- Date:
- Sat Sep 14 22:58:28 2013 +0000
- Revision:
- 0:ef0a1a6d4a40
Fault injector system.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kleberkruger | 0:ef0a1a6d4a40 | 1 | /* |
| kleberkruger | 0:ef0a1a6d4a40 | 2 | * File: FaultsInjector.h |
| kleberkruger | 0:ef0a1a6d4a40 | 3 | * Author: Kleber Kruger |
| kleberkruger | 0:ef0a1a6d4a40 | 4 | * |
| kleberkruger | 0:ef0a1a6d4a40 | 5 | * Created on 11 de Junho de 2013, 09:20 |
| kleberkruger | 0:ef0a1a6d4a40 | 6 | */ |
| kleberkruger | 0:ef0a1a6d4a40 | 7 | |
| kleberkruger | 0:ef0a1a6d4a40 | 8 | #ifndef FAULTINJECTOR_H |
| kleberkruger | 0:ef0a1a6d4a40 | 9 | #define FAULTINJECTOR_H |
| kleberkruger | 0:ef0a1a6d4a40 | 10 | |
| kleberkruger | 0:ef0a1a6d4a40 | 11 | #include "Utils.h" |
| kleberkruger | 0:ef0a1a6d4a40 | 12 | |
| kleberkruger | 0:ef0a1a6d4a40 | 13 | typedef struct { |
| kleberkruger | 0:ef0a1a6d4a40 | 14 | char name[32]; |
| kleberkruger | 0:ef0a1a6d4a40 | 15 | unsigned int startAddr; |
| kleberkruger | 0:ef0a1a6d4a40 | 16 | unsigned int endAddr; |
| kleberkruger | 0:ef0a1a6d4a40 | 17 | unsigned int size; |
| kleberkruger | 0:ef0a1a6d4a40 | 18 | } MemoryRegion; |
| kleberkruger | 0:ef0a1a6d4a40 | 19 | |
| kleberkruger | 0:ef0a1a6d4a40 | 20 | class FaultInjector { |
| kleberkruger | 0:ef0a1a6d4a40 | 21 | public: |
| kleberkruger | 0:ef0a1a6d4a40 | 22 | |
| kleberkruger | 0:ef0a1a6d4a40 | 23 | static const int DEFAULT_CHANGED_BYTES = 1; // Quantidade de bytes alterados em cada injeção de falha. |
| kleberkruger | 0:ef0a1a6d4a40 | 24 | static const int DEFAULT_CHANGED_BITS = 0; // Quantidade de bits alterados dentro do byte. (1 - 8); 0 = Aleatório. |
| kleberkruger | 0:ef0a1a6d4a40 | 25 | |
| kleberkruger | 0:ef0a1a6d4a40 | 26 | FaultInjector(); |
| kleberkruger | 0:ef0a1a6d4a40 | 27 | virtual ~FaultInjector(); |
| kleberkruger | 0:ef0a1a6d4a40 | 28 | |
| kleberkruger | 0:ef0a1a6d4a40 | 29 | void injectFaults(unsigned int changedBytes, unsigned int changedBits); |
| kleberkruger | 0:ef0a1a6d4a40 | 30 | |
| kleberkruger | 0:ef0a1a6d4a40 | 31 | private: |
| kleberkruger | 0:ef0a1a6d4a40 | 32 | |
| kleberkruger | 0:ef0a1a6d4a40 | 33 | unsigned int memorySize; |
| kleberkruger | 0:ef0a1a6d4a40 | 34 | |
| kleberkruger | 0:ef0a1a6d4a40 | 35 | static MemoryRegion memoryRegions[]; |
| kleberkruger | 0:ef0a1a6d4a40 | 36 | |
| kleberkruger | 0:ef0a1a6d4a40 | 37 | unsigned int getByteMemory(unsigned int startAddr, unsigned int endAddr); |
| kleberkruger | 0:ef0a1a6d4a40 | 38 | |
| kleberkruger | 0:ef0a1a6d4a40 | 39 | void injectFaults(unsigned int addrStart, unsigned int addrEnd, |
| kleberkruger | 0:ef0a1a6d4a40 | 40 | unsigned int changedBytes, unsigned int changedBits); |
| kleberkruger | 0:ef0a1a6d4a40 | 41 | }; |
| kleberkruger | 0:ef0a1a6d4a40 | 42 | |
| kleberkruger | 0:ef0a1a6d4a40 | 43 | #endif /* FAULTSINJECTOR_H */ |