Pages Menu
TwitterRssFacebook
Categories Menu

Blogroll

Using IAR Embedded Workbench with MSP430

Posted by on Jul 2, 2014 in Getting Started, Microcontrollers, MSP430 | 6 comments

Using IAR Embedded Workbench with MSP430

Hello folks, I am back with my next tutorial on getting started with IAR Embedded Workbench for TI MSP430 about which I mentioned in the introductory tutorial on MSP430. We also discussed about input-output operations, and some basic aspects of C programming. We also wrote a simple program to assign a port as output or input followed by lighting LEDs when a switch is closed. But that was all theoretical. Let’s get our hands dirty now. Let’s get our hands on real time testing of our code on a controller. Here, I have used the MSP430G2 LaunchPad plugged with 14-pin MSP430G2131 DIP controller. IAR Embedded Workbench for TI MSP430, also called EW430 is a complete software toolkit you will need to compile, build, link and download the code into your controller. To add to these, you will also learn how to debug your code using the simulator and FET (flash emulation tool) debugger. Contents About IAR Embedded Workbench Installation and Getting Started Workspace Window Editor Window Message Window Going about your First Project – Hello World! (Stepwise – 10 steps) Let’s blink some LEDs now! The Infinite Loop The Delay More Blinking Patterns Summary About IAR Embedded Workbench I mentioned earlier that EW430 software comes for free in two versions. While one is a time limited version which stays for 30 days (after which you’ll need to pay to use it), the other one is code size limited but with no time limit. I would suggest readers to subscribe to the code size limited version with no time limit, wherein the code size is limited to 4 KB of C code, which is more than enough for our learning process. IAR Embedded Workbench is available for a vast range of processors and controllers which includes ARM and AVR as well. I personally prefer it over Code Composer Essential IDE because I found EW430 a tad easier to use and predict for new users. If you have worked with Code Compressor Studio before, you might find Code Composer Essential familiar to work with. Installation and Getting Started The very first task is to install EW430 on your computer. It is compatible with both Windows 7 and Windows 8. You can download it from here. Now, open up the downloaded .exe file and install the software. It should not take more than fifteen minutes. After installing, go ahead and open up IAR Embedded Workbench. When you open it up, a dialog box called “IAR License Manager” will automatically pop up asking for a license key. Even if it doesn’t pop up automatically, go to start and search for “IAR License Manager”. Click on register, it will require internet connection. Follow up the easy steps and register for code limited version of IAR. It will ask you some general questions like your name, institution or company’s name and about the project you want to build using EW430. Just answer all questions and give your correct email address. After completing all such formalities, you will receive the license key in the email you registered with. Copy and paste the key into the license manager and here you are ready to start with MSP430! Woohoo! The above steps are required for the first use of the software. After that, you can directly open the IAR Embedded Workbench (henceforth mentioned as EW430). The window of EW430 is usually divided into three parts. We...

read more

PCB Design using EAGLE – Part 1: Introduction to EAGLE and Software Environment

Posted by on Jun 11, 2014 in Electronics, Getting Started | 5 comments

PCB Design using EAGLE – Part 1: Introduction to EAGLE and Software Environment

