Projects of EE516. Embedded Software. Project 1. “Setting Up Environment for Projects”

1.

EE516:
Embedded Software
Project 1.
“Setting Up Environment for Projects”
Dong Jae Shin, PhD student
2016. 09. 01.

2.

Contents
Introduction to Projects of EE516
Tasks
Setting Up Environment
Virtual Machine Environment
Ubuntu Linux OS Installation
Environment for Development
Tasks
1. Shell Script
2. Simple C Programming
3. Makefile
Report
Problems
Source code submission & Screenshot
General Grading Policy
Computer Engineering Research

3.

Introduction to Projects
Project 1: Setting up Environment for Project
“Development” Project
Project 2: Linux Fundamental
Project 3: System Call and Synchronization
Project 4: File System
Project 5: Device Driver for Embedded H/W
Especially, including “BeagleBoard Development”
3
Computer Engineering Research

4.

Environment Overview
Through this course,,,
We will use Ubuntu LINUX as the base OS for the p
rojects.
Do we need new machine for Ubuntu LINUX?
We usually use Windows OS for our own machine
The answer is NO!
We have “Virtual Machine Environment”!
Such as VMware Player
4
Computer Engineering Research

5.

Environment Overview
What is “Virtual Machine Environment”?
Software Stack of “Virtual Machine Environment”
Ubuntu
(Guest OS)

Others
(Guest OS)
VMware Player
(Virtualization Layer from VMware)
Host OS (e.g. Windows)
(Your host OS installed on the machine)
Physical Resources of Your own machine
(CPU, MEM, STORAGE, NETWORK ..)
5
Computer Engineering Research

6.

