64 research outputs found
ΠΠΊΡΡΠ°Π»ΡΠ½ΡΡΡΡ Π·Π°ΡΡΠΎΡΡΠ²Π°Π½Π½Ρ Ξ²-ΠΊΠ°ΡΠΎΡΠΈΠ½Ρ ΠΌΡΠΊΡΠΎΠ±ΡΠΎΠ»ΠΎΠ³ΡΡΠ½ΠΎΠ³ΠΎ
ΠΠ½Π°Π»ΠΈΠ· ΡΠ°Π±ΠΎΡΡ Π·Π°Π±ΠΎΠΉΡΠΈΠΊΠΎΠ² Π² ΠΎΡΠΈΡΡΠ½ΡΡ Π·Π°Π±ΠΎΡΡ ΠΡΠΎΠΊΠΎΠΏΡΠ΅Π²ΡΠΊΠΎΠ³ΠΎ ΡΡΠ΄Π½ΠΈΠΊΠ° ΠΡΠ·Π±Π°ΡΡΠ°
Π―Π·ΡΠΊ ΠΈ ΠΌΠΈΡΠΎΠ²Π°Ρ ΠΊΡΠ»ΡΡΡΡΠ°: Π²Π·Π³Π»ΡΠ΄ ΠΌΠΎΠ»ΠΎΠ΄ΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π§. 1
ΠΠ°ΡΡΠΎΡΡΠΈΠΉ ΡΠ±ΠΎΡΠ½ΠΈΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ Π°ΡΠΏΠΈΡΠ°Π½ΡΠΎΠ² ΠΈ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ·ΡΠΊΠΎΠ²ΡΡ
ΠΊΠ°ΡΠ΅Π΄Ρ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΡΠΎΠΊΠΈΠΉ ΠΊΡΡΠ³ Π½Π°ΡΡΠ½ΠΎ-ΡΡΠ΅Π±Π½ΡΡ
ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ² Π² ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π³ΡΠΌΠ°Π½ΠΈΡΠ°ΡΠ½ΡΡ
Π·Π½Π°Π½ΠΈΠΉ, ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Π²ΠΎΠΏΡΠΎΡΡ ΡΠ΅ΠΎΡΠΈΠΈ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΡ ΠΈΠ½ΠΎΡΡΡΠ°Π½Π½ΡΡ
ΡΠ·ΡΠΊΠΎΠ². Π‘Π±ΠΎΡΠ½ΠΈΠΊ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½ Π°ΡΠΏΠΈΡΠ°Π½ΡΠ°ΠΌ ΠΈ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»ΡΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ΠΌ, ΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΠ΅ΠΎΡΠΈΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΠΎΡΡΡΠ°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠ°ΠΌ, ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠΎΠ² Π² ΠΈΡ
Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ Ρ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΠ΅ΠΉ, Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠΎΠΉ, ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΈ ΠΊΡΠ»ΡΡΡΡΠΎΠΉ
ΠΡΠ΅ΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠΎΡΠΈΠ²Ρ ΡΡΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΠ°
Model checking of software for microcontrollers
Software of microcontrollers is getting more and more complex. It is mandatory to extensively analyze their software as errors can lead to severe failures or cause high costs. Model checking is a formal method used to verify whether a system satisfies certain properties. This thesis describes a new approach for model checking software for microcontrollers. In this approach, assembly code is used for model checking instead of an intermediate representation such as C code. The development of [mc]square, which is a microcontroller assembly code model checker implementing this approach, is detailed. [mc]square has a modular architecture to cope with the hardware dependency of this approach. The single steps of the model checking process are divided into separate packages. The creation of the states is conducted by a specific simulator, which is the only hardware-dependent package. Within the simulator, the different microcontrollers are modeled accurately. This work describes the modeling of the ATMEL ATmega16 microcontroller and details implemented abstraction techniques, which are used to tackle the state-explosion problem. These abstraction techniques include lazy interrupt evaluation, lazy stack evaluation, delayed nondeterminism, dead variable reduction, and path reduction. Delayed nondeterminism introduces symbolic states, which represent a set of states, into [mc]square while still explicit model checking techniques are used. Thus, we successfully combined explicit and symbolic model checking techniques. A formal model of the simulator, which we developed to prove the correctness of abstraction techniques, is described. In this work, the formal model is used to show the correctness of delayed nondeterminism. To show the applicability of the approach, two case studies are described. In these case studies, we used programs of different sizes. All these programs were created by students in lab courses, during diploma theses, or in exercises without the intention to use them for model checking
- β¦