C and Unix programming.

20160927 low level dev tools
20160813 cross compile debian arm
20160715 gdb reverse debugging
20160607 rust 1.8 embedded
20160605 multilib
20160513 Low level debugging
20160511 Supporting multiple boards with optimized HW functions
20160508 Inline functions and instantiation (fast abstract code).
20160424 Building a malloc-less, static Erlang
Two abstractions
uC program core
20160313 small memory software
20160226 Debian multiarch linker flags
20160213 mmap shared
20150711 Semaphores on Cortex M
20150619 trie encoding
20150606 mem_write_lazy
20150515 poll vs. select
20150512 Circular counters
20150509 State machines with simple for loops
20150208 union tagging
20150115 Macro name concatenation
20150107 read(2) / write(2) on pipes
20141108 IO state machines
20141106 State machine or buffers?
20141031 Quickcheck erlang eqc_fsm
20141030 Keil C
20140929 Boost spirit parser
20140907 Cross compile ARM debian
20140906 Ivory
20140829 gdb source debugging in emacs broken
20140330 Property based testing
20140328 John Hughes on debugging imperative code with QuickCheck
20140309 C++ allocators
20140228 c++ rehash
20140106 gdb -i=mi and target-stream-output
20131209 CPP defs
20131207 Linux coding style in emacs
20130820 Coroutines in C
20130812 Premature memory optimization
20130725 Connecting state machines
20130722 Implementing abstract state machines in software
20130716 setting up cscope for code review
20130523 OpenMP
20130301 How to design binary data structures?
20130217 Python-style coroutines in C
20130212 Universal header
20130124 Linking .o -> .elf to make binary files
20130109 Atomic pointer assignments
20121226 GNU Make rule recursion
20121225 GNU Make subdir stem?
20121209 C trailing commas in function calls / definitions?
20121208 Tagged list tricks
20121122 cscope
20121014 const * const
20120927 Simpler gdb tracer
20120920 tty
20120817 C eval
20120710 Overflow is undefined for signed ints
20120623 C re-appreciation day
20111229 Detecting re-entrancy
Obtaining pointer to current function
20111218 Typed CPP
Getting over C++ hate (fear?)
20111217 Assigning pointers to zero
20111129 MMX on AMD64
20111114 Counting in the preprocessor
20111030 CPP macro for counting the number of bits in a word.
20110719 Why buffer?
20110718 cflow & entry point
20110712 GCC not catching undefined variable error
20110711 emacs + cscope
20110625 Locking and callbacks
Be careful with typeof() for casts in macros
20110623 Are structs bad?
20110604 Synthetic target fix
What are __restore and __restore_rt ?
20110612 binutils RTFM
20110611 Know your linker: how to avoid unused functions to end up in a binary.
20110606 Compile time assert
20110523 Automatic casting and overflow
20110522 Link-Time Optimization (LTO) vs. static inline
20110519 GNU cflow
20110428 static inline: (pseudo-) separate interface from inplementation
20110405 "for" functions or "FOR" macros?
20110404 Producer/consumer in C in an embedded context
20110403 C and packed bitfields
20110401 Abstract data types vs. static RAM allocation
20110317 Generators
20110309 GNU make : target specific variables
20110305 Datastructures in Flash
Environment or makefile variables?
20110225 Makefile patterns
20100923 Const correctness
20100917 Makefile error: multiple target patterns
20100918 Embedding arbitrary data in ELF using objcopy
20100914 Emacs and parsing C
Reinventing linked lists
20100907 Linker sections on AT91SAM7X512 (ARM7TDMI, 128k RAM, 512k Flash)
The meaning of `const' (.rodata section)
20100901 Non-invasive C code tracing
C99 function names: __func__
20100831 git diff
Defining constant linked lists using CPP
Order of evaluation in CPP macros
20100830 Constant multidimensional arrays
20100826 Resource Acquisition Is Initialization (RAII)
20100825 Gensym in C
20100823 Book about embedded C
Constant Recursive Data Structures
20100819 Constant data in Flash
Non-cyclic objects
20100818 Static allocation: stacks and queues.
20100817 Struct assigments
Explicit recursion and post-ops.
Stacks and Queues
20100816 Explicit recursion stack
20100815 Programming without malloc()
20100811 An argument for NULL-terminated lists
20100730 Error handlers as goto labels
20100729 Error handling and "smart code"
20100728 Translating error codes
20100726 Hiding circular dependencies using "temporary binding".
20090824 Will use mmap() instead of malloc() for allocation of major heap chunks.
20090818 Dynamic scope and thread-local variables.
20090817 mmap() tricks
CONS using alloca()
20090815 Unlikely
20090809 Generating C code
20090801 Concurrency oriented programming in C + Scheme
20090329 classes vs. prototypes
20090226 Automatic binary network protocol definition
20090219 C macros and name capture
20090209 (*x)[i]
20090206 Data structure traversal in C
20090205 lists
20090131 logic & constraint based programming
20090129 memory management + RT
20090121 datastructures in C
20081219 GET/SET refactoring
20081208 C++ local objects + exceptions.
20081128 Iterators vs. Fold vs. Comprehensions
20081118 Implementing CSP in a single thread.
Daemon vs. Shared library
20081112 CSP style channels on Xenomai
packet filters vs. aspect oriented programming
20081111 Protocol definition
20081110 RPC and ad-hoc protocols
20081029 High level programming in C: Data Structures
20081023 NULL terminated arrays of pointers