A button-driven handbrake Buttons (or switches, or keys) are quite common in the world of the embedded systems. In most cases buttons trigger a software action and – in our context – we will use buttons for configuring the settings of the charge controller. We can also use the buttons as a debugging utility. The […]
Archives for January 2013
Real-time scheduling
Definition A real-time operating system is a system that schedules execution of tasks in a timely deterministic manner, and is scalable. The scheduler follows a set of algorithms that determine which task executes at each moment. Preemptive priority-based scheduling is a mandatory property of the operating systems we evaluate for use in our application. A […]
Not all processors have atomic instructions!
Recently we were involved in improving boot-up times of a Linux based platform. We noticed that the boot-up time was much longer than expected based on the processor speed. The only way to figure out what was happening was to profile the start-up procedure. Something that is not always easy on limited embedded platforms like […]
Driving LEDs by GPIO: finally resolved!
3 ways to boost your performance as a developer
If you wish to boost your performance as a developer by a non-trivial factor then here are three ways to help you achieve this: loosely couple automate testing automate delivery I saw people -myself included- that started applying these rules and went from being unproductive and frustrated about coding, to being productive and in control […]
MCU pin configuration, GPIOs and a word on software architecture
Basic peripheral setup: pin configuration All MCUs have pins. They might come in different package types such as QFP (Quad Flat Package – Figure left) or BGA (Ball Grid Array – Figure right). But for us, embedded software engineers, pins or balls, we don’t really mind: MCUs have pins and we need to configure them. […]
Recent Comments