Tải bản đầy đủ (.pdf) (163 trang)

Báo cáo lập trình nhúng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.73 MB, 163 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐIỆN – ĐIỆN TỬ
BÁO CÁO
LẬP TRÌNH NHÚNG
GVHD : ĐẬU TRỌNG HIỂN
SVTH : HOÀNG VĂN THƯƠNG 12341113
NGUYỄN ĐỨC HUY 12341045
Tp. Hồ Chí Minh, Tháng 5 Năm 2013
Trang 1
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
LỜI NÓI ĐẦU
Thế giới ngày nay với khoa học kĩ thuật phát triển mạnh mẽ cuộc sống con
người ngày càng được phát triển tốt hơn. Khoa học kỹ thuật đem lại nhiều tiện
ích thiết thực hơn cho cuộc sống con người. Góp phần to lớn trong quá trình
phát triển của khoa học kỹ thuật là sự phát triển mạnh mẽ của vi xử lý. Từ bộ vi
xử lý đầu tiên Intel 4004 được sản xuất bởi công ty Intel vào năm 1971, đến nay
ngành công nghiệp vi xử lý đã phát triển vượt bậc và đa dạng với nhiều loại như:
8951, PIC, AVR, ARM, Pentium,Core i7,….
Cùng với sự phát triển đa dạng về chủng loại thì tài nguyên của vi xử lý cũng
được nâng cao. Các vi xử lý ngày nay cung cấp cho người dùng một nguồn tài
nguyên rộng lớn và phong phú. Có thể đáp ứng được nhiều yêu cầu khác nhau
trong thưc tế. Để giúp cho người dùng sử dụng hiệu quả và triệt để các tài
nguyên này thì hệ thống nhúng ra đời. Hệ thống nhúng (Embedded system) là
một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng vào trong một
môi trường hay một hệ thống mẹ. Đó là các hệ thống tích hợp cả phần cứng và
phần phềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp,
tự động hoá điều khiển, quan trắc và truyền tin. Cùng với sự ra đời của hệ thống
nhúng, vi xử lý ngày càng được ứng dụng rộng rãi trong đời sống cũng như
trong công nghiệp vì khả năng xử lý nhanh, đa dạng, tiết kiệm năng lượng và
độ ổn định của hệ thống nhúng.


Những năm gần đây, sự năng động và tích cực hội nhập quốc tế đã đem về
hơi thở mới cho Việt Nam về mọi mặt: kinh tế, xã hội, văn hóa, nghệ thuật …
Lĩnh vực kỹ thuật nói chung và kỹ thuật điện tử nói riêng cũng có những thay
đổi theo chiều hướng tích cực. Bên cạnh việc áp dụng những kỹ thuật mới (chủ
yếu mua từ nước ngoài) vào sản xuất, nhiều công ty ở Việt Nam đã chú trọng
đến việc phát triển đội ngũ R&D (Research And Development) để tự chế tạo
sản phẩm hoàn thiện cung ứng cho thị trường. Một trong những sản phẩm đó là
NHÓM 29
Trang 2
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
kit KM9260 là một kit nhúng được tích hợp cao trên nền vi điều khiển
AT91SAM9260.
Tuy hệ thống nhúng rất phổ biến trên toàn thế giới và là hướng phát triển của
ngành Điện tử sau này nhưng hiện nay ở Việt Nam đội ngũ kỹ sư hiểu biết về hệ
thống nhúng còn rất hạn chế không đáp ứng được nhu cầu nhân lực trong lĩnh
vực này. Trước tình hình thiếu nhân lực như thế này, trường Đại Học Sư Phạm
Kỹ Thuật Thành Phố Hồ Chí Minh với tư cách là một trong những trường sư
phạm kỹ thuật đứng đầu của Việt Nam đã nghiên cứu về lĩnh vực hệ thống
nhúng và sẽ đưa vào hệ thống môn học đào tạo trong tương lai gần nhất.
Vì vậy nhóm chúng em đã viết bài báo cáo này để củng cố lại kiến thức sau
thời gian tiếp xúc với bộ môn nhúng này. Bài viết gồm 6 TOPIC cơ bản liên
quan đến quá trình sử dụng, biên dịch, làm quen với các phần mềm để sử dụng
cho KIT KM9260 này.
Mặc dù nhóm chúng em đã cố gắng hoàn thành nhiệm vụ đặt ra và đúng thời
hạn nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, mong thầy và các bạn
sinh viên thông cảm. Nhóm chúng em mong nhận được những ý kiến đóng góp
của thầy và các bạn sinh viên.
TP.HCM, Ngày 13 tháng 05 năm 2013
Nhóm 29
NHÓM 29

