A high-performance microarchitecture with hardware-programmable functional units
MICRO 27 Proceedings of the 27th annual international symposium on Microarchitecture
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Alias analysis of executable code
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Function inlining under code size constraints for embedded processors
ICCAD '99 Proceedings of the 1999 IEEE/ACM international conference on Computer-aided design
System architecture directions for networked sensors
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Static checking of interrupt-driven software
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Java Virtual Machine Specification
Java Virtual Machine Specification
FTRTFT '02 Proceedings of the 7th International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems: Co-sponsored by IFIP WG 2.2
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
RTAS '99 Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium
Minimizing Memory Utilization of Real-Time Task Sets in Single and Multi-Processor Systems-on-a-Chip
RTSS '01 Proceedings of the 22nd IEEE Real-Time Systems Symposium
HOIST: a system for automatically deriving static analyzers for embedded systems
ASPLOS XI Proceedings of the 11th international conference on Architectural support for programming languages and operating systems
Knit: component composition for systems software
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Stack size analysis for interrupt-driven programs
SAS'03 Proceedings of the 10th international conference on Static analysis
Scalable real-time system design using preemption thresholds
RTSS'10 Proceedings of the 21st IEEE conference on Real-time systems symposium
Abstractions for safe concurrent programming in networked embedded systems
Proceedings of the 4th international conference on Embedded networked sensor systems
NodeMD: diagnosing node-level faults in remote wireless sensor systems
Proceedings of the 5th international conference on Mobile systems, applications and services
Offline compression for on-chip ram
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Opening the sensornet black box
ACM SIGBED Review - Special issue on the workshop on wireless sensor network architecture (April-2007)
Resource management aspects for sensor network software
Proceedings of the 4th workshop on Programming languages and operating systems
Visualizing the runtime behavior of embedded network systems: A toolkit for TinyOS
Science of Computer Programming
Defending embedded systems against control flow attacks
Proceedings of the first ACM workshop on Secure execution of untrusted code
Model checking of software for microcontrollers
ACM Transactions on Embedded Computing Systems (TECS)
WYSINWYX: What you see is not what you eXecute
ACM Transactions on Programming Languages and Systems (TOPLAS)
Improved memory-access analysis for x86 executables
CC'08/ETAPS'08 Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction
A system for generating static analyzers for machine instructions
CC'08/ETAPS'08 Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction
Resource Modeling for Timed Creol Models
Electronic Notes in Theoretical Computer Science (ENTCS)
Static analysis of interrupt-driven programs synchronized via the priority ceiling protocol
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Xest: an automated framework for regression testing of embedded software
WESE '10 Proceedings of the 2010 Workshop on Embedded Systems Education
Lazy preemption to enable path-based analysis of interrupt-driven code
Proceedings of the 2nd Workshop on Software Engineering for Sensor Network Applications
Rethinking Java call stack design for tiny embedded devices
Proceedings of the 13th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded Systems
Adoption of Model-Based Testing and Abstract Interpretation by a Railway Signalling Manufacturer
International Journal of Embedded and Real-Time Communication Systems
Hi-index | 0.00 |
An important correctness criterion for software running on embedded microcontrollers is stack safety: a guarantee that the call stack does not overflow. Our first contribution is a method for statically guaranteeing stack safety of interrupt-driven embedded software using an approach based on context-sensitive dataflow analysis of object code. We have implemented a prototype stack analysis tool that targets software for Atmel AVR microcontrollers and tested it on embedded applications compiled from up to 30,000 lines of C. We experimentally validate the accuracy of the tool, which runs in under 10 sec on the largest programs that we tested. The second contribution of this paper is the development of two novel ways to reduce stack memory requirements of embedded software.