background preloader

Embedded Programming

Facebook Twitter

Gimpel Software - The Leader in Static Analysis for C and C++ with PC-lint Plus. Introduction to Lint - Documenting Code the Easy Way – Part 1 – Beningo Embedded Group. Introduction One of the most important yet most neglected tasks in embedded software development is writing and maintaining documentation.As software engineers we usually start strong by documenting everything but when the pressure is on, the boss is breathing down our necks, the client is antsy to see a functional prototype and the world is falling to shambles, we bury our heads in the code and just crank it out as fast as possible.We trick ourselves into believing that we’ll update that software document as soon as this deadline is met and things slow down a bit.In reality, the code either goes undocumented or is sprinkled here and there with half thoughts and gibberish in a rushed attempt to provide illumination into what has become the chaotic.

Documenting Code the Easy Way – Part 1 – Beningo Embedded Group

Installation. A FIFO Buffer Implementation. Embedded Design October 2, 2013.

A FIFO Buffer Implementation

Nasa c style. Modern C++ in embedded systems – Part 1: Myth and Reality. In 1998, I wrote an article for Embedded Systems Programming called C++ in Embedded Systems – Myth and Reality.

Modern C++ in embedded systems – Part 1: Myth and Reality

The article was intended to inform C programmers concerned about adopting C++ in embedded systems programming. A lot has changed since 1998. Many of the myths have been dispelled, and C++ is used a lot more in embedded systems. There are many factors that may contribute to this, including more powerful processors, more challenging applications, and more familiarity with object-oriented languages. C99 (an informal name for ISO/IEC 9899:1999) adopted some C++ features including const qualification and inline functions. C Compiler Tips & Tricks. Hello, there.

C Compiler Tips & Tricks

My name is George Mock, and I'll be your guide on this talk. The reason you should be listening to me is that I've been working at Texas Instruments for over 20 years. And during that entire time period, my job has had something to do with either C compilers, assemblers, linkers, and tools of that nature. We call tools like that-- the name for the whole group of them, we call them the code generation tools. USB Interface Board Tutorial Using PIC18F4550. CONTROL YOUR DEVICES FROM COMPUTER USING USB PORT – pic18f4550 + MPLAB IDE This project demonstrates a computer control interface using a USB Board.

USB Interface Board Tutorial Using PIC18F4550

(USB INTERFACE PROJECT). This tutorial will show you a simple way to control some device like led, motors and other devices with computer through a USB Board. The traditional way to control devices from a computer was to use a parallel printer port which is much more easy to implement than that of a USB PROJECT, but the only limitation with parallel printer port is that the latest computer does not comes with parallel printer port. So you can use this project as an alternative to a parallel port interface. pic18f4550 usb interface project is Human Interface Device (HID). 4 Wheel Robot Design using Differential Steering. Challenges in 4 Wheel Drive Robot Design (Differential Steering) Hi today we are going to discuss some of the basics of physical designing and selecting a chassis for a 4 wheel drive Robot for beginners.

4 Wheel Robot Design using Differential Steering

For this topic we are specifically going to see some of the design oriented challenges that come in the way of designing a 4 wheel robot that uses Differential Steering for taking turns (left and right) or to make a Complete 360 Degree in-place (pivot) rotation (zero-radius turning). Attention to some basic details can help a beginner to make an efficient robot without loss of much energy and torque. Design by Contract (DbC) for Embedded Software. PIC based enhanced 5/2 day central heating programmer serial CLI operation.

Serial CLI Operation The serial interface operates at 9600bps using 8 bits, no parity, 1 stop bit.

PIC based enhanced 5/2 day central heating programmer serial CLI operation

The programmer does not implement any handshaking or flow control. If automated control of the interface is used it must monitor the output to ensure a CLI command prompt has been received before sending the next command otherwise the programmer input will overrun. At power up the programmer sends a VT100 [ESC] c command followed by the text 'CH Programmer' to the serial interface and then a '#' command prompt. The programmer uses a '#' as the command line prompt and '? ' The CLI does not support the backspace function or editing keys.

If more than 16 characters are entered without pressing enter the line is aborted and a '? ' When the programmer is being setup from the front panel the serial CLI is disabled. Commands Notes: All commands are case sensitive. Example of serial terminal session with the programmer. Efficient C Tips #5 – Make ‘local’ functions ‘static’ « Stack Overflow. Saturday, December 13th, 2008 by Nigel Jones In my humble opinion, one of the biggest mistakes the designers of the ‘C’ language made, was to make the scope of all functions global by default.

Efficient C Tips #5 – Make ‘local’ functions ‘static’ « Stack Overflow

My favorite software debouncers. Jack breaks out the real code for taming the recalcitrant but ubiquitous mechanical switch.

My favorite software debouncers

After last month's look at the Embedded Systems Conference we're back to the surprisingly deep subject of debouncing switch inputs. But first, a mea culpa for mixing up formulas in May's column ("Solving Switch Bounce Problems," May 2004, on pages 46 and 48). The first and second formulas were accidentally swapped. To see the corrected version, go to

ArticleID=18902552. Software debounce routines range from some quite simple approaches to sophisticated algorithms that handle multiple switches in parallel. Software FIFO Buffer for UART Communication - Microcontroller - eewiki. AMF ENT T0001. Code review checklist v1 00. Embeded%20Systems%20Building%20Blocks%202e. GetAwesomeness() A curated list of C good stuff.