Have you ever come across a situation where you prototyped a project on a solderless breadboard and liked it so much that you want it on a PCB? Well, read on! So far we have been writing software programs, building binaries out of them and executing them on microcontrollers. It’s time to get physical now! This post, and a couple of upcoming posts will deal with this very thing – how to realize your project in hardware. We’ll deal with PCBs, and also learn how to design and fabricate them. Introduction to PCB Design If you are an electronics hobbyist you might have probably designed many electronic circuits and even prototyped them on a breadboard. Now it’s time to step up to the next level. Let’s design the same on a PCB. This article and a couple more of them will be addressing the topic of PCB designing. There are many types of circuits that you can design on a PCB – like analog, digital, RF – and the PCB layout may make-or-break the performance and working of the circuit. Your circuit may work as a prototype on a breadboard, but it might not work on a PCB. PCB designing is an art. While it may come naturally to some, it can be daunting even for experienced circuit designers. And this is why many companies hire PCB experts! You can find PCBs everywhere, all around you – inside computers, phones, power supply, watches, thermostats, cameras, automobiles, traffic lights, microwave oven, refrigerator – and they are increasing – which means PCB designers are in demand now, and will remain so for a while! As a matter of fact, PCB designing is a creative and individual learning process. We can only teach the basics, but the technique will mature once you start working on more and more projects. To become an expert in PCB design, it takes a great deal of talent and knowledge to place components as close as possible without compromising the performance of the circuit. The Early Days In early days, before the PCB CAD systems even existed, the designers had to manually layout pads, tracks, etc. They also used techniques such as wire-wrap and point to point method for production. These methods needed a lot of patience and time. And if an error occurred, it used to take forever to debug. With the advent of CAD software for PCB designing, those days are gone. Rejoice! These CAD software have simplified the design process beyond any imaginable level. The work which used to take hours previously can now be done in seconds! This has also brought the PCB design process to hobbyists which was earlier limited to professionals. We can now design and fabricate our own PCBs at home. The Design Process A Printed Circuit Board or PCB is thing which holds your entire project hardware together! It links and connects various electronic components together on a common physical platform. PCB design is a key process in the electronics industry because this process actually broadcasts the craftsmanship to production. One can call this process in technical terms as designing of tracks & pads, realizing the PCB and fabrication of various electronic components on the board. Although PCB fabrication is a costlier process, but due to mass production through automated process, the overall cost of the product decreases. The major advantage, apart from the cost...

read more

Inter-Integrated Circuits – I2C Basics

Posted by on Feb 9, 2014 in Atmel AVR, Microcontrollers | 48 comments

Inter-Integrated Circuits – I2C Basics

Hello folks, it’s time for I2C! Currently, related to Serial Communication, maxEmbedded features RS232 and SPI communication. It’s time to move beyond! In this post, we will discuss all the theoretical concepts that you need to know regarding I2C before programming/testing it on real devices. We will deal with how to program the TWI/I2C of (AVR) microcontrollers in the next post. Contents Inter-Integrated Circuit (I2C) I2C Bus Interface Serial Data Line (SDA) Serial Clock Line (SCL) Open Drain Lines I2C Data Validity Voltage Levels and Resistor Values Master and Slave Speed I2C Bus Transaction Start/Stop Sequence Acknowledge Scheme I2C Device Addressing Why should I bother about it? I2C Data Transfer Protocol Timing Diagram Case 1: Master to Slave Transfer Case 2: Slave to Master Transfer Case 3: Bidirectional Transfer Clock Stretching Why I2C? Summary Inter-Integrated Circuit (I2C) As the name suggests, Inter-IC (or the Inter-Integrated Circuit), often shortened as I2C (pronounced eye-two-see), I2C (pronounced eye-squared-see), or IIC, was developed as a communication protocol to interact between different ICs on a motherboard, a simple internal bus system. It is a revolutionary technology developed by Philips Semiconductor (now NXP Semiconductors) in 1982, and is used to connect low speed peripherals (like keyboard, mouse, memory, IO/serial/parallel ports, etc.) to the motherboard (containing the CPU) operating at much higher speed. These days you can find a lot of devices which are I2C compatible manufactured by a variety of companies (like Intel, TI, Freescale, STMicroelectronics, etc). Somewhere around the mid-1990s, Intel devised the SMBus protocol, a subset of I2C with strict protocols. Most modern day I2C devices  support both, I2C and SMBus with little reconfiguration. I2C Bus Interface The most compelling thing about the I2C interface is that the devices are hooked up to the I2C bus with just two pins (and hence it is sometimes referred to as Two Wire Interface, or the TWI). Well of course, we do need two more pins for Vcc and ground, but that goes without saying. As you can see in the above diagram (taken from eeweb.com), all the devices are hooked up to the same I2C bus with just two pins. These devices could be the CPU, or IO devices, or ADC, or any other device which supports the I2C protocol. All the devices connected to the bus are classified as either being Master or Slave (just like SPI). We will discuss about it in a little while. For now, let’s get to know more about the bus itself. The I2C bus consists of two bidirectional “open-drain” lines – SDA and SCL – pulled up with resistors as shown below. Serial Data Line (SDA) The Serial Data Line (SDA) is the data line (of course!). All the data transfer among the devices takes place through this line. Serial Clock Line (SCL) The Serial Clock Line (SCL) is the serial clock (obviously!). I2C is a synchronous protocol, and hence, SCL is used to synchronize all the devices and the data transfer together. We’ll learn how it works a little later in this post. Open-Drain Lines A little while ago (just above the previous image), I mentioned that SDA and SCL are open-drain (also called open-collector) lines pulled up with resistors. What does that mean? It means that the devices connected to the I2C bus are capable of pulling any of these two lines low,...

