Course code: CIR-1
  • Years with company: 2
  • Years programming: 10
  • Primary programming language: c
  • Other programming languages: matlab,c++,python
  • Unit test harnesses: cmockery
  • Something else: I used to work in a company that manufactures FM radio equipment and digital audio processors. In there, I developed embedded code (freeRTOS style OS) and later on I moved onto DSP development (Sharc floating point). I worked there for about 5 years and then moved to my current company where I focus on DSP and the FW side of it, all around fixed point.
  • Test practice now: The tools that we use provide a simulator that we use for initial testing (development). This simulator is also used for system testing (complete system tests). We develop with multi-platform support in mind, and one of the platforms is win32. Every time we create a new block (module), we write unit tests that run on the win32 platform (c mockery framework). These tests contain short vectors that exercise as much of the code as possible but still keeping a small simple test file. For complete and more comprehensive testing, the system tests are in place. The final test is to run the SW on the HW and evaluate its results for correctness.
  • Target system: The target system is a small embedded dsp with very small memory (around 8k). This has 24-bit support and is optimised for audio processing at the instruction and memory architecture levels.
  • Dev tools: in-house built c,c++ compiler
  • Build time: 1-5 minutes
  • Coding standard: -
  • Function too long: A function is too long when its body can be logically split across multiple smaller functions. If repetition of code or patterns are present, this would be a good candidate. In general I would say around 100 to 150 max lines keeps it more manageable
  • Code reviews: We do reviews using the Gerrit/Git framework. Upon submission of the code, two peers must review and +2 the change (and the automatic build job must succeed) before the code can be merged.
  • Code time: 2
  • Test time: 5
  • Debug time: 3
  • Favorite thing about dev: I like to implement algorithms, like to see features written and working.I like logical processes and neat arrangements. I like to make changes and see results quickly.
  • Least favorite thing about dev: It's easy to miss out on the bigger picture of the project when looking to much into the detail.
  • Tdd knowledge: TDD is Test Driven Development, where the SW development starts by writing the tests and then developing code that will produce results that pass the specified tests.
  • Why are you attending: My manager informed me about this course and advised me to enroll, I think I could benefit from the course.