You are on page 1of 65

Machine Translated by Google

Kỹ thuật hệ thống máy tính

Bài giảng 5: Kiến trúc phần mềm nhúng

Nguyễn Minh Sơn, Tiến sĩ

1
Machine Translated by Google

Đề cương

o Bộ nạp khởi động

o Hệ điều hành nhúng o Hệ thống tập tin

gốc o Giao diện người

dùng đồ họa của hệ thống nhúng


Machine Translated by Google

Hình ảnh thành phần phần mềm của hệ thống nhúng

o Ba hình ảnh thành phần phần mềm n hình ảnh


Bootloder n hình
ảnh hạt nhân n
hình ảnh hệ thống tập tin gốc
Machine Translated by Google

Bản đồ hình ảnh SW nhúng điển hình

o Hướng dẫn cố định trước


n Có thể được lấy từ các vị trí cố Bộ nạp khởi động

định trong quá trình bật nguồn.


Thông số khởi động
o Ví dụ: Bắt đầu từ 0x00000000

o Thiết bị rắn được phân bổ trước: hạt nhân


n FLASH
rom _
n Hoặc EEPROM
Hệ thống tập tin gốc

o Sơ đồ hình ảnh điển hình như hình.


Machine Translated by Google

Bộ nạp khởi động

o Bộ nạp khởi động

o Hệ điều hành nhúng o Hệ thống tập tin

gốc o Giao diện người

dùng đồ họa của hệ thống nhúng


Machine Translated by Google

Trình tải khởi động là gì?

o Một chương trình nhỏ đặc biệt


n còn được gọi là trình tải khởi động.

o Công việc duy nhất của


bootloader: n Load phần mềm khác để hệ điều hành khởi động.
Machine Translated by Google

Bộ tải khởi động Linux

o Để khởi tạo nền tảng:


n Tải nhân Linux

o Hạt nhân có thể được tải xuống bằng cách sử dụng tftp/
bootp. o Hạt nhân được truy cập từ flash nếu nó nằm trong
Tốc biến.

n Chạy nhân Linux

n Thiết lập các thông số khởi tạo khác nhau:

o Dòng lệnh: root=/dev/nfs ….

o ID nền tảng (được lưu trong r1)


Machine Translated by Google

Bộ tải khởi động có sẵn cho nền tảng ARM

o U-Boot: Universal Bootloader n Phần

mềm cơ sở cho nhiều kiến trúc CPU và bo mạch với mã nguồn đầy đủ
theo GPL. n http://

sourceforge.net/projects/u-boot
o Khởi động lại

n Một giải pháp chương trình cơ sở khởi động và gỡ lỗi toàn diện để
phát triển, triển khai và quản lý các thiết bị nhúng.

n http://www.ecoscentric.com/ecos/redboot.shtml
ồ …
Machine Translated by Google

Quá trình khởi động


Machine Translated by Google

Các loại xử lý Bootloader

1. Bộ tải khởi động một giai đoạn 2.

Bộ tải khởi động nhiều giai đoạn n


Có khả năng cung cấp chức năng tốt và tính di động n
Thường được sử dụng
Machine Translated by Google

Kiểu mã hóa của bộ tải khởi động nhiều giai đoạn

o Bộ tải khởi động hai giai đoạn được sử

dụng. o Kiểu mã hóa trong


Giai đoạn 1 n Chủ yếu mã hóa bằng hợp

ngữ o Vì mục đích hiệu quả o

Kiểu mã hóa trong Giai đoạn


2 n Mã hóa bằng ngôn

ngữ C o Khả năng đọc tốt và tính

di động o Để dễ dàng thực hiện chức năng phức tạp


Machine Translated by Google

Nhiệm vụ của Bootloader hai giai đoạn


o Giai đoạn 1

n Khởi tạo phần cứng và chuẩn bị tải

o Trong khi bật nguồn hoặc thiết lập lại hệ thống

n Hợp ngữ o Giai


đoạn 2 n
Tải ảnh hạt nhân
n Khởi chạy Kernel Boot
Machine Translated by Google

Khởi tạo phần cứng (Giai đoạn 1)

o Phát hiện loại máy o


Khởi tạo
n Che giấu tất cả Yêu cầu ngắt n
Đặt tốc độ xung nhịp của Bộ xử lý

n Khởi tạo bộ nhớ & đăng ký n Khởi tạo

các thiết bị ngoại vi cần thiết n

Khởi tạo bộ điều khiển ngắt và cài đặt trình xử lý ngắt. n Khởi tạo

các chỉ báo (LED, v.v.) n Tắt bộ nhớ đệm

dữ liệu và lệnh.
Machine Translated by Google

Chuẩn bị tải (Giai đoạn 1)

o Chuẩn bị dung lượng RAM cho Giai đoạn 2

o Thiết lập ngăn


xếp n Dung lượng ngăn xếp tốt hơn là bằng số lần trang bộ nhớ (4
KB)
n Đặt con trỏ ngăn xếp: sp = stage2_end

- 4 o Chuyển đến Điểm đầu vào của Giai đoạn 2


Machine Translated by Google

Bản đồ bộ nhớ

0x0000,0000

Giai đoạn 1, 1K
0x0000,0400(1KB) (Hình ảnh của boorloader)

Giai đoạn 2, 64K


(Hình ảnh boorloader)
0x0001,0000(64KB)

Tốc biến
(Trống )

Hình ảnh hạt nhân

(Trống)

đĩa RAM

giai đoạn2_start
ĐẬP
RAM được phân bổ giai đoạn 1
Stack_Pointer: stage2_end - 4 khoảng
trống cho Giai đoạn 2
giai đoạn2_end
Machine Translated by Google

Khởi tạo (Giai đoạn 2)

o Viết tắt

n Khởi tạo phần cứng cần thiết ở Giai đoạn 2

o Ít nhất khởi tạo một cổng nối tiếp o


Khởi tạo bộ hẹn giờ

n Kiểm tra bản đồ bộ nhớ

o Đảm bảo địa chỉ ánh xạ có thể truy cập được n Xóa
bộ nhớ o Đã bật
trình tải

n Loader: mã vùng của Boot image


Machine Translated by Google

Tải hình ảnh hạt nhân (Giai đoạn 2)

o Cấp phát bộ nhớ n Cấp


phát không gian ảnh hạt nhân
o MEM_START + 0x8000 o 32k
cho tham số khởi động, bảng trang kernel n Phân
bổ không gian hệ thống tập tin gốc
o MEM_START + 0x00100000 o Đang
tải n Tải
và trích xuất ảnh hạt nhân từ flash vào RAM. n
Tải và trích xuất hình ảnh hệ thống tập tin gốc từ flash sang
ĐẬP.
Machine Translated by Google

Khởi chạy Kernel Boot (Giai đoạn 2)

o Thiết lập các thông số khởi đầu của kernel.

n Các phương thức danh sách được

gắn thẻ o Khởi động kernel

o Khởi tạo hệ thống n

Bằng cách gọi các hàm kernel


Machine Translated by Google

Các thông số khởi đầu (Giai đoạn 2)

o Thiết lập các thông số khởi đầu của kernel


n Sử dụng danh sách được gắn thẻ để truyền các

tham số bắt đầu o Bắt đầu bằng thẻ

ATAG_CORE o Kết thúc bằng thẻ


ATAG_NONE n (Sau phiên
bản 2.4.x) n Các tham số bắt đầu cần được đặt bởi
Bộ nạp khởi động:

o ATAG_CORE o

ATAG_MEM o

ATAG_CMDLINE, o

ATAG_RAMDISK o

ATAG_INITRD
Machine Translated by Google

Khởi động hạt nhân (Giai đoạn 2)

o Chuyển tới MEM_START + 0x8000 o


Thiết lập các thanh ghi CPU
n R0=0 n

R1=ID loại máy o Linux/arch/

arm/tools/mach-types n R2=Địa chỉ cơ sở của danh


sách tham số khởi động trong RAM o Chế độ CPU n Cần ngăn chặn ngắt
(IRQ và FIQ). n Nó

cần thiết lập CPU ở chế độ SVC (Switch Virtual Circuit).