Install Virtual Machine Monitor
“Virtual Machine Environment”
Download VMware Player (
https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_
workstation_player/12_0
) or
(http://core.kaist.ac.kr/~ djshin/VMware-player-12.0.0-2985596.exe )
Depends on your OS
Windows-64bit
Linux-64bit
You need 64-bit Operating System.
If you don’t have, please contact TA.
6
Computer Engineering Research

7.

Install Virtual Machine Monitor
Install VMM
Install the product following the instructions of the i
nstaller
Installation Path
7
Enter your e-mail
Run VMware Player
Computer Engineering Research

8.

Install Guest OS
We’ll use Linux OS for Guest
Linux
made by Linus Torvalds in 1991
Free software for replacing Unix
Many usages - servers, desktops, mobile devices(Android)
Linux Distributions
Operating Systems based on Linux Kernel
Linux Kernel : Core of Linux
Scheduling, File System, Device Drivers
System Software : Compilers, Libraries, User Interface
User Program : Office, DB, Web Server, Web Browser, Mail …
8
Computer Engineering Research

9.

Install Guest OS
Download Ubuntu Linux
http://www.ubuntu.com/download/desktop
ubuntu-14.04.3-desktop-amd64.iso
or http://core.kaist.ac.kr/~
djshin/ubuntu-14.04.3-desktop-amd64.iso
9
Computer Engineering Research

10.

Install Guest OS
Create your own Virtual Machine
Select New Virtual Machine
10
Downloaded File Path
Login Password
Computer Engineering Research

11.

Install Guest OS
Virtual Machine Properties
Disk Size : 20GB is enough Main Memory Size for VM
Number of processor for VM
Need free space in HDD
more than 1GB
11
Computer Engineering Research

12.

Install Guest OS
Initialize Ubuntu Desktop
it takes several minutes.
12
log-in with your
password
open terminal (ctrl +
alt + T)
Computer Engineering Research

13.

Install Guest OS
Get root account & password
root account : the highest level account for administrator
It is needed when
change system configuration
install programs
execute system-level program
cannot reboot
create root
password
13
you are the root
now
Computer Engineering Research

14.

Shell Script
Shell
A command line interpreter
CLI
Accepts input from the user
Executes the command that is given
Types of Shell
Command Line Interface (CLI) shell
Based on text
GUI
Graphic User Interface (GUI) shell
Based on graphic
e.g. x-window system in linux
14
Computer Engineering Research

15.

Shell Script
Various CLI Shells
Bourne Shell (1977) == sh
bourne shell (sh)
Developed by Steve Bourne @ AT
&T Bell lab.
First shell of UNIX system
Bourne-again shell (1989) == b
ash
Developed by Brain Fox
Basis of shells on UNIX/LINUX type
bash shell : Ubuntu
default
system
Recent systems also use bash
15
Computer Engineering Research

16.

Shell Script
CSH (C shell)
Developed by Bill Joy
C-language-like shell interpretation
TCSH (Tenex C shell)
Tenex: OS from Carnegie Mellon Univ.
Enhanced version of CSH for Tenex system
16
Computer Engineering Research

17.

Shell Script
Command execution on Shell
ls : List information about file(s)
cat : Display the contents of a file
echo : Print string
mkdir : Create new folder(s)
rmdir : Remove folder(s)
pwd : Display current directory
cd : Change current directory
cp : Copy one or more files to an
other location
mv : Move or rename files or dire
ctories
rm : Remove files
17
Computer Engineering Research

18.

Writing a Shell Script
Text Editor
gedit : GUI based text editor
vi, vim : CLI based text editor
install vim
apt-get install vim
you can use any text editor
ubuntu:~$ gedit
18
ubuntu:~$ vim
test.sh
Computer Engineering Research

19.

Writing a Shell Script
Writing a Simple Script
$ vim test.sh
simple source code
or $ gedit test.sh
save file
$ chmod 755 test.sh
$ ./test.sh
execution
$ ./test.sh something
Shell Script Guide
http://linuxconfig.org/bash-scripting-tutorial
19
Computer Engineering Research

20.

tree -d
20
Computer Engineering Research

21.

Writing a C Program
Writing a C Program
$ vim hello
simple source code
or $ gedit hello.c
save file
$ gcc hello.c -o hello
$ ./hello
compile & execution
C Program Guide
http://www.gnu.org/software/gnu-c-manual/gnu-c-manual.pdf
https://
classes.soe.ucsc.edu/cmpe013/Spring10/notes/C%20Programming%
20Guide.pdf
21
Computer Engineering Research

22.

Make Utility
Utility for automatically building executable p
rograms and libraries from source code
Help build programs from numbers of source cod
e files
Manage dependency among source code files an
d compiling method
Prevent mistake
$ gcc –o hello hello.c
Correct
$ gcc –o hello.c hello.c
source code will be gone!
22
Computer Engineering Research

23.

Make Syntax
Syntax
<Target>: <dependency>
<Compile command>
$ make program
Will compile “program”
After all compilation of others because of dependency
This empty space
should be “tab” not
“space”
23
Computer Engineering Research

24.

Makefile Example
24
Computer Engineering Research

25.

Macro of Makefile
Similar as “#define” of C programming
Useful for repeated expression
Below will do same compilation as previous slide
$ make all : compile every BINs
$ make clean : delete every BINs
25
Computer Engineering Research

26.

Task1. Tree Script
Write a bash shell script that shows tree stru
cture of the directories and files included in y
ou own home directory.
Example of Task1
26
Computer Engineering Research

27.

Task2. Simple C Program
Benchmark
Computer program in order to assess the relative per
formance of an object, normally by running a numbe
r of standard tests and trials against it
We can make File System Benchmark!
with Sequential Access and Random Access
Access 1
Order
2
Logical
Block
2
1
Sequential
Access
Random Access
3
4
5
6
7
2
5
3
1
4
7
6
3
4
5
6
7
1
2
3
4
5
6
7
Example of Task1
27
Computer Engineering Research

28.

Task2. Simple C Program
Sample code is here
http://core.kaist.ac.kr/~djshin/fsbench_sample.c
File create Sequential Write Sequential Read Ran
dom Write Random Read File Delete End
You should Implement 3 functions
You can refer “file_write_sequential()” function
void file_read_sequential()
: about 20 lines
void file_write_random()
: about 25 lines
void file_read_random()
: about 25 lines
Example of Task1
28
Computer Engineering Research

29.

Task2. Simple C Program
Compile & Execute Sample Code
Implement 3 operations : Sequential Read, Random Write,
Random Read
29
Computer Engineering Research

30.

Task2. Simple C Program
Example of Task2
30
Computer Engineering Research

31.

Task3. Makefile
Write a Makefile for the source code of Task2
Test cases
make all
make clean
Example Result of
Task3
31
Computer Engineering Research

32.

Submission
Contents
Source Code
Report
Answer to the questions
Key point of your Source Code
Screenshots (Task 1, 2, 3)
Page Limit : about 5 page (except figures)
Submission
Due Date : Sept. 19 ,PM 23:59
E-mail : [email protected]
[EE516] student_number.zip
(various compression format is allowed)
Computer Engineering Research

33.

General Grading Policy
Ratio of Grading
Tasks : 70%
Code operation(exception handling), Code readability
No errors and warnings
Report : 30%
Free-form
Problems, Key point of your Source Code, Screenshots of Results
Page Limit : about 5 page (except figures)
Delay Penalty
10%/day (AM 00:00)
Source Code Copying will deduct all of your points
should mention if you referenced it
Computer Engineering Research

34.

How to Transfer your files
Compression and Extraction
tar.gz
$ tar -czvf compressed_file_name.tar.gz dir_name
$ tar -xzvf compressed_file_name.tar.gz
zip
$ zip compressed_file_name.zip dir_name
$ unzip compressed_file_name.zip
File Transfer between Host Window and VM
Just Copy and Paste
Ctrl + C
Ctrl + V
Computer Engineering Research
English     Русский Правила