read more

New Logo for maxEmbedded

Posted by on Feb 4, 2014 in Offbeat | 3 comments

New Logo for maxEmbedded

Hey all, Change is a part of life to make oneself better. maxEmbedded is no different. Presenting to you a new look for maxEmbedded, designed by Qiudi Zhang of qzee.prints. Thank you Qiudi! :) Keep learning, keep sharing! –...

read more

I/O Port Operations in MSP430

Posted by on Dec 26, 2013 in Microcontrollers, MSP430 | 8 comments

I/O Port Operations in MSP430

Hello friends, here comes the second post about MSP430. In this post, we will see how input-output operations work in MSP430. We will also write a sample code to glow LEDs connected to pins of MSP430G2553. Contents I/O Operations! Why and what? Memory Mapping C Programming Language Logical and Bitwise Operators Bit Masking Data Types Do It Yourself I/O Operations! Why and what? In my previous post, I discussed about the architecture of MSP430 microcontroller. It is a small computer-on-chip just like other microcontrollers. When, we think of a personal computer, we usually get an image of a desktop or laptop computer in our mind. These computers generally have keyboard and mouse as input devices and monitor or screen as output device. Through all these devices, a computer interacts with the outer world. Then, what does a microcontroller uses to interact with outer environment (or users)? The answer is ports. All the sensors, and other input-output devices are connected to microcontroller through a set of pins, called ports. If you have worked with AVR, you must be familiar with port names PORTA, PORTB, etc. But Texas Instruments use numeric listing instead of letters. The port name starts as P1, P2 and so on. There is no P0. Each port has eight pins. All pins of a port might not be available for user. Some pins are internally connected to the controller. Memory Mapping I mentioned in my previous post that, to access a byte from memory of a computer, there is always an address. It means that, to fetch any data or instruction from memory, CPU makes use of address of that data or instruction. Now, the question arises is- How does the CPU of MSP430 access ports of the controller? The answer is simple. CPU considers ports as memory registers. Each port is a byte in the memory, and each pin of the port represents a bit of that register. The registers assigned to the port are called peripheral registers. This is called Memory Mapping of input-output. These registers can be read, written and modified. Moreover, arithmetic operations can also be performed. But, how do we decide that whether a port is to used as input or output? For this purpose, there are three types of registers associated with each port. PxIN PxOUT PxDIR Here x is the port number (remember, P1, P2, etc?). For example, when x is 1, it becomes P1IN, P1OUT and P1DIR. The keywords IN, OUT and DIR expands to input, output and direction respectively. Setting P1DIR to one (1, HIGH) configures the pins of port 1 as output and clearing the P1DIR register to zero (0, LOW) makes the pins of port 1 as input which is also the default. This way, DIR gives direction of operation to the ports. It is similar to the DDRx register of AVR. Each pin or bit of the port can be configured individually. It is not necessary to make all pins of the port behave in same way. Now let us look at the example: P2DIR = 0xB1; // This is in hexadecimal form P2DIR = 0b10110001; // Binary representation The above two statements are equivalent to each other. Both can be used to make 0th, 4th, 5th and 7th pin of port 2 as output pin....

