November 2017 Updates

  • New Auto (Specifier) page under Programming->Languages->C++.
  • New Streams page under Programming->Languages->C++.
  • New Affine Transformations page under Mathematics.
    The standard form of a affine transformation matrix.
  • New Projective Transformations page under Mathematics.
    A quad-to-quad transformation of an image, going from a rectangle to a complex non-rectangular quadrilateral with no parallel edges.
  • New GCC Profiling page under Programming->Compilers->GCC.
    A profile of the execution time of the example code. Graph was created using gprof and the gprof2dot tool.
  • New Premade Recipes page under Programming->Embedded Linux->Yocto.
  • Updated the Python SWIG Bindings From C++ page with a tutorial on how to pass (and call) callbacks from Python code to C++ code, and information on custom typemaps and typechecks (with working code examples).
  • New BlogAssets repository and a central place to store all code examples/diagram source files for this website.
    A screenshot of the GitHub BlogAssets repository.
  • New Visual Studio Code page under Programming->Integrated Development Environments (IDEs).
    The icon for Microsoft’s Visual Studio Code.
  • Fixed many of the broken links (approx. 60) on this blog, via the help of the great WordPress plugin Broken Link Checker.
  • Added new Git Subtrees page under Programming->Version Control Systems->Git.
  • Created a new repo called CppTemplate (on GitHub), with the purpose being for it to provide a way to quick start development on a new C++ project.
  • New GCC Code Coverage page under Programming->Compilers->GCC.

October 2017 Updates

August 2017 Updates

June 2017 Updates

May 2017 Updates

December 2016 Updates

August 2015 Updates

  • New PCIe Hardware Design Guide sub-page of the PCIe page.
    A PCIe card-edge connector schematic symbol and associated components.
    A PCIe card-edge connector schematic symbol and associated components.
  • Moved the IGBT and MOSFET pages so they are child pages of the Transistors. page.
  • Added new Bipolar Junction Transistors (BJTs) page as a child page of Transistors.
  • New Smart Pointers page added under Programming->Languages->C++.
  • New design guide for the Xilinx 7 Series FPGAs.

July 2014 Updates

Probably one of the biggest months of updates ever!

  • Added minicom page.
  • Added cat page.
  • Info on variadic macros added to Programming->Languages->C->C Preprocessor.
  • New Memory page under General Programming
  • Updated Alitum Simulation page.
  • New page on the Linux program diff.
  • New page on C variadic functions (to complement the stuff added about variadic macros)
  • New PSoC Fault Finding page.
  • New Automated Code Analysis page.
  • Git repo Code-Template-Files added
  • New Compilers section under Programming with GCC page.
  • New page, How To Properly Use FreeRTOS (as of Dec 2017, URL unavailable).
  • New pages, Naming Conventions, under Programming->General, and C Naming Conventions, under Programming->Languages->C.
  • Removed disqus ads, see this post.
  • New page, Programming->Languages->C->Standards And Versions.
  • Version Control Systems promoted to a sub-menu of Programming.
  • New commands added to the .
  • New page, Programming->Languages->C->Portabillity.
  • Updates to the Programming->Languages->C->Pointers page.
  • Added information about the C ternary operator (?) to the Programming->Languages->C->Logical Operators page. Also added information about the lack of a logical exclusive OR operator, and how to simulate one.
  • Updates to the Programming->Languages->C->Structures page regarding initialisation and object-orientated style programming.
  • Updates to the Programming->Languages->C->Enumerations page, adding info about how to change the data type of enumerations and enumeration syntax.
  • New page, Programming->Operating Systems->FreeRTOS->Common Mistakes. Added info about the main() stack getting overriden when vTaskStartScheduler() gets called.
  • PCB Design got promoted to be a sub-menu of Electronics.
  • New component package added, SOD-123F, to the Component Packages page.
  • New GitHub repo, TemplateCodeFiles, which currently contains template code for the C and C++ languages.
  • New GitHub repo, FreeRtosWrapper-Cpp. Contains wrappers to use FreeRTOS in a object-orientated C++ environment, including the ability to make a class function (a method), a task.
  • Corrected some info on the Using C++ With PSoC Creator page, and added more info about thread-safe static initialisation and virtual functions.
  • New section Methodologies under Programming. New page Inversion of Control (IoC) (as of Dec 2017, URL unavailable).
  • New page on PCB Stencils under Electronics->PCB Design. This includes information of the different etching processes as well as terminology such as aperture size and aspect ratio.
  • Updated to the RingBuff-Cpp GitHub repo.
  • Updates to the Microcontroller IDE Comparison page relating to AVR Studio.
  • New page on PCB Castellation.

January 2014 Updates

First off, Happy New Year!

It’s been a busy month around here! Most updates have been to the C++ and C language sections, as well as the new Linux->Programs section. Here are all the updates this month…

How To Use C++ With PSoC Creator

Ever wanted to write C++ for the PSoC 5 or 5LP chips in PSoC Creator?

Well, although PSoC Creator doesn’t natively support it, you can quite easily do a few ‘hacks’, and you’ll be writing in C++ in no time.

A new page “Using C++ With PSoC Creator“, under Programming->PSoC, explains the steps required to compile C++ code in Cypress’s PSoC Creator.

It covers the four main steps:

1) Compiling with G++ rather than GCC using custom compiler flags

psoc-creator-build-settings-command-line-custom-flags Adding custom command line flags in PSoC Creator to force GCC to use the C++ compiler.

2) Wrapping C code with guards

extern C{< C code goes here>}

3) Defining the operators new and delete (this is optional)

void* operator new(size_t size)

4) Prevent Exception Functionality

Preventing exception functionality to prevent linker errors such as “undefined reference to __gxx_personality_v0” and “undefined reference to __cxa_end_cleanup” (again, this is optional, and only applied if you want to use new and delete)

cplusplus-linker-error-undefined-reference-to-gxx-personality Add the custom compile flag "-fno-exceptions" to every .cpp file you want to compile in PSoC Creator to prevent the "undefined reference to __gxx_personality_v0" linker error.

The steps have pictures and code examples to help you through the process.

Checkout the page here.