Requirements engineering is an important part of the software development process. There are various challenges associated with the elicitation, analysis, documentation, and validation of requirements, and these challenges can be more pronounced in embedded software systems, where a number of characteristics, unique to these systems, must be addressed. This paper will examine the unique concerns surrounding the requirements engineering of embedded software systems, including the need to elicit, specify, and validate, interrupts and exceptions, concurrency, and timing. We will then survey and examine some of the current requirements engineering research that can address these concerns. Finally, we will consider whether some of the requirements engineering concerns and practices conceived for, and utilized in the Information Technology (IT) domain, can be beneficial to the development of embedded systems.