read more

The SPI of the AVR

Posted by on Nov 26, 2013 in Atmel AVR, Microcontrollers | 81 comments

The SPI of the AVR

Continuing with the series of tutorials on Serial Communication, here is another one, and much awaited, the Serial Peripheral Interface (SPI) of AVR! Before proceeding ahead, I would suggest you to read Mayank’s tutorial on the basics of SPI. Contents SPI – Basics Revisited Advantages of SPI Master and Slave Pin Description The SPI of the AVR Register Descriptions SPCR, SPSR, SPDR Data Modes Slave Select SPI Coded! Enabling SPI on Master Enabling SPI on Slave Sending and Receiving Data Problem Statement Methodology Hardware Connections Full Code Video Using Interrupts Summary Serial Peripheral Interface (SPI) – Basics Revisited Here we will discuss some basics of Serial Peripheral Interface (SPI, pronounced spy or ess-pee-eye). Mayank has already dealt with the basics of SPI and SPI bus transactions in the previous tutorial, but I will go over some of the nitty-gritties here again. Serial Peripheral Interfacing is one of the most used serial communication protocols, and very simple to use! As a matter of fact, I find this one much simpler than USART! ;) Since SPI has been accepted as a de facto standard, it is available in almost all architectures, including 8051, x86, ARM, PIC, AVR, MSP etc., and is thus widely used. This means that there shouldn’t be any portability issues and you can connect devices of two different architectures together as well! So here are the most popular applications of SPI: Wired transmission of data (though the first preference is mostly USART, but SPI can be used when we are using multiple slave or master systems, as addressing is much simpler in SPI). Wireless transmissions through Zigbee, 2.4GHz etc. Programming your AVR chips (Yes! They are programmed through the SPI! You’ll would have read about it in Mayank’s Post on SPI). It is also used to talk to various peripherals – like sensors, memory devices, real time clocks, communication protocols like Ethernet, etc. Advantages of SPI SPI uses 4 pins for communications (which is described later in this post) while the other communication protocols available on AVR use lesser number of pins like 2 or 3. Then why does one use SPI? Here are some of the advantages of SPI: Extremely easy to interface! (It took me much less time to setup and transmit data through SPI as compared to I2C and UART!) Full duplex communication Less power consumption as compared to I2C Higher hit rates (or throughput) And a lot more! But there are some disadvantages as well, like higher number of wires in the bus, needs more pins on the microcontroller, etc. Master and Slave In SPI, every device connected is either a Master or a Slave. The Master device is the one which initiates the connection and controls it. Once the connection is initiated, then the Master and one or more Slave(s) can transmit and/or receive data. As mentioned earlier, this is a full-duplex connection, which means that Master can send data to Slave(s) and the Slave(s) can also send the data to the Master at the same time. As I said earlier, SPI uses 4 pins for data communication. So let’s move on to the pin description. Pin Description The SPI typically uses 4 pins for communication, wiz. MISO, MOSI, SCK, and SS. These pins are directly related to the SPI bus interface. MISO – MISO stands for Master In Slave Out. MISO is the input pin for...

read more

Serial Peripheral Interface – SPI Basics

Posted by on Nov 10, 2013 in Atmel AVR, Microcontrollers | 56 comments

Serial Peripheral Interface – SPI Basics

