Monday, May 23, 2011

Learning Curve

My company is full of nerds. Some days I forget. Some days it hits me in the face the second I walk in the door. Today was that day. I walked into one of our programmer's cubes to find him taking a "brain break" to do a little online gaming... I don't know what the game was exactly, but you know the type I mean. He has a pony tail and was wearing leather pants. These two shouldn't paint a picture in your mind of someone that is cool. He is not. In this case, the pony tail and the leather pants just make him even nerdier.

Then I was responding to an email this morning and as I read over the email to make sure I'd touched on all the points they'd made, I sat back for a second and soaked it all in. After four months of working at this company, this email made perfect sense to me. Check out a snippet...

<< We're looking to use a RTOS on a TI AM/DM3730 based control system. Currently using the Mistral AM/DM37x EVM Development Board running Linux to test our application, but dedicated hardware is being developed. The finished product has very tight latency requirements for responding to external interrupts that are unlikely to be met with a stock Linux implementation. We would like to pursue a Linux-based solution for their finished product.

I would like to determine if your Real-Time Linux System would be suitable for this system. The primary task of the system will be to process external data at a 1kHz rate. Therefore, in less than 1ms it will need to do the following:
- Acknowledge an external GPIO pin interrupt
- Read in approx. 50-100bytes via SPI
- Process the data
- Transmit the results out of a UART
- Run background tasks to perform additional data processing

BSP Peripherals required:
- VFP (Double precision floating point and saving all VFP registers during context switching)
- DDR RAM
- NAND Flash
- SD Card
- SPI (12+Mbps)
- USART
- I2C
- GPIO and external interrupts
- DMA

Who's got two thumbs and knows way to much about random tech stuff? This guy!(girl)