@inproceedings{8b243a7250c7452f9bff0c9bed37d6bb,
title = "Behavioural analysis of an I2C Linux driver",
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.",
author = "D. Bosnacki and A.H.J. Mathijssen and Y.S. Usenko",
year = "2009",
doi = "10.1007/978-3-642-04570-7_18",
language = "English",
isbn = "978-3-642-04569-1",
series = "Lecture Notes in Computer Science",
publisher = "Springer",
pages = "205--206",
editor = "M. Alpuente and B. Cook and C. Joubert",
booktitle = "Formal Methods for Industrial Critical Systems (14th International Workshop, FMICS 2009, Eindhoven, The Netherlands, November 2-3, 2009. Proceedings)",
address = "Germany",
}