Hey all! It’s time to continue with our tutorials on serial communication. Till now, we have covered the following: An introduction to serial communication Basics of RS232 communication The UART/USART of the AVR Apart from this, there are few other serial transfer protocols like SPI, I2C, etc. In this post, we will discuss about SPI and its bus transactions – no programming, just the concepts. Programming the SPI of (AVR) microcontrollers will be discussed in upcoming post. Contents Serial Peripheral Interface (SPI) SPI Bus Transaction Hardware Setup Data Transfer Operation Short Summary SPI Bus Interface Multiple Slaves – Slave Select Signal Clock Polarity and Phase AVR In-System Programming Interesting Reads Summary Serial Peripheral Interface (SPI) Serial Peripheral Interface, often shortened as SPI (pronounced as spy, or ess-pee-eye), is a synchronous serial data transfer protocol named by Motorola. Here two or more serial devices are connected to each other in full-duplex mode. The devices connected to each other are either Master or Slave. In a SPI link there could as many Masters and Slaves as required, but it’s very rare to find more than one Master in a SPI link. The Master device is the one which initiates the connection and controls it. Once the connection is initiated, then the Master and one or more Slave(s) can transmit and/or receive data. As mentioned earlier, this is a full-duplex connection, which means that Master can send data to Slave(s) and the Slave(s) can also send the data to the Master at the same time. SPI Bus Transaction Now that we have a basic knowledge of what SPI is, let’s look into the operation of SPI Bus. The SPI operation is based upon shift registers. Every device, whether Master or Slave has an 8-bit shift register inside it. The size of the shift register could be more than 8-bit as well (like 10-bit, 12-bit, etc), but it should be the same for both Master and Slave, and the protocol should support it. Hardware Setup The Master and Slave are connected in such a way that the two shift registers form an inter-device circular buffer. The following diagram should explains the hardware setup. Please click on the images to enlarge it and view it in high resolution. As you can see, there is an 8-bit shift register inside each of the Master and Slave devices. These shift registers operate in Serial-In/Serial-Out (SISO) fashion. The output of the Master’s shift register is connected to the input of the Slave’s shift register; and the output of the Slave’s shift register is connected to the input of Master’s shift register. This makes the connection operate like a circular/ring buffer. Don’t bother about the names MISO, MOSI and SCK now. We will discuss about them a little later in this post. As mentioned earlier, SPI is a synchronous serial data transfer protocol, which means that there must be a clock to synchronize the data transfer. It has also been stated that the Master is responsible for initiating and controlling the connection. Thus, we use the clock source of the Master device to synchronize the data transfer. That’s why you see the clock source inside the Master, which controls the operation of both the shift registers. Data Transfer Operation Alright, now let’s see how SPI bus transfers data among...

read more

MSP at a Glance

Posted by on Oct 3, 2013 in Getting Started, Microcontrollers, MSP430 | 24 comments

MSP at a Glance