Trang 3
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
LỜI CẢM ƠN
Lời đầu tiên, nhóm chúng em xin được phép chân thành gửi lời cảm ơn đến
thầy Đậu Trọng Hiển, giáo viên hướng dẫn bộ môn Lập Trình Nhúng, đã định
hướng và trao đổi những kinh nghiệm quý báu để nhóm chúng em thực hiện
những nội dung trong cuốn tiểu luận này một cách hoàn chỉnh.
TP.HCM, Ngày 15 tháng 05 năm 2013
NHÓM 29
Trang 4
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
MỤC LỤC
TOPIC 1: Phần cứng KIT nhúng KM 9260
Sơ đồ khối của kit Km9260 trang 1
Một số đặc điểm chung trang 2
TOPIC 2 :Các Gói Nhân Linux ( Phần Mềm) cho KIT. Các gói nhân, quá trình
boot, cách nạp OS cho KIT.
Các gói nhân của hệ điều hành LINUX trang 13
Quá trình boot hệ điều hành LINUX trang 15
TOPIC 3: Phương pháp biên dịch trên KIT KM 9260
Giới thiệu sơ lượt trang 25
Cách thức cài công cụ trên PC trang 25
Cách thức chép file, truyền file, thư viện vào kit trang 26
Thực thi chương trình trên Kit trang 28
TOPIC 4 : Giới thiệu QT
Tổng quan sơ lược về QT trang 31
Cài đặt thư viên Tslib trang 32
Cài đặt thư viện Opensource everywhere trang 34
TOPIC 5 : Phương pháp biên dịch QT sang KIT hoặc thiết bị nhúng hoặc điện
thoại

TOPIC 6 : Giới thiệu về lập trình driver và phương pháp lập trình driver
Giới thiệu tổng quan về lập trình driver trang52
Số định danh character driver trang 56
Cấu trúc mô tả tập tin của character driver trang 63
Cấu trúc tập tin của character driver trang65
Cài đặt character device driver vào hệ thống Linux trang 66
Tổng quan về giao diện trong cấu trúc lệnh file_operations trang 68
Giao diện read() & write() trang 68
Giao diện ioctl() trang 71
NHÓM 29
Trang 5
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
Lập trình mã lệnh trong character driver trang 77
Cài đặt driver vào hệ thống linux trang 90
Phương pháp lập trình driver trang 91
Biên dịch chương trình driver trang 106
NHÓM 29
Trang 1
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
TOPIC 1
PHẦN CỨNG KIT NHÚNG KM9260
Một hệ thống nhúng bao gồm hai phần: phần cứng và phần mềm. Trong đó
phần cứng là nền tản, là điều kiện cần để một hệ thống nhúng có thể tồn tại. Để
có thể sử dụng được một hệ thống nhúng thì chúng ta phải hiểu được phần cứng
của nó
Trong hệ thống nhúng ngoài vi xử lý là nồng cốt thì bên cạnh đó còn có nhiều
linh kiện khác: chíp nhớ, các thiết bị ngoại vi, … Trong phần này chúng ta sẽ
tìm hiểu phần cứng của Kit KM9260 gồm những linh kiện nào, chức năng của
các linh kiện, vị trí của từng linh kiện trên board.
Vì phần cứng hệ thống nhúng đa số là do các công ty sản xuất thiết kế, thi

công nên với tư cách là một người nghiên cứu để sử dụng thì trong giáo trình
này chúng ta không đi sâu vào mạch nguyên lý của kit nhúng.
Sơ đồ khối của kit Km9260
Sơ đồ khối của kit Km9260
NHÓM 29
Trang 2
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
I. MỘT SÔ ĐẶC ĐIỂM CHUNG
1.1 Bộ xử lý
- Sử dụng các bộ xử lý 32 bit, các vi điều khiển 32 bit đa dụng (General
purpose microcontroller)
- Tốc độ xử lý: Vài trăm Mhz
- Độ tin cậy cao, tiêu thụ năng lượng thấp
- Hỗ trợ giao tiếp nhiều ngoại vi
1.2 Nguồn cung cấp
- Nguồn cung cấp phải tuyệt đối ổn định, chuẩn
- Có khả năng cung cấp nhiều mức điện áp cho hệ thống như: 5v, 3.3v,
2.5v, 1.8v
- Sử dụng các bộ ổn áp switching chuyên dụng.
- Tiêu hao năng lượng thấp để có thể sử dụng các battery (nguồn pin) cho
hệ thống.
Các thành phần trên board bao gồm:
Ảnh của kit Km9260
NHÓM 29
Trang 3
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
ST
T
KÝ HIỆU TÊN
1 J3 Cổng USB (loại A)

2 J7 Cổng USB Devices (loại B)
3 U2 MT48LC16M16A2, SDRAM 256Mb (32MB)
133Mhz
4 J17 Kết nối mở rộng SCI
5 J10 Cổng truyền dữ liệu nối tiếp BD9
6 U8 K9F2G08UOM, NAND Flash (256MB)
7 J5 Giao tiếp JTAG ICE
8 U9 Serial dataflash (512kB)
9 U1 AT91SAM9260, 16/32 bit ARM926EJ-S 180Mhz
10 J12 Jack nguồn 5VDC
11 U5 DM9161EA, Ethernet 10/100 Full-Duplex
12 RJ1 Cổng Giao tiếp Ethernet (RJ45)
13 S1, S2, S3,
S4
Các nút nhấn
14 U10 Khe thẻ nhớ MicroSD
15 U11 I2C EEPROM
16 J12 Công tắt nguồn
17 J16 Kết nối mở rộng Uart, Adc, Twi
18 J14 Kết nối mở rộng SPI
Bảng các linh kiện trên kit Km9260
1.3 Bộ nhớ
1.3.1 Bộ nhớ SDRAM
NHÓM 29
Trang 4
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
- Bộ nhớ chính sử dụng SDRAM bus 133Mhz, SDRAMC được cấu hình
với bus data 16 bit.
Mã số linh kiện MT48LC16M16A2 TC75
Chân chọn chip NCS1

Địa chỉ đoạn 0x20000000
Dung lượng 0x2000000 (32MB)
- Bảng sau trình bày thông số bảng đồ vùng nhớ của SDRAM trong hệ
thống.
Thông số của SDRAM
- Mã số linh kiện là số được in trên chân của chip, mã này do nhà sản xuất
qui định.
- Chân chọn chip NCS1 có nghĩa là chân CS của chip được nối với chân
SDCS_NCS1 của vi xử lý.
- Địa chỉ đoạn là địa chỉ mà vi xử lý gán cho chip tương ứng với NCS1.
- Dung lượng của SDRAM là 32 MB
1.3.2 Serial dataflash
NHÓM 29
Trang 5
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
Sơ đồ kết nối Serial DataFlash
- Board sử dụng chip nhớ serial dataflash kết nối qua đường SPI0 ( slot
CS1 ).
- AT91Bootstrap các biến môi trường ( U-Boot’s Environment Variables ),
U-Boot được lưu trữ trong serial data flash. Các phân vùng chứa các bootloader
được thể hiện bởi bảng sau:
Mã số linh kiện AT45DB041D-SU
Chân chọn chip NCS2
Địa chỉ đoạn 0xD0000000
Dung lượng 0x80000 (512kB)
Offset Phân Vùng Phần mềm lưu
0x00000000 0 Bootstrap
0x00004200 1 Environment
0x00008400 2 U-Boot
1.3.3 Nand flash