o Cài đặt bộ đệm và MMU n


Tắt MMU
o Bỏ qua nếu hệ thống nhúng không có MMU (đơn vị
quản lý bộ nhớ).
n Tắt bộ đệm dữ liệu
Machine Translated by Google

Hệ thống khởi tạo

o Gọi các hàm kernel n Các


đối tượng và hàm dịch vụ khác nhau của kernel:

o Đối tượng tác


vụ o Dịch vụ hẹn giờ

o Dịch vụ quản lý bộ nhớ o …

o Đang tải trình điều khiển thiết bị hệ thống

n Khởi tạo thiết bị phần cứng


Machine Translated by Google

Hoạt động của bộ tải khởi động XSBase255B

o Đối tượng

n Hoàn tất công việc chuẩn bị trước khi khởi động kernel.

o Giai đoạn

1 : n Khởi tạo thiết bị với ngôn ngữ Assembly

o Giai đoạn 2 :

n Việc khởi tạo phức tạp được thực hiện bằng ngôn ngữ C, nhưng không bao giờ gọi
bất kỳ hàm nào của glibc.

n Làm thế nào để chuyển sang main()?

o Trực tiếp nhảy đến điểm vào của chính

o Trình bao bọc bên ngoài: viết chương trình tấm bạt lò xo

(lắp ráp) và coi nó là điểm vào của giai đoạn 2.

Chuyển sang vấn đề chính từ đây. Hướng ngược lại được sử dụng khi
nó quay trở lại.
Machine Translated by Google

Một số bộ tải khởi động giai đoạn hai

o Sử dụng cho Giai đoạn 2


n người khởi
động N
GRUB và
LILO và
MasterBooter
N NTLDR n
XOSL n
BootX n
Loadlin
n Gujin n Trình quản lý khởi
động OSL2000 n
Boot Camp n
Syslinux n GAG ( Trình quản lý khởi động đồ họa)
Machine Translated by Google

Hỗ trợ Bootloader
Machine Translated by Google

Các trang web của Bộ tải khởi động X86 nhúng

hoặc bí danh

n http://www.telos.de/linux/alios/
default.htm o

LinuxBIOS n http://www.acl.lanl.gov/

linuxbios/index.html o
NILO(netboot,etherboot) n

http://
nilo.sourceforge.net o TinyBIOS và http://www.pcengines.ch/tinybios.htm
o ROLO
n ftp://www/elinos/pub/elinos/rolo
Machine Translated by Google

Các trang web tải khởi động nhúng khác


o LILO/GRUB

n http://lilo.go.dyndns.org
n http://www.gnu.org/software/grub/

o Dự án Blob :LART

n http://www.lart.tudelft.nl/lartwareblob/

o Khởi động U

n http://u-boot.sourceforge.net/

n http://www.denx.de/re/DPLG.html n

http://sourceeforge.net/projects/u-boot

n http://armboot.sourceforge.net/

o Khởi động lại

n http://www.ecoscentric.com/snapshots/
Machine Translated by Google

Bộ tải khởi động điển hình

ồ NTLDR (Trình tải NT )


n Vì 2000/XP/Máy chủ 2003

n Không xuất hiện trong Windows Vista n


Để tải hệ điều hành dựa trên NT

ồ LILO (LInux LOader) n Một bộ

tải khởi động chung cho Linux hoặc

GRUB (GNU GRUB) n Gói bộ tải

khởi động từ Dự án GNU o U-Boot (bộ tải khởi động phổ

quát) n Di động

n Dễ dàng chuyển đổi và gỡ lỗi


Machine Translated by Google

Hỗ trợ Bootloader điển hình

NIOS Microblaze
x86 ARM MIPS PPC
(Thay đổi) (Xilinx)

NTLDR

LILO

GRUB

Bãi

U-Boot*

RedBoot*
Machine Translated by Google

Các chế độ hoạt động của Boot Loader

1. Chế độ tải khởi động


n Chế độ tự trị

o Đang tải trong khi bật nguồn

2. Chế độ tải xuống


Machine Translated by Google

Chế độ tải xuống

o Một thay thế của chế độ Boot loading o

Bootloader thường sử dụng các giao thức sau để kết nối


Target và Host:
n Giao thức UART
o Thông thường như xmodem, ymodem, zmodem o

Tốc độ bị giới hạn n


Giao thức TFTP (chuyển mạng) o Host

cần cung cấp dịch vụ TFTP

o Tải tài liệu từ Host n Chẳng hạn như hình


ảnh
Machine Translated by Google

Hệ điều hành nhúng

o Bộ nạp khởi động

o Hệ điều hành nhúng o Hệ thống tập tin

gốc o Giao diện người

dùng đồ họa của hệ thống nhúng


Machine Translated by Google

Kiến trúc của hệ thống nhúng


Machine Translated by Google

Hệ điều hành nhúng điển hình

o Windows CE /Mobile Windows o


Palm OS o
EPOC o uC/
OS-II o Hệ

điều hành
Symbian o
RTOS: n VxWorks, pSOS…
o Linux:
n uClinux, Montavista Linux, ARM-Linux…
Machine Translated by Google

Kiến trúc WinCE


Machine Translated by Google

Ưu điểm của WinCE

o Lợi ích
n Bộ tải khởi động NAND Flash tích hợp, Máy chủ
SD n IP nhúng khác nhau

n Giảm thời gian thiết kế với bảng tham chiếu hỗ trợ &
RTOS

n Các ứng dụng thiết kế khác nhau

o Các ứng dụng chính n


PDA không dây

n Điện thoại
thông minh n Máy chơi game

n Thiết bị đầu cuối điểm bán hàng

n Máy nghe nhạc di động


Machine Translated by Google

Nền tảng Linux

Từ http://www.xml.com/ldd/chapter/book/bookindexpdf.html
(GPL)
Machine Translated by Google

Linux nhúng mã nguồn mở

o Dự án Debian nhúng
n Chuyển đổi Debian sang hệ điều hành nhúng

o ETLinux
n Đối với PC104 SBC

o uCLinux
n Đối với bộ vi xử lý không có MM

o uLinux (muLinux) n
Distro vừa vặn trên một đĩa mềm
Machine Translated by Google

Không gian hạt nhân

o Cấu trúc hạt nhân


n Cấu trúc dữ liệu của Process

o ID tiến trình, Mức độ ưu tiên, Trạng thái, Đăng ký được sử dụng,

Ngắt, Biến toàn cục n Quản lý quy

trình

o Quy trình dịch vụ của người dùng lặp đi lặp lại


n Quản lý thời gian

o Yêu cầu độ trễ thời gian cho ngắt n Giao


tiếp và đồng bộ hóa giữa các quá trình

o Semaphores, hộp thông báo, hàng đợi tin nhắn n


Quản lý
bộ nhớ o Cơ chế phân bổ

và giải phóng bộ nhớ


Machine Translated by Google

Kiến trúc hạt nhân của RTOS

o Hạt nhân nguyên thủy

n Đưa ra các lệnh gọi hệ thống để


ngắt n Kết nối các tiến trình với hệ thống

o Quy trình dịch vụ ngắt (ISR)


n Ngắt phần mềm & ngắt phần cứng
o Bộ lập lịch quy trình n

Người điều phối

o Lập kế hoạch đến trước được phục vụ trước (FCFS) o

Lập kế hoạch ưu tiên (PS) n Ưu


tiên n Không ưu
tiên
Machine Translated by Google

Chương trình hạt nhân cơ bản

o Đồng bộ hóa n
Semaphores: Được truy cập bởi Pend() và
Post() o Quản lý bộ đệm
n Yêu cầu() và Giải
phóng() o Truyền
dữ liệu n Gửi() và
Nhận() o Quản lý ngắt
n EnableINT() và DisableINT()
o Quản lý quy trình
n Khối điều khiển quy trình (PCB) n

Trạng thái quy trình: đang chạy, chờ, sẵn sàng


n Chuyển đổi ngữ cảnh
Machine Translated by Google

Cấu trúc uCLinux


Machine Translated by Google

Xây dựng nhân Linux XSBase255B

o Thiết lập hạt


nhân o Thư mục và tập tin

o Thiết lập Makefile và config.in


o Thêm ứng dụng vào Kernel
Machine Translated by Google

Cấu trúc thư mục hạt nhân


Machine Translated by Google

Cấu hình hạt nhân

o Yêu cầu ba phần của tập tin


1. Tập tin tạo

2. Cấu hình.in

3. Công cụ cấu hình(, …)


Machine Translated by Google

Làm hạt nhân

o $make menuconfig
o $make dep
o $make zImage
Machine Translated by Google

Hệ thống tập tin gốc

o Bộ nạp khởi động

o Hệ điều hành nhúng o Hệ thống tập tin

gốc o Giao diện người

dùng đồ họa của hệ thống nhúng


Machine Translated by Google

Các loại hệ thống tập tin gốc

Hệ thống tập tin Viết luôn mạnh mẽ Nén vào


Xuống ĐẬP

độ tin cậy

CRAMFS N N N y N

JFFS2 y y y y N

JFFS y y y N N

NFTL/Ext2 y y N N N

NFTL/Ext3 y y y N N

ĐĨA RAM/ y N N N y
Ext2

NFTL: Lớp truyền flash NAND


Machine Translated by Google

4.3 Hệ thống tập tin cramfs

o Chuột rút

n Hệ thống tệp ROM nén (hoặc cramfs) n Hệ thống


