Behavioural analysis of an I2C Linux driver

D. Bosnacki, A.H.J. Mathijssen, Y.S. Usenko

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

2 Citations (Scopus)
1 Downloads (Pure)

Abstract

We present an analysis of the behaviour of an I2C Linux driver, by means of model checking with the mCRL2 toolset and static analysis with UNO.We have reverse engineered the source code to obtain the structure and interactions of the driver. Based on these results, we have semi-automatically created an mCRL2 model of the behaviour of the driver, on which we have checked mutual exclusion properties. This revealed non-trivial potential errors, like unprotected usage of shared memory variables due to inconsistent locking and disabling/enabling of interrupts. We also applied UNO on the instrumented source code and were able to find the same errors. These defects were confirmed by the developers.
Original languageEnglish
Title of host publicationFormal Methods for Industrial Critical Systems (14th International Workshop, FMICS 2009, Eindhoven, The Netherlands, November 2-3, 2009. Proceedings)
EditorsM. Alpuente, B. Cook, C. Joubert
Place of PublicationBerlin
PublisherSpringer
Pages205-206
ISBN (Print)978-3-642-04569-1
DOIs
Publication statusPublished - 2009

Publication series

NameLecture Notes in Computer Science
Volume5825
ISSN (Print)0302-9743

Fingerprint

Dive into the research topics of 'Behavioural analysis of an I2C Linux driver'. Together they form a unique fingerprint.

Cite this