Model Rocket Altimeter Part 1: Electronics

Introduction I do model rocketry with my son, Leon. He has enjoyed the fire, noise and setup since he was 3. I think it’s a good activity to introduce him to STEM over time. Since starting, I have always wanted to know how far up our rockets went. There are commercial altimeters, which are very […]

Easy BGA PCB footprints generation with AutoBGA

I have just recently finished work on version 1.2 of an open-source tool called AutoBGA. AutoBGA is a program that takes images of ball grid arrays (BGAs) from datasheets to automatically construct a PCB footprint of the package. The generation of such footprints is usually a tedious and error-prone process because of the large number […]

Video: TX-0, TX-2 and LINC- Early MIT Computers

Here is another video from some VHS tapes I digitized from the  “Bay Area Computer History Perspectives” series of lectures. These lectures were sponsored by Sun Microsystems Inc in the mid-90’s and were part of the first activities of the Computer History Museum. I was lucky enough to get some of these tapes directly from Jeanie […]

Pre-processed assembler and C integer literals

The Problem It is very convenient to use a C preprocessor before running an assembler, so that constants can be shared between C code and assembly code. GCC makes this very easy, by pre-processing assembler sources if specified on the command line or if the extension is “.S” (“.s” is not preprocessed). A problem arises […]

Release of PowerPC Instruction Set Reference Card, rev 1

This is a quick post to announce that I have just released the first revision of my PowerPC User-Level Instruction Set Quick Reference Card. I think it will be useful to anyone having to deal with 32-bit PowerPC assembly, from people examining compiler output to low-level embedded programmers. You can download it here. Enjoy !

5 minute interrupt controller bug chase and fix with Simics

The problem I was writing and testing the interrupt processing code for a real-time hypervisor on the MPC8641 Multi-core PowerPC SoC. During testing, I hit a bug: the system would not take any more interrupts after the highest priority interrupt got serviced. Since I was debugging on the Wind River Simics virtual platform, debugging the […]

A worksheet for bitwise operations

Click here to download the worksheet (PDF) The problem When doing a lot of low-level system code, you constantly need to build hexadecimal constants and masks for bitwise arithmetic. Maybe you are accessing specific bits of an I/O register, or making sure you extract the proper field of a packed variable. You can scribble your […]

Easy multi-core PowerPC timebase synchronization with Simics

The problem When writing low-level multi-core OS code, it is important that all cores have at least some form of time synchronization so that scheduling can be done using local timers. On 32-bit PowerPCs, this is usually accomplished by making sure the 64-bit Time Base register (made up of TBL and TBU, the lower and […]

Middle mouse button scroll locking in Eclipse

Direct link with no explanation for those in a hurry (I did not make this software) I have been suffering from repetitive strain injuries (RSI) since 2003. It started with my student job  as a data-entry clerk for a bank from 1999 to 2004. Since then, I have been coping with bouts of wrist tendonitis […]