tệp Linux chỉ đọc miễn phí (GPL'ed) được thiết kế cho
tính đơn giản và hiệu quả về

không gian o Cramfs được sử dụng trên một số hệ thống nhúng


và các thiết bị nhỏ
n Kích thước tập tin <16MB

n Dung lượng<256MB
n PAGE_CACHE_SIZE=4096B của hạt nhân
Machine Translated by Google

4.3 Hệ thống tập tin ext2

o Ưu điểm: n Hỗ
trợ bộ nhớ lên tới 4TB n Hỗ
trợ tên tệp dài 1012 byte n liên
kết tượng trưng: tăng tốc bảng chỉ mục

o Nhược điểm : n Thiết

kế thiết bị IDE: 1block=512, 1024, 2048… n NAND

FLASH không hỗ trợ


n XÓA/Ghi

n Không quản lý số dư
Machine Translated by Google

4.3 Hệ thống tập tin JFFS2

o JFFS2
n Hệ thống tệp có cấu trúc nhật ký được thiết kế để sử dụng trên các thiết bị
flash trong hệ thống nhúng.

o Tính năng
n Tỉ số nén < cramfs

n Tốt hơn ext2 ở (r/w/erase)


n Tắt nguồn không gặp sự cố

n Nếu đầy đủ làm chậm hiệu suất


Machine Translated by Google

4.4 Giao diện người dùng đồ họa của hệ


thống nhúng

4.1 Bộ tải khởi động

4.2 Hệ điều hành nhúng 4.3 Hệ thống tập tin

gốc 4.4 Giao diện người

dùng đồ họa của hệ thống nhúng


Machine Translated by Google

4.4 Thiết bị đầu cuối IA đa chế độ trong tương lai


Machine Translated by Google

4.4 Các tính năng chung: Giao diện người


dùng đồ họa

PDAPPT 8846 Đồ họa 3D

GUI điển hình

Bộ điều hướng HP iPAQ rz1710


203 MHz S3C2410
7,0 x 1,3 x 11,4 cm
Machine Translated by Google

4.4 GUI hệ thống nhúng Thêm

www.cybervision.com.tw/
Machine Translated by Google

Nguyên tắc cơ bản về GUI Tiny-X


Trình tạo GUI cho Linux: Glade
Machine Translated by Google

Glade và GTK+
o GTK là gì?
n GTK+: Bộ công cụ GIMP

o GIMP: Chương trình thao tác hình ảnh GNU


n GTK+ là một bộ công cụ Giao diện người dùng đồ họa (GUI) n

GTK+ được sử dụng để xây dựng hệ thống X-window dựa trên GUI

o Glade là gì?
n Glade là Trình tạo giao diện người dùng cho GTK+

n Glade là một công cụ lập trình trực

quan o Tương tự như công cụ Visual VB, Delphi,…


Machine Translated by Google

Cài đặt “Glade” trên XSBase255

o Tại thư mục /home/Packages/RPM/ gõ lệnh: RPM –


ivh
Glade-0.6.4-9.i386.rpm n
RPM là Red-Hat Package Manager n
-i nghĩa là cài
đặt Lệnh: RPM –ivh Glade -0.6.4.9.i386.rpm
Machine Translated by Google

Công nghệ MPEG-2


Triển khai bộ giải mã MPEG-2
Machine Translated by Google

MPEG
o MPEG (Nhóm chuyên gia điện ảnh) n Được thành
lập vào năm 1988

n Nhóm làm việc của ISO/IEC chịu trách nhiệm phát triển các tiêu
chuẩn về biểu diễn mã hóa âm thanh và video kỹ thuật số

n Tiêu chuẩn MPEG: Hệ thống, Video, Âm thanh


o Sản phẩm

n MPEG-1: Video CD và MP3 dựa trên

n MPEG-2: Hộp giải mã truyền hình kỹ thuật số và DVD


n MPEG-4: đa phương tiện cho web cố định và di động

n MPEG-7: để mô tả và tìm kiếm âm thanh và hình ảnh


nội dung

n MPEG-21: Khung đa phương tiện

o Các trang tham khảo


n http://www.mpeg.org/

n http://www.chiariglione.org/mpeg/
Machine Translated by Google

Thông số kỹ thuật hệ thống MPEG

o Cung cấp thông tin về thời gian cho: n


Quản lý bộ đệm n Đồng bộ
hóa âm thanh/video
N ...

o Dòng bit ghép kênh của:


n Âm thanh, video, dữ liệu và điều

khiển o Hỗ trợ: n
Kiểm soát truy cập (bảo mật)
n Thông tin cụ thể về chương trình
n Kiểm soát lưu trữ kỹ thuật số
N ...

o Ứng dụng hệ thống MPEG-2 n Truyền hình kỹ

thuật số phát sóng, Truyền hình kỹ thuật số cáp, Truyền hình tương tác, DVD,
... vân vân.
Machine Translated by Google

Ứng dụng H.264/AVC MPEG-4

( ITIS2000MIC)
Machine Translated by Google

Nén video MPEG-2

o Chủ đề n
Sơ đồ bộ mã hóa/giải mã MPEG n Cấu
hình và cấp độ

n Khung, Trường, Hình ảnh (I: Intraframe, P: Dự đoán, B: Hai


chiều) n
Sắp xếp lại hình ảnh IPB n
Định vị pixel n Công
cụ nén n Cấu trúc dữ
liệu video MPEG 2

o Các trang web tổng hợp MPEG-2

n http://www.bretl.com/mpeghtml/MPEGindex.htm
Machine Translated by Google

Sơ đồ MPEG cơ bản
Tín DCT VLC
+ Q
+

Vectơ
hiệu video Đã mã hóa
-
Khối vĩ mô
Dữ liệu
CHỈ SỐ THÔNG MINH

Khối của
Hiện hành
Khung
IDCT
TÔI

+
+ +

Khối của
Trước Khung
MC
Khung Đệm

(a) Sơ đồ khối bộ mã hóa MPEG

Tín hiệu video được giải mã


BUF VLD IDCT
CHỈ SỐ THÔNG MINH

+
Đã mã hóa
Khối vĩ mô
Vectơ chuyển động Khung
Dữ liệu MC
Ký ức

(b) Sơ đồ khối bộ giải mã MPEG


Machine Translated by Google

Hồ sơ mã hóa Mpeg2

Hoạt động % thời gian thực hiện

Ước tính chuyển động (quận 1) 71%

Biến đổi cosin rời rạc 9%

Lấy mẫu con 2%

Dự đoán 1%

Lượng tử hóa 1%

Mã hóa độ dài thay đổi 1%

Hạt nhân khác 14%


Machine Translated by Google

Thưởng thức !!!

Hỏi đáp

65

You might also like