http://www.netrino.com/Embedded-Systems/How-ToNewest articles (5)Bug-Killing Coding Standard Rules for Embedded COne of the biggest potential benefits of a firmware coding standard is often overlooked: a coding standard can help keep bugs out. It's cheaper and easier to prevent a bug from creeping into code than it is to find and kill it after it has entered. Thus, a key strategy for keeping the cost of firmware development down is to write code in which the compiler, linker, or a static-analysis tool can keep bugs out automatically. Mutexes and Semaphores DemystifiedThe question "What is the difference between a mutex and a semaphore?" is short and easily phrased. Answering it is more difficult. In this first installment of a series of articles on the proper use of a real-time operating system (RTOS), we examine the important differences between a mutex and a semaphore. Minimize Interrupt Service Routine OverheadWith all the automation available today, it's easy for programmers to overlook costly overhead introduced into machine code by the compiler. Interrupt handlers are one key area worthy of a closer inspection. The Perils of PreemptionEvery commercial RTOS employs a priority-based preemptive scheduler. This despite the fact that real-time systems vary in their requirements and real-time scheduling doesn't have to be so uniform. Multitasking and meeting deadlines is certainly not a one-size-fits-all problem. Portable Fixed-Width Integers in CFor embedded software developers, the most significant improvements
to the C programming language made in the ISO C99 standard update are
in the new Most popular articles (10)#1 Bug-Killing Coding Standard Rules for Embedded COne of the biggest potential benefits of a firmware coding standard is often overlooked: a coding standard can help keep bugs out. It's cheaper and easier to prevent a bug from creeping into code than it is to find and kill it after it has entered. Thus, a key strategy for keeping the cost of firmware development down is to write code in which the compiler, linker, or a static-analysis tool can keep bugs out automatically. #2 CRC Implementation Code in CCRCs are among the best checksums available to detect and/or correct errors in communications transmissions. Unfortunately, the modulo-2 arithmetic used to compute CRCs doesn't map easily into software. This article shows how to implement an efficient CRC in C. #3 How to Use C's volatile KeywordThe proper use of C's volatile keyword is poorly understood by many programmers. This is not surprising, as most C texts dismiss it in a sentence or two. This article will teach you the proper way to do it. #4 Fast Accurate Memory Test SuiteIf ever there was a piece of embedded software ripe for reuse it's the memory test. This article shows how to test for the most common memory problems with a set of three efficient, portable, public-domain memory test functions in C. #5 Mutexes and Semaphores DemystifiedThe question "What is the difference between a mutex and a semaphore?" is short and easily phrased. Answering it is more difficult. In this first installment of a series of articles on the proper use of a real-time operating system (RTOS), we examine the important differences between a mutex and a semaphore. #6 How to Choose a Real-Time Operating SystemIn the market for a commercial RTOS? This article provides an overview of RTOSes and how you can select the best one for your project. It ends with a list of vendors and their products. #7 Optimal C Constructs for 8051 MicrocontrollersThe limitations of an 8-bit microcontroller (MCU) can sometimes make conventional C constructs produce suboptimal code. In this article we look at common problems on the 8051 family and discuss workarounds in C. #8 Portable Fixed-Width Integers in CFor embedded software developers, the most significant improvements
to the C programming language made in the ISO C99 standard update are
in the new #9 The Perils of PreemptionEvery commercial RTOS employs a priority-based preemptive scheduler. This despite the fact that real-time systems vary in their requirements and real-time scheduling doesn't have to be so uniform. Multitasking and meeting deadlines is certainly not a one-size-fits-all problem. #10 How Programmable Logic WorksIn recent years, the line between hardware and software has blurred. Hardware now engineers create the bulk of their new digital circuitry in programming languages such as VHDL and Verilog. This article will help you make sense of programmable logic. |