This post has been written by a new author, Chahat Ahuja. Give him heads up if you like this post. Hey folks, I know you have a habit of seeing AVR microcontrollers related tutorials on maxEmbedded, but trust me, maxEmbedded is going to be full of surprises. This is my first post and it is going to be about MSP430, a 16 bit microcontroller family by Texas Instruments. Pre-requisites: Basic knowledge of micro-controllers and embedded systems, Familiarity with terminologies related to computer architecture. Contents MSP430 – An Introduction What MSP430 has in package? Central Processing Unit Memory Clock General Pin Configuration of MSP430 Software Support and Development Environment IAR Embedded Workbench Code Composer Studio MSP430 Evaluation Modules and Development Boards MSP430 LaunchPad MSP430 – An Introduction “MSP430” interesting name, isn’t it? Want to know what it stands for? Well, MSP stands for Mixed Signal Processing. There are three types of signal processing techniques we generally deal with, namely, Analog signal processing, Digital signal processing and Mixed signal processing. Thus, the MSP430 family supports Mixed Signal Processing, making your tasks easier. To have a fuller idea about the nomenclature of the MSP family check out this wikipedia page. What MSP430 has in package? Recently, Apple Inc. launched its new Apple iPhone 5S, which runs on a 64-bit Micro-Processor Unit, the first of its kind mobile phone to run on a 64-bit architecture. The earlier ones used a 32-bit architecture. To know more about what 8 bit or 16 bit micro-controllers actually mean, read Mayank’s post on basics of microcontrollers. an MSP Micro-Controller is a 16 bit Micro-Controller, which means that it has 16 bit wide address and data buses. So, in a layman’s language, we can say that MSP is twice as fast as the AVR, in terms of processing (not always the case though). You can roughly relate this to your computer, which is probably a 32-bit or 64-bit machine. It may look confusing to a person who has a habit of using 8 bit controllers, but the fact is that it is much more convenient to use a 16 bit controller.  Let us look at some highlights of the MSP430 family: Von Neumann Architecture: It is modern processor architecture which has shared memory for both data and instructions. This is in contrast to Harvard architecture, which has separate memories for instructions and data. In some systems having Harvard Architecture, instructions memory can be Read only memory. The following diagram shows the difference between Harvard architecture and Von Neumann architecture. RISC architecture: RISC expands to Reduced Instruction Set Computer. In simple language, software simplicity has been compromised to provide hardware simplicity. Bus width: 16 bit address and data buses. Memory access range: 16-bit Micro Controller Unit, hence it can address 216 = 64 kB of memory. Several low power modes: typical being 1µA, 3.3 volts consumption in idle mode. It has an internal Digitally Controlled Oscillator (DCO) oscillating at 1 MHz. An External Crystal Oscillator can also be used. MSP Controllers should be made to work at 32.768 kHz, when we need to provide a very accurate timer. This is because when we use 32.768 kHz, by the time the timer overflows, it is exactly and accurately 1 second. Can anybody figure out why? Timers available with PWM (Pulse Width Modulation) Selection of Analog...

read more

The USART of the AVR

Posted by on Sep 30, 2013 in Atmel AVR, Microcontrollers | 104 comments

The USART of the AVR

Hey folks! Lets continue with our tutorials on Serial Communication. Until now, we have seen a general introduction to serial communication, followed by a tutorial on the concepts of RS-232 communication. So here we are with the AVR communication protocols series, starting with the most basic ones, UART and USART! We will move on to SPI and TWI (I2C) later. Some images used in this tutorial are taken directly from (and are a courtesy of) the AVR datasheets for ATMega8 and ATMega16/32 microcontrollers. Contents UART and USART USART Layout – How to set it up? USART Pin Configuration Modes of Operation Baud Rate Generation Frame Formats Order of bits Number of Data bits Number of Stop bits Parity bits Even/Odd Parity Why use the Parity bit? Register Description UDR, UCSRA, UCSRB, UCSRC, UBRR Let’s code it! Initializing UART Transmission/Reception Code Problem Statement – Example Methodology Hardware Connections Coding Video Can you do it? Summary UART and USART The UART and USART have already been discussed here. Anyways, lets have a quick recap. UART stands for Universal Asynchronous Receiver/Transmitter. From the name itself, it is clear that it is asynchronous i.e. the data bits are not synchronized with the clock pulses. USART stands for Universal Synchronous Asynchronous Receiver/Transmitter. This is of the synchronous type, i.e. the data bits are synchronized with the clock pulses. If you refer to the USART section in the datasheet of any AVR microcontroller, you will find several features listed there. Some of the main features of the AVR USART are: Full Duplex Operation (Independent Serial Receive and Transmit Registers) Asynchronous or Synchronous Operation Master or Slave Clocked Synchronous Operation High Resolution Baud Rate Generator Supports Serial Frames with 5, 6, 7, 8, or 9 Data bits and 1 or 2 Stop Bits USART Layout – How to set it up? Before we continue, please note that the AVR USART is fully compatible with the AVR UART in terms of register bit locations, baud rate generation, transmitter/receiver operations and buffer functionality. So let us now have a quick look at how to set up USART in general. We will discuss in detail later. The first step is to set the baud rate in both, the master and the slave. The baud rate has to be the same for both – master and slave. Set the number of data bits, which needs to be sent. Get the buffer ready! In case of transmission (from AVR to some other device), load it up with the data to be sent, whereas in case of reception, save the previous data so that the new received data can be overwritten onto it. Then enable the transmitter/receiver according to the desired usage. One thing to be noted is that in UART, there is no master or slave since master is defined by the MicroController, which is responsible for clock pulse generation. Hence Master and Slave terms occur only in the case of USART. Master µC is the one which is responsible for Clock pulse generation on the Bus. USART Pin Configuration Now lets have a look at the hardware pins related to USART. The USART of the AVR occupies three hardware pins pins: RxD: USART Receiver Pin (ATMega8 Pin 2; ATMega16/32 Pin 14) TxD: USART Transmit Pin (ATMega8 Pin 3; ATMega16/32 Pin 15) XCK:...

read more

The Embedded Linux Quick Start Guide

Posted by on Sep 24, 2013 in e-Linux, Getting Started, Single Board Computers | 7 comments

The Embedded Linux Quick Start Guide

Dear maxE readers, recently I came across a bunch of videos which deal with embedded Linux. I will be posting some tutorials related to embedded Linux (e-Linux) on maxEmbedded soon. So I thought to share the following videos which will introduce you to some of the most basic concepts of e-Linux. After watching these video tutorials, you will have learnt about the four elements of e-Linux system: Toolchain, Boot loader, Kernel and User space. The following videos were recorded by Free Electrons during the Embedded Linux Conference Europe, Cambridge, UK, October 2010 (ELC-E 2010). Free Electrons also has one of the best Linux Cross Reference located at http://lxr.free-electrons.com/ The person you will find standing in the video and giving the workshop is Chris Simmonds. You can find some of his work here at: http://www.embedded-linux.co.uk/. The entire workshop is divided into three parts (so are the videos). I am sharing only the first two here since they deal with the basic concepts of e-Linux. The third part essentially deals with a specific ARM processor board, and hence its not posted here. The videos are available for free download here and are also posted on YouTube. I am sharing the ones posted on YouTube on this page. The slides used in the workshop are also available for free and can be downloaded from here. If the link is broken, you can also download it from here. Part 1: Toolchain and Boot loader Here is the first video which deals with the first two elements of e-Linux: Toolchain and Bootloader. Please note that the actual video starts at 2:42/52:48. Some part of the boot loader section is not in this video. They will be in the second part of the video. And towards the end (around 52nd minute or so), beware of the background noise, you have been warned! You will come across the following topics being discussed: First Element: Toolchain Minimal elements of toolchain Types of toolchain Types of C libraries for toolchain Criteria for selecting toolchain Toolchain examples Installing a toolchain Adding libraries to toolchain Support for debugging Other goodies along with toolchain Second Element: Boot loader What is boot loader Pre-boot loader Loading the kernel Boot loader-kernel ABI – ATAGS and FDT Examples of boot loaders U-Boot command line U-Boot environment Automating boot – bootcmd Part 2: Kernel and User space Now if you have seen the Part 1 video, then you must be wondering what that noise is, and frankly speaking, nobody knows what it is! This noise continues in the Part 2 of the video as well. So for your convenience, the video starts at 16:40/1:19:25. The video from 16:40 through 22:30 deals with the remaining part of boot loader. The next section on Kernel and User space starts at 22:30/1:19:25. Oh BTW, the video ends at 1:10:12/1:19:25. ;) Third Element: Kernel Kernel vs User space Kernel version numbers Bug fix releases Board support packages Levels of board support Board support Kernel modules Kernel configuration Building the kernel Kernel command line Fourth Element: User space What is user space The root file system (rootfs) Other options for a rootfs Busybox and examples init: Busybox init and System V init System V inittab Initialization scripts Device nodes: /dev The rootfs during development The rootfs in production Flash file systems So these two...

read more