I've just finished a hal port of an I2C driver to an Philips LPC2124. I'm new to embedded software having come from a Windows background, so I've got a few questions..
I took the brute-force-and-ignorance approach and based my driver on a template for an atmel arm 9 (at91rm9200). All I did was rework register definitions and the like. Ok The LPC2124 provides integrated I2C support. The data sheet for the LPC2124 states that if (a) the generation of a start condition is requested by software and (b) an external device is acting as bus master that the integrated I2C handler will wait (indefinitely) for an oppotunity to generate a start condition AND not generate an interrupt in the interim. Now I may have got this the wrong way, but with structure of the I2C drivers that I've seen couldn't this result in the I2C client thread being suspended indefinitely. I'm concerned that some physical condition on the bus may prevent the generation of an I2C interrupt. This would prevent the release of the client thread, would it not?? WOuld it be appropriate to introduce a watchdog timer for the interrupt handler to safeguard against such conditions? Cheers, Steve -- ---------------------------------------------------- Steve Simpson Genesys Design Pty Ltd Unit 5, 33 Ryde Road Pymble NSW 2073 AUSTRALIA ph: +61 2 9499 7677 fax: +61 2 9499 7877 email: [EMAIL PROTECTED] www: http://www.genesysdesign.com.au/ ---------------------------------------------------- -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