This list contains only free software for code, and sellers who aren't evil for physical resources. This is released under the GNU Free Documentation License - its text is provided in the LICENSE file. This list was previously maintained by @kozross. He decided to switch the list to a new platform, so I've decided to fork it so we could keep it on GitHub. Your contributions are highly welcome. For more awesome lists, see awesome. Contents Build Systems These are tools to automate the building and testing of projects in C. aimake - A build tool designed to avoid complex configurations. ZyBooks. Embedded Software in C for an ARM Cortex M. Embedded Software in C for an ARM Cortex M Jonathan W. Valvano and Ramesh Yerraballi (1/2015) Chapter 1: Program Structure A sample program introduces C C is a free field language Precedence of the operator determines the order of operationComments are used to document the software Preprocessor directives are special operations that occur first Global declarations provide modular building blocks Declarations are the basic operations Function declarations allow for one routine to call another Compound statements are the more complex operations Global variables are permanent and can be shared Local variables are temporary and are private Source files make it easier to maintain large projects Chapter 2: Tokens ASCII characters Literals include numbers characters and strings Keywords are predefined Names are user defined Punctuation marks Operators.

Embedded Software in C for an ARM Cortex M. Articles About Embedded Systems. 8 and 16 Bit Microcontrollers - A look at the state of smaller CPUs 10 Years After - My 120th column for ESP and what I've learned 2028, A Dystopian Story - They're getting near. I'm in hiding. 386 Protected Mode - Part 1 of a two part article about protected mode. 386 Protected Mode - Part 2 of a two part article about protected mode 99 Years Ago This Month - A look back to the technology of 1907 A Boss's Quick Start to Firmware Engineering, Part 1 - Most bosses don't understand the issues involved in producing great firmware.

Show them this. Simple 8-bit Assembler Simulator in Javascript. Untitled. Download MVC example - 22.16 KB Introduction Model-view-controller (MVC) is a pattern used to isolate business logic from the user interface. Using MVC, the Model represents the information (the data) of the application and the business rules used to manipulate the data, the View corresponds to elements of the user interface such as text, checkbox items, and so forth, and the Controller manages details involving the communication between the model and view. Model-View-Controller. Ooc. Why Learning to Code is So Damn Hard. Quincy Larson was just a "guy in a suit in an office" and decided he wanted to learn how to code. So he asked around. He started by picking up a bit of Ruby then found himself skimming through other languages like Scala, Clojure and Go.

He learned Emacs then Vim and even the Dvorak keyboard layout. A Very Quick Comparison of Popular Languages for Teaching Computer Programming. This article has been translated into Serbo-Croatian here: Thanks to Jovana Milutinovich for creating this translation. Optimizing C and C++ Code. Embedded software often runs on processors with limited computation power, thus optimizing the code becomes a necessity. SecretsOfArduinoPWM. Don’t Follow These 5 Dangerous Coding Standard Rules « Barr Code.

SD Cards and FAT filesystems for STM32 cortex m3 - The STM32 Discovery Scrapbook from Nano Age. Problem FatFs creating and writing file , getting FR_DISK_ER. Hello all! [AM3359 & FatFS] Did someone successfully write data on microsd memory card? - StarterWare forum - StarterWare - TI E2E Community. Forum - SD Card Bootloader - STMicroelectronics. In this thread I discuss how to reboot the processor and alter the startup behaviour here : I program the flash in the early boot conditions because I can strongly control the environment, and there aren't random parts of the system running from flash and interrupting.

To improve the chances of success flashing should be done in a quiet system. I've been doing this a while so the process is reasonably well understood. I reviewed the STM32 TRM documents, I looked at the flashing examples and library code, and I experimented programming unused scratch areas of flash from my application code. I also tested and coded assembler routines, and the code to copy them into RAM from the app. I'm not going to post full source, but might consider posting some blog entries on the techniques if there is general interest. The general flow of the reset is. How to Use MMC/SDC. FatFs - Generic FAT File System Module. What Belongs in a C .h Header File? « Barr Code. FreeRTOS on NXP LPC1769 MCU: Getting Started.

Get to know FreeRTOS from the Creator! - DesignWest 2013. CmpE146RefFiles_StackAndHeap.pdf. RTOS Tutorial - Using an RTOS on small embedded computers. Barcode Diagram by Scott Blake. FREE RTOS idle task. Atmel-42141-SAM-AT02333-Safe-and-Secure-Bootloader-Implementation-for-SAM3-4_Application-Note. AN4695.pdf. FatFs - Generic FAT File System Module. AN11511: LPC11U6x In-Application Programming. Sdcard_appnote_foust.pdf.

Using Maxim DS1307 Real Time Clock with Atmel AVR Microcontroller. Uzebox - The ATMega Game Console. Programming Embedded Systems in C and C++ (9781565923546): Michael Barr: Books. I2C Two Wire Interface Tutorial: Introduction. Paul's 8051 Code Library: Understanding the FAT32 Filesystem. Embedded Systems Articles. Welcome - Embedded Systems Academy. 557. PICTURE TO ASCII CONVERT - PICASCII.