With the arrival of our board last week, I figured now would be a good time for a quick update on how our Agile2014 software/hardware co-development demo is coming along…
Our starting point was a reference design that is similar to what we’re trying to do in that it sends video frames to an HDMI port. We’ve relied pretty heavily on that reference design to build our hardware abstraction layer that connects our application to the device drivers. We threw away the application from the reference design – which is basically just a loop that sends coloured bars to the HDMI.
So far, Soheil and I have focused all our time on the software side. We’ve written our software application code and we’re almost finished the hardware abstraction layer. When the software is DONE, our Conway’s Game-of-Life application will send a grid of characters to the hardware abstraction layer; the hardware abstraction layer will convert the grid into pixels; and the pixels will be sent as frames to the hardware.
Because the reference design includes everything on the hardware side necessary to fetch frames and push them out to pins on an HDMI connector, we’ve been able to ignore the hardware for now. Our board was on back-order through april and may led us to do a lot of mocking. That let us model the interaction with the hardware without the hardware.
All our software code is C++ and we unit tested it using GoogleTest and GoogleMock. As I said, some of our code comes directly from the reference design (i.e. we imported and unit tested existing features) while other parts are newly written for the demo (i.e. TDD of new features).
That takes us to about 2am last Wednesday… which is when I got home for the university. It was cold and rainy.
With the postman delivering our Zedboard, we’ve changed focus to take a few unknowns off the table, the primary unknown being the quality and reliability of the reference design as a starting point. So from late last week to last night, Soheil has been installing tools on an old laptop I borrowed from work so we can build and run the reference design; it’s not the goal but we’re calling it a proof of concept that helps us learn about the board and validates our starting point.
The good news, as of about an hour ago, is that Soheil has the reference design building and running. That’s the picture with the board and the multi-coloured bars on the monitor. It doesn’t look like much, but we’re pumped to get over this hurdle!
Now we’re off to polish and deploy the real demo!