NHÓM 29
Trang 6
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
Sơ đồ kết nối NAND FLASH
- Nand flash 256 MB dùng để chứa nhân Linux và root file system. 3 MB
vùng nhớ đầu tiên dành cho việc chứa kernel Linux, phân vùng còn lại chứa root
file system của hệ thống bảng sau thể thiện thông số memory map của Nand
flash.
Mã số linh kiện K9F2G08UOM
Chân chọn chip NCS3
Địa chỉ đoạn 0x40000000
Dung lượng 0x10000000 (256MB)
Offset Phân Vùng Phần mềm lưu
0x00000000 0 Kernel
0x00300000 1 Rootfs (JFFS2)
Thông số của NAND FLASH
1.3.4 Thẻ nhớ MicroSD :
Khe cắm thẻ nhớ MicroSD
NHÓM 29
Trang 7
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
- Do có hỗ trợ microSD, có thể thay thế vai trò của NAND Flash cho việc
lưu trữ kernel Linux với rootfs. Phân vùng đầu tiên (first partition) được
format theo định dạng FAT, phân vùng thứ 2 được định dạng theo ext2 hoặc
ext3 dùng để chứa rootfs. Để load kernel Linux từ MicroSD vào SDRAM đòi
hỏi U-Boot phải hỗ trợ mmc sub system command set. MicroSD thường được
dùng để boot Linux có roofs dung lượng lớn, ví dụ như Debian distribution.
1.4 Kết nối ngoại vi :
1.4.1 Cổng USB (J3) :
Cổng USB

Cổng USB tốc độ truy xuất 2.0, tương tự MicroSD, hệ thống có thể boot
Linux thông qua ổ đĩa di động USB
1.4.2 Cổng thiết bị USB (J7) :
Cổng USB Device
Với USB device connector, ta có thể biến board nhúng thành các thiết bị
USB. MCU AT91SAM9260 cho phép ta truy xuất đến tất cả các vùng nhớ trong
hệ thống thông qua chương trình ứng dụng trên máy tính SAMBA, khi đó dây
cable USB này được dùng đến.
1.4.3 Cổng truyền dữ liệu nối tiếp BD9 (J10):
NHÓM 29
Trang 8
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
Cổng truyền dữ liệu nối tiếp DB9
AT91SAM9260 có tích hợp cổng RS232. KM9260 dùng cổng RS232 này cho
việc hiển thị,
xuất nhập với console chính của Linux.
1.4.4 Cổng kết nối Ethernet (RJ1)
Cổng kết nối Ethernet
AT91SAM9260 có thể kết hợp với chíp Fast Ethernet PHY DM9161AEP
mang lại cho hệ thống tính năng mạnh mẽ về các ứng dụng mạng. KM9260 có
thể sử dụng như hệ thống webserver nhúng, sử dụng trong hệ thống thu thập đo
lường, điều khiển từ xa.
1.4.5 Kết nối mở rộng SCI (J17)
Khe cắm kết nối mở rộng SCI
Sơ đồ chân của khe cắm kết nối mở rộng SCI
SỐ
CHÂN
TÍN
HIỆU
CHÂN

VXL
SỐ
CHÂN
TÍN
HIÊU
CHÂN VXL
1 GND - 2 5V -
3 GND - 4 3V3 -
5 TK0 23 (PB16) 6 TF0 26 (PB17)
7 TD0 27 (PB18) 8 RD0 28 (PB19)
9 RK0 163 (PB20) 10 RF0 164 (PB21)
NHÓM 29
Trang 9
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
Connector cho phép ta có thể mở rộng kết nối với các thiết bị I2S audio
codec, truyền nhận dữ liệu 32bit stream ( High-speed Continuous Data
Stream )
1.4.6 Kết nối mở rộng SPI (J14)
Khe cắm kết nối mở rộng SPI
SỐ CHÂN TÍN HIỆU CHÂN VXL SỐ
CHÂN
TÍN HIÊU CHÂN VXL
1 GND - 2 3V3 -
3 SPI1_MISO 9 (PB0) 4 SPI1_MOSI 10 (PB1)
5 SPI1_SPCK 11 (PB2 6 SPI1_NPCS0 12 (PB3)
7 SPI1_NPCS1 67 (PC5) 8 SPI1_NPCS2 62 (PC4)
9 GPIO 63 (PC6) 10 GPIO 64 (PC7)
Sơ đồ chân của khe cắm kết nối mở rộng SPI
Connector mở rộng cho SPI, bao gồm 3 đường chip select tương ứng cho 3
slot CS0, CS1, S2.

1.4.7 Kết nối mở rộng UART, ADC, TWI (J16)
Khe cắm kết nối mở rộng Uart, Adc, Twi
SỐ
CHÂN
TÍN HIỆU CHÂN VXL SỐ CHÂN TÍN HIÊU CHÂN VXL
1 5V - 2 3V3 -
NHÓM 29
Trang 10
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
3 AVDD - 4 GND -
5 AGND - 6 VREFP -
7 AD0 158 (PC0) 8 AD1 159 (PC1)
9 IRQ1 127 (PC15) 10 UART_TXD0 15 (PB4)
11 UART_RXD0 16 (PB5) 12 UART_TXD1 17 (PB6)
13 UART_RXD1 18 (PB7) 14 UART_TXD2 19 (PB8)
15 UART_RXD2 20 (PB9) 16 UART_TXD3 161 (PB10)
17 UART_RXD3 162 (PB11) 18 TWD 208 (PA23)
19 TWCK 1 (PA24) 20 GPIO 23 (PB16)
Sơ đồ chân của khe cắm kết nối mở rộng Uart, Adc, Twi
Connector mở rộng cho các cổng giao tiếp serial bao gồm UART, TWI, bộ
chuyển đổi ADC, GPIO, ngắt ngoài IRQ1.
1.4.8 Giao tiếp JTAG ICE (J5)
Khe cắm giao tiếp JTAG ICE
SỐ
CHÂN
TÍN HIỆU CHÂN
VXL
SỐ
CHÂN
TÍN HIÊU CHÂN VXL

1 3V3 - 2 3V3 -
3 NTRST 35 4 GND -
5 TDI 30 6 GND -
7 TMS 31 8 GND -
9 TCK 34 10 GND -
11 RTCK 37 12 GND -
13 TDO 29 14 GND -
15 NRST 36 16 GND -
17 NC - 18 GND -
19 NC - 20 GND -
Bảng Sơ đồ chân của khe cắm giao tiếp JTAG ICE
Cổng JTAG ICE theo chuẩn 20 pin cho phép nạp chương trình và debug hệ
NHÓM 29
Trang 11
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
thống.
NHÓM 29
Trang 12
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
1.5 Nút nhấn
1.5.1 Nút Reset (S2)
Nút reset
Reset hệ thống, tích cực mức thấp.
1.5.2 Nút Wake up (S1)
Nút Wake up
Nút có tác dụng định thức hệ thống từ trạng thái power down.
1.5.3 Nút ứng dụng 1 (S3)
Nút ứng dụng 1
User button, kết nối với PC15 (chân 127) của AT91SAM9260 MCU. Tích
cực mức thấp.

1.5.4 Nút ứng dụng 2 (S4)
Nút ứng dụng 2
User button, kết nối với PC8 (pin 61) của AT91SAM9260 MCU. Tích cực
mức thấp.
NHÓM 29
Trang 13
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
TOPIC 2
Các Gói Nhân Linux ( Phần Mềm) cho KIT. Các gói nhân, quá
trình boot, cách nạp OS cho KIT.
I. Các gói nhân của hệ điều hành LINUX:
* Các 3 loại kernel (nhân) khác nhau:
Về bản chất, có nhiều cách để xây dựng cấu trúc và biên dịch 1 bộ kernel nhất
định từ đầu. Nhìn chung, với hầu hết các kernel hiện nay, chúng ta có thể chia ra
làm 3 loại: Monolithic, Microkernel, và Hybrid. Linux sử dụng kernel
Monolithic trong khi OS X (XNU) và Windows 7 sử dụng kernel Hybrid.
1. Microkernel:
Microkernel có đầy đủ các tính năng cần thiết để quản lý bộ vi xử lý, bộ nhớ
và IPC. Có rất nhiều thứ khác trong máy tính có thể được nhìn thấy, tiếp xúc và
quản lý trong chế độ người dùng. Microkernel có tính linh hoạt khá cao, vì vậy
bạn không phải lo lắng khi thay đổi 1 thiết bị nào đó, ví dụ như card màn hình, ổ
cứng lưu trữ hoặc thậm chí là cả hệ điều hành. Microkernel với những thông
số liên quan footprint rất nhỏ, tương tự với bộ nhớ và dung lượng lưu trữ, chúng
còn có tính bảo mật khá cao vì chỉ định rõ ràng những tiến trình nào hoạt động
trong chế độ user mode, mà không được cấp quyền như trong chế độ giám sát -
supervisor mode.
*Ưu điểm:
- Tính linh hoạt cao
- Bảo mật
- Sử dụng ít footprint cài đặt và lưu trữ

* Nhược điểm:
- Phần cứng đôi khi “khó hiểu” hơn thông qua hệ thống driver
- Phần cứng hoạt động dưới mức hiệu suất thông thường vì các trình điều
khiển ở trong chế độ user mode.
- Các tiến trình phải chờ đợi để được nhận thông tin
NHÓM 29
Trang 14
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
- Các tiến trình không thể truy cập tới những ứng dụng khác mà không phải
chờ đợi.
2. Monolithic Kernel:
Với Monolithic thì khác, chúng có chức năng bao quát rộng hơn so với
microkernel, không chỉ tham gia quản lý bộ vi xử lý, bộ nhớ, IRC, chúng còn
can thiệp vào trình điều khiển driver, tính năng điều phối file hệ thống, các giao
tiếp qua lại giữa server Monolithic tốt hơn khi truy cập tới phần cứng và đa tác
vụ, bởi vì nếu 1 chương trình muốn thu thập thông tin từ bộ nhớ và các tiến trình
khác, chúng cần có quyền truy cập trực tiếp và không phải chờ đợi các tác vụ
khác kết thúc. Nhưng đồng thời, chúng cũng là nguyên nhân gây ra sự bất ổn vì
nhiều chương trình chạy trong chế độ supervisor mode hơn, chỉ cần 1 sự cố nhỏ
cũng khiến cho cả hệ thống mất ổn định.
* Ưu điểm:
- Truy cập trực tiếp đến các phần cứng
- Dễ dàng xử lý các tín hiệu và liên lạc giữa nhiều thành phần
với nhau
- Nếu được hỗ trợ đầy đủ, hệ thống phần cứng sẽ không cần cài
đặt thêm driver cũng như phần mềm khác
- Quá trình xử lý và tương tác nhanh hơn vì không cần phải chờ
đợi
* Nhược điểm:
- Tiêu tốn nhiều footprint cài đặt và lưu trữ

- Tính bảo mật kém hơn vì tất cả đều hoạt động trong chế độ
giám sát - supervisor mode
3. Hybrid Kernel:
Khác với 2 loại kernel trên, Hybrid có khả năng chọn lựa và quyết định những
ứng dụng nào được phép chạy trong chế độ user hoặc supervisor. Thông thường,
những thứ như driver và file hệ thống I/O sẽ hoạt động trong chế độ user mode
trong khi IPC và các gói tín hiệu từ server được giữ lại trong chế độ supervisor.
NHÓM 29
Trang 15
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
Tính năng này thực sự rất có ích vì chúng đảm bảo tính hiệu quả của hệ thống,
phân phối và điều chỉnh công việc phù hợp, dễ quản lý.
* Ưu điểm:
- Các nhà phát triển có thể chọn và phân loại những ứng dụng
nào sẽ chạy trong chế độ thích hợp.
- Sử dụng ít footprint hơn so với monolithic kernel
- Có tính linh hoạt và cơ động cao nhất
* Nhược điểm:
- Có thể bị bỏ lại trong quá trình gây treo hệ thống tương tự như
với microkernel
- Các trình điều khiển thiết bị phải được quản lý bởi người dùng
II. QUÁ TRÌNH BOOT CỦA HỆ ĐIỀU HÀNH LINUX
Để thực hiện Boot hệ thống trước tiên ta phải thực hiện các bước như sau:
1. Kết nối dây cable (Lan) RJ45.
2. Gắn day cable RS232 tử board nhúng vào máy tính sau đó.
3. Chạy file chuong trình PUTTY.exe
Sau khi chùng ta thực hiện xong bước thứ ba thì màn hình giao diện putty sẽ
hiển thị lên và thực hiện trình tự theo các bước như sau:
NHÓM 29
Trang 16

BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
* Quá trình boot hệ thống bắt đầu:
Bước 8:
- Bật nút Power On của KIT và ấn nút Reset để khởi động hệ thống.
putty console sẽ hiển thị lên màn hình.
- Board xuất xưởng được thiết lập autoboot với Angstrom JFFS2 rootfs.
- Kernel (uImage) được chứa trong partition 0 và rootfs được chứa trong
partition 1 của NAND Flash.
* Nạp kernel uimage vào partion 0 của NAND flash ta làm theo các bước
sau:
1. Chạy “tftpd32.exe” trên winXP, với thư mục share có chứa uImage.
2. Trước tiên ta xóa vùng partition 0 và download uImage từ máy tính
vào SDRAM
3. Chép uImage từ SDRAM vào NAND Flash.
* uImage có thể load từ NAND vào SDRAM thông qua lệnh sau:
NHÓM 29
Trang 17
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
* Nạp JFFS2 rootfs vào partion 1 của NAND flash ta làm theo các
bước sau:
1. Chạy “tftpd32.exe” trên winXP, với thư mục share có chứa JFFS2
rootfs
2. Trước tiên ta xóa vùng partition 1 và download JFFS2 rootfs từ
máy tính vào SDRAM.
3. Chép JFFS2 rootfs từ SDRAM vào NAND Flash.
* BIÊN DỊCH KERNEL:
+ Chuẩn bị toolchain (cross compiler):
+ Ta thực hiện add đường dẫn thư mục bin của cross compiler vào thư
mục PATH.
Vd: đường dẫn của thư mục cross compiler là

“/home/km9260-project/tool/ arm-2007q3/bin”
+ Sử dụng mkimage:
mkimage là chương trình dùng để tạo ra uImage, việc cài đặt mkimage có
thể thực hiện thao các bước sau:
+ Giải nén và patch source kernel:
Trong thư mục root tạo thư mục km9260-project và chép source linux-
2.6.27.tar.bz2 và patch file “linux-2.6.27-km9260-11102009.diff” vào thư
mục này.
NHÓM 29
Trang 18
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
+ Tiến hành cấu hình và build kernel:
* Load kernel và boot Linux:
 Sau khi biên dịch kernel, ta có được file uImage.
 Để boot Linux, ta load uImage vào SDRAM.
 Thực hiện chép uImage vào SDRAM tại địa chỉ 0x20000000
và boot hệ thống:
QUÁ TRÌNH BOOT LOADER
TRONG HỆ THỐNG NHÚNG.
 Boot loader có vai trò quan trọng trong hệ thống nhúng. Boot
loader là trình tự thực thi các phần mềm của vi xử lý trong quá trình khởi
động của hệ thống.
 Tùy theo loại vi xử lý khác nhau mà ta có cơ chế, trình tự boot khác
nhau.
* Đây là sơ đồ quá trình Boot Loader
NHÓM 29
Trang 19
BÁO CÁO LẬP TRÌNH NHÚNG GVHD : ĐẬU TRỌNG HIỂN
Bước 1: Chương trình chạy với bộ dao động nội, hoặc với bộ dao động thạch
anh để thực hiện cấu hình main clock cho hệ thống.

Bước 2: Kiểm tra sự tồn tại của chương trình AT91BootStrap trong SPI serial
dataflash device (NPCS0) hay không.
 Nếu tồn tại, MPU thực hiện chép mã thực thi của AT91BootStrap
từ SPI serial dataflash device vào SRAM nội của MPU, sau đó thực thi
lệnh nhảy đến địa chỉ đầu tiên của SRAM để thực thi chương trình
AT91BootStrap
 Nếu không tồn tại chương trình boostrap trong SPI serial dataflash
device, MPU thực hiện bước B3 sau đây.
NHÓM 29

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×