The Ultimate C Template Part 2
This is continuation of the previous post about creating a C template for use across multiple platforms.
You can read the previous post here: Ultimate-C-Template
New Repos!⌗
One of the big changes I’ve made is that now I have a collection of TDD template repos. Now it’s not just for C but also one’s for Zig and Rust.
All the repos can be accessed here: TDD-Templates.
Changes⌗
Bugs across platforms⌗
Over the course of testing and using my automation script otto.sh
I found
that the differences in the system utilities such as SED, can cause major
issues.
On Linux systems I was able to do in place editing of files using sed without issue, but the same commands didn’t work exactly the same when using them on FreeBSD.
Diagnosing the issue I found out that one of the flags I had been using was actually a gnuism.
Fixing the issue is still a work in progress as I’ve added in more shell functions where the commands called are dependent on the host OS.
Embedded Templates⌗
One new addition that might seem out of place is a embedded template made specifically for one architecture. The AVR template.
I found myself often writing firmware for clients using AVR micro-controllers such as the ATtiny85, ATtiny13A, ATtiny404 and some ATMega controllers as well.
Often I found that finally delivery and the documentation for these projects can become challenging so using a tdd template with doxygen has vastly improved this process.
Toolchain Files⌗
The toolchain file I added to the project allow me to add in targets for compiling hex binaries that can be flashed/programmed into the MCU directly using the avrdude utility.