BootStrap và U-boot:

Một phần của tài liệu document (Trang 52 - 54)

PHẦN MỀM HỆ THỐNG NHÚNG 6.1 Cấu trúc phần mềm trong hệ thống nhúng:

6.1.1BootStrap và U-boot:

- BootStrap là một chương trình khởi động được nạp xuống trước tiên cho các vi điều khiển dòng ARM 9 của Atmel.

BootStrap U-boot

Kernel

- BootStrap là một module ứng dụng, nó được sử dụng để thực hiện các chức năng sau:

o Khởi tạo phần cứng như tần số xung clock, thiết lập các PIO (programmable Input Output).

o Thiết lập các ngoại vi như PIO, PCM, SDRAMC...

o Thực hiện các thuật toán truy xuất vật lý các ngoại vi như DataFlash, NANDFlash, Paralell Flash..

o Điều khiển các tập tin hệ thống như JFFS2, FAT..

o Thực thi các ứng dụng như ELF, Linux.

- BootStrapcó thể được đặt trong vùng bootLoader, cụ thể là được đặt trong vùng DataFlash.

BootStrapđược chép lên RAM nội bởi trìnhSAM-BA Boot.BootLoaderthực hiện khởi tạo vi xử lý (PLL, PIO, SDRAMC, SPI).

- BootStrap thực hiện load U-boot từ DataFlash lên SRAM và trỏ đến thực hiện chương trìnhU-Boot.

- U-boot (universal bootLoader) là một tập mã nguồn mở, hỗ trợ bootLoader cho nhiều kiến trúc nền khác nhau. U-boothỗ trợ các lệnh tương tác, các biến môi trường, các lệnh thực thi và boot hệ thống từ các thiết bị media bên ngoài. U-boothỗ trợ nhiều loại CPU và các họ CPU thông dụng hiện nay. U-boot hỗ trợ các boardphát triển trên nền các vi xử lý thông dụng hiện nay.

- U-bootthực hiện cấu hình các khối phần cứng trong một board và đặt chúng vào trạng thái hoạt động. Nó có thể load và thực thi hệ điều hành một cách tự động (auto-boot) hoặc ngược lại nó cho phép người dùng khởi động hệ điều hành thông qua các lệnh giao tiếp mà u-boothỗ trợ. Tập lệnh chuẩn của u-boot cung cấp khả năng cho phép người sử dụng thao tác trên bộ nhớ, mạng và nhiều thao tác khác khi hệ thống khởi động.

- Thông thường u-boot được đặt trong phân vùng đầu tiên của Flash, bắt đầu từ sector hay block nào được định nghĩa bởi vi xử lý. U-boot khởi tạo CPU và một vài phần cứng trên board, tạo một vài cấu trúc dữ liệu để cho kernel sử dụng và load nó lên phân vùng đầu tiên của bộ nhớ. - Khi quyền điều khiển được chuyển đến cho u-boot, nó sẽ khởi tạo các ngắt và các thiết bị

ngoại vi. Sau đó u-boot chờ nhập các lệnh từ người dùng. Nếu u-boot nhận được lệnh boot ảnh của kernel hoặc nếu nó được sử dụng để boot kernel trực tiếp thì u-boot sẽ giải nén kernel image, load kernellên bộ nhớ và chuyển điều khiển đến kernel. Kernel sẽ thực thi mà khơng có sự tương tác với u-boot.

- U-boot cung cấp các hàm chuẩn để hiệu chỉnh quá trình khởi động và khởi tạo kernel.

Thường thì nó cung cấp các thao tác dưới dạng các lệnh (command-line).

- U-boot có nhiều phiên bản, tuy nhiên từ phiên bản 1.3.4 trở đi thì mới hỗ trợ bộ xử lý AT91SAM9260 của Atmel.

Nắm rõ kiến trúc các thành phần trong u-boot giúp người phát triển hệ thống biên dịch và cấu hình u-bootcho tương thích với các phần cứng khác nhau.

Thư mục board xác định nhiều kiến trúc nền khác nhau của các hãng khác nhau như Philip, AMCC, Atmel, davici, Cirus Logic... thư mục board cũng bao gồm các hàm khởi tạo các board. Các hàm này có thể gọi từ thư việnlib_<arch>/board.c

Thư mục board / <boardname> xác định thông tin chi tiết cho hệ thống, thư mục này

chưa các tập tin khởi tạo cần thiết cho mỗi hệ thống bao gồm các tập tin như asm_init.S, congif.mk, flash.c

Thư mục common chứa tập tin định nghĩa các lệnh của uboot, các biến môi trường như cmd_boot.c, cmd_date.c, environment, env.c, main.c...

Thư mục CPUbao gồm các tập tin xác định các thông số, khởi tạo các ngắt, bộ nhớ đệm... cho CPU như cpu.c, cpu_init.c, interrupts.c, cache.s, start.s...

Thư mục diskchứa các tập tin phân vùng và thông tin thiết bị cho ỗ đĩa. Thư mục driver chứa các tập tin thiết bị như ethernet, usb, sirial...

Thư mục include bao gồm nhiều tập tin header như console.h, version.h, usb.h, pci.h.

Trong tập tin version.h định nghĩa phiên bản của u-boot #define u-boot_VERSION “xxx”. Include/congifschứa các cấu hình cho nhiều board.

Thư mục lib_generic các thư viện chung như bzlib.c vsprintf, string.c...

Thư mục net chứa các tập tinh Ethernet như eth.c, net.[ch], nfs.[ch], bootp.c [ch]. Thư mục fschứa các file hệ thống nhưfat, fdos, jffs2

Thư mục bao gồm các tập tin hỗ trợ chỉ đồng hồ thời gian thực rtc date.c, mpc8xx.c, etc. Thư mục tools các thư mục và các tập tin hỗ trợ biên dịch, gỡ rối như env, gdb, logos, scripts, mkimage.c

Thư mục post bao gồm các tập tin và thư mục như post.c codec.c, cache.c, memory.c, uart.c, etc.

Một phần của tài liệu document (Trang 52 - 54)