Homework #1

ELE547 Embedded Computer Systems


Design of an FTL for SSD

 Due Date: Oct 30th, 2015

Submit all your design and program through email

Demo: Nov. 4th, 2015

1.           Objectives:

Using ARM embedded processor, design a fully functional FTL system with the following required features:

a)     Using LCD to input and display your FTL table;

b)    Using a wireless/wired protocol to transmit control command to a remote computer;

c)     Displaying mapping table change upon each I/O request;

d)    A user can use the LCD to enter I/O commands with LBA and read/write opeations.

2.           Lab Environment


         We have in our lab Freescale’s Kinetis evaluation boards with ARM Cortex M4 microprocessor, the TWR-K70F120M, and several modern engineering tools for development of embedded computer systems. The hardware and software tools available in the lab settings will enable you to design and perform simple experiments, as well as to analyze and interpret data. Freescale Kinetis boards can be used either in stand-alone

A solution with the LCD is needed in case of control, measure, and diagnostics of some system or device with human-machine interface, when the operator can actively change conditions and requirements. The D4D is capable of generating user menu, graphics, pictures, text, and display them on the LCD module. It allows interacting with all objects, dynamically changing, adding, or removing them, and also read/write their status or current value. The D4D also fully supports touch screen capabilities of the LCD displays.

Supports graphical color LCD displays of various sizes

Very small RAM (volatile) memory footprint

Multiple platform support

Object style of driver

Very smart support-screen-oriented structure of user code

Custom screen sizes, position, and header like a window



Check Box / User handled Radio Button








Touch screen support

Multiple font support

Buffer for input keys

         The TWR-RF wireless module is a Tower Controller Module compatible with the Freescale Tower System. It can function as a stand-alone, low-cost platform for the evaluation of the MC12311 or MC1323x devices with their development board and the appropriate Modular Reference Board (MRB) (12311-MRB or 1323x-MRB) plugged in.

         The TWR-RF module works with the Tower Elevator Modules (TWR-ELEV) and can also be combined with other Freescale Tower peripheral modules to create development platforms for a wide variety of applications.

3.           Functional Requirements


Your design should have the following basic functions of a typical FTL:

a.    Address mapping between LBA and PBA

b.    Block level or page level mapping, your choice

c.    Taking I/O commands from one LCD: R/W-Address-Length

d.    Transmit I/O commands to a remote node and display the changed FTL on the remote LCD

e.    You may limit the page size and block size to a few bytes level for the purpose of demonstration

f.     Implement some simple garbage collection and erase operations

g.    Any other function you can think of to have an efficient SSD design.



4.           Helpful Hints on Experiment Procedures

Display part:

u Read first chapter of C:\Freescale\TWR_LCD\Documentation\TWR_LCD_DP_WalkThrough.pdf very carefully. Finish bootloader experiment in chapter 1.3. Play with the demo and see how it works.

u Set workspace as “C:\Freescale\TWR_LCD\” imported projects Demo_MCF51JM_SPI and Hello_World_MCF51JM_SPI in directory “CW MCU 10”

1.   Compile and download Demo_MCF51JM_SPI to TWR-LCD board.  

2.   Read main.c in \Sources very carefully. Draw a flowchart of main function, put it in your lab report.

3.   Read screen_icon.c in \Sources very carefully. Draw a flowchart how this traffic light demo works. How many functions need to be called for a complete demo application? List them in your lab report. How many D4D functions were called? What’s the usage of each function? List in your lab report.

4.   Compile and download project Hello_World_MCF51JM_SPI. Play with the demo project

5.   Read screen_hello_world.c very carefully, modify it to finish following tasks:

1)  Add a text box in the window, the content of the text box is your name.

2)  Change the background color to blue.

3)  When touching the text box you added, the content of the text box should change to “ELE408_Lab6”

u Import project JM128_Bootloader, flash it to the board. Try to flash a pre-compiled image. See if it works

Some helpful links:

Freescale cloud-connected zigbee demo:
















Zibee ADC node: