Báo cáo chuyên đề công nghệ mới bios và boot loader
BÁO CÁO CHUYÊN ĐỀ CÔNG NGHỆ MỚI GVHD : Thầy Phạm Văn Khoa Nhóm 5 : -Phạm Hữu Ái MSSV:09901014 -Nguyễn Thành Quang Đức MSSV:09901024 Đề tài : Bios và Boot Loader I. Tổng quan về boot loader Trong các máy tính cá nhân (PC), ngay khi bật nguồn,một chương trình phần mềm gọi là Bios ngay lập tức kiểm soát hoạt động xử lý. Bios được viết tắt từ Basic Input/Output Software,nghĩa là phần mềm nhập/xuất cơ bản. Bios được lưu trữ trong bộ nhớ Flash,tạo điều kiện cho việc nâng cấp cho chính nó.Hay nói cách khác, Bios là một tập hợp các chương trình phần mềm cấu hình hệ thống,mô tả kiến trúc phần cứng ở cấp độ thấp. Hầu hết chúng ta không nhận thức được phạm vi của Bios cũng như các chức năng của nó,nhưng nó lại là thành phần rất quan trọng của các máy tính PC. Nhiệm vụ chính của nó là để khởi tạo phần cứng,đặc biệt là hệ thống bộ nhớ,và tải hệ điều hành từ ổ cứng máy tính. Trong một hệ thống nhúng điển hình (không dựa trên nền tảng phần cứng máy tính tiêu chuẩn công nghiệp X86),một bộ nạp khởi động (boot loader) là một chương trình phần mềm thực hiện các chức năng tương tự như Bios. Tuy nhiên,có một số nhiệm vụ quan trọng hơn mà bộ nạp khởi động thực hiện sau khi mở nguồn,đó là : Khởi tạo các thành phần phần cứng quan trọng,chẳng hạn như bộ điều khiển SDRAM, bộ điều khiển I/O,bộ điều khiển đồ họa… Khởi tạo bộ nhớ hệ thống để chuẩn bị cho việc điều khiển của hệ điều hành. Cấp phát tài nguyên hệ thống như bộ nhớ,mạch ngắt để điều khiển thiết bị ngoại vi khi cần. Cung cấp cơ chế để định vị và tải lên file ảnh hệ điều hành Thực hiện hoạt động tải và đường điều khiển đến hệ điều hành,qua bất kỳ thông tin khởi động cần thiết nào,chẳng hạn như tốc độ xung nhịp của bộ nhớ,tốc độ cổng nối tiếp và các dữ liệu cấu hình phần cứng ở cấp thấp. Trên cơ sở các nhiệm vụ của bộ nạp khởi động đã được đơn giản hóa ở trên,chúng ra nhận thấy rằng,nếu như Bios cung cấp các thiết lập cấu hình mang tính cố định thì các bộ nạp khởi động của hệ thống nhúng lại mang tính tùy biến,nghĩa là tùy vào nền tảng (platform) của hệ thống nhúng mà chức năng của bộ nạp khởi động sẽ do chính người xây dựng hệ thống đó cung cấp. • Vai trò của một Boot loader: Ngay khi bật nguồn một board xử lý, nhiều yếu tố phần cứng phải được khởi tạo trước khi ngay cả những chương trình đơn giản nhất có thể chạy.Mỗi kiến trúc và một bộ vi xử lý có một tập hợp các hành động được xác định trước và cấu hình,trong đó bao gồm việc lấy một số mã khởi tạo từ một thiết bị lưu trữ trên board (thường là bộ nhớ Flash). Mã khởi tạo này là một phần của boot loader và chịu trách nhiệm “thổi hơi thở” cho bộ vi xử lý và các thành phần phần cứng liên quan. Hầu hết các bộ vi xử lý có một địa chỉ mặc định mà từ 1 đó các byte đầu tiên của mã được lấy khi vừa mới bật nguồn hoặc reset. Người thiết kế phần cứng cần phải dựa vào thông tin này để sắp xếp bố trí vị trí bộ nhớ Flash trên board và chọn phạm vi địa chỉ bộ nhớ đáp ứng yêu cầu. Với cách này,khi hệ thống vừa được cấp nguồn,mã được lấy từ một địa chỉ quen thuộc và có thể tiên đoán được, và phần mềm điều khiển được thiết lập. Boot loader cung cấp các mã khởi tạo này và chịu trách nhiệm khởi tạo board để các chương trình khác có thể chạy.Các mã khởi tạo này hầu như luôn luôn được viết bằng ngôn ngữ Assembly. Sau khi boot loader thực hiện khởi tạo nền tảng và bộ xử lý cơ bản thì nó đã thực hiện xong chức năng cơ bản của nó,ngoài ra boot loader còn có thêm một số tính năng nâng cao như khả năng xác nhận một ảnh hệ điều hành,khả năng tự nâng cấp cho nó hoặc cho ảnh hệ điều hành. Không giống như mô hình Bios PC truyền thống,khi hệ điều hành nắm quyền kiểm soát thì Boot loader đã bị ghi đè và không còn tồn tại nữa. • So sánh giữa máy tính và hệ thống nhúng: - Trong một hệ thống nhúng vai trò của Bootloader phức tạp hơn vì các hệ thống nhúng không có BIOS để thực hiện cấu hình hệ thống ban đầu. - Bộ nạp khởi động trong các máy X86 bao gồm 2 thành phần Bios Bộ nạp OS (nằm trong MBR-Master Boot Record của đĩa cứng ) Ví dụ : LILO và GRUB • Các loại Boot loader cho hệ thống nhúng : - U-Boot ( Universal Boot loader ) : bộ nạp khởi động cho PowerPC, ARM dựa trên hệ thống nhúng Linux - RedBoot : ( RedHat eCos Derived ),các máy di động,bộ nạp khởi động cho các hệ thống nhúng - Rrload : bộ nạp khởi động cho ARM trên hệ thống nhúng Linux. - FILO : bộ nạp khởi động tương thích X86 - CRL/OHH : bộ nạp khởi động Flash cho ARM dựa trên hệ thống nhúng Linux. - PPCBoot : bộ nạp khởi động cho PowerPC dựa trên hệ thống nhúng Linux. - Alios : hợp ngữ dựa trên bộ nạp Linux để khởi tạo các thành phần phần cứng cơ bản từ ROM hoặc RAM.Mục đích để loại bỏ thành phần Bios ra khỏi hệ thống nhúng. II. THIẾT KẾ BOOTLOADER CHO HỆ THỐNG NHÚNG 1. Những khái niệm về thiết kế bộ nạp khởi động: - Việc thiết kế bộ nạp khởi động tùy vào CPU, board. Các giai đoạn thiết kế Bootloader : • Giai đoạn 1 : - khởi tạo các thành phần phần cứng - Chuẩn bị không gian bộ nhớ để tải chương trình ở giai đoạn thứ 2 - Copy chương trình ở giai đoạn thứ 2 vào bộ nhớ - Thiết lập SP ( Stack-Pointer, con trỏ ngăn xếp ) - Nhảy đến điểm bắt đầu của chương trình thứ hai • Giai đoạn 2 : 2 - Khởi tạo các thành phần phần cứng cần thiết cho giai đoạn này - Kiểm tra bản đồ ô nhớ - Copy kernel và tập tin ảnh gốc hệ thống vào bộ nhớ - Thiết lập các thông số - Khởi động kernel 2. Các khối chức năng của Bootloader : - Khối chức năng chính ( main function module ) - Khối điều khiển các kênh I/O ( I/O channel driver module ) - Khối điều khiển các thiết bị nhớ,lưu trữ (memory device driver module ) Khối chức năng chính : có các nhiệm vụ :khởi tạo CPU và thiết lập xung nhịp, đánh dấu toàn bộ các ngắt, thiết lập con trỏ ngăn xếp, cho phép quản lý nguồn, tải ảnh Linux kernel vào bộ nhớ RAM hệ thống sau đó thực thi kernel, có khả năng ghi dữ liệu vào bộ nhớ flash để hỗ trợ tải các tính năng như tự tải Kernel về và nâng cấp. Khối điều khiển các kênh I/O : có nhiệm vụ cung cấp giao diện để gửi lệnh đến board đầu cuối hoặc để thông báo cho người dùng trạng thái của board đầu cuối, khởi tạo các cổng I/O ( ví dụ cổng nối tiếp hoặc Ethernet) Khối điều khiển thiết bị nhớ : có nhiệm vụ khởi tạo bộ nhớ,bao gồm các thiết bị nhớ,các thanh ghi. - Cài đặt : tất cả các phần mềm hệ thống và dữ liệu được lưu trữ trong các loại bộ nhớ không bay hơi như Flash, ROM. NAND Flash - Là công nghệ Flash mới, có nhiều cải tiến so với công nghệ NOR Flash cũ như cho phép kích thước mỗi Block nhỏ hơn, tốc độ đọc, ghi tốt hơn cũng như hiệu quả hơn trong việc sử dụng các mảng bộ nhớ. - NOR Flash kết nối tới Vi xử lí bằng các bus dữ liệu/địa chỉ song song. Ngược lại, NAND Flash được truy xuất nối tiếp. - Thiết kế một hệ thống nhúng ta có thể có nhiều tùy chọn trong việc phân vùng các bộ nhớ. Trong hệ thống, các file Binary thực thi có thể lưu vào Flash device. Khi boot lên file ảnh hệ thống trong Flash được đưa vào RAM. Đây là thiết kế tối ưu vì dữ liệu trên flash ít khi cần phải cập nhật. Bất kì thay đổi nhỏ nào đều nhỏ nếu so với kích thước bộ nhớ Ram, và sẽ dữ liệu này sẽ mất đi khi hệ thống khởi động lại 3 - - Hình 2.8 : Phân vùng Flash Memory Layout thường thấy - Bootloader thường nằm trên cùng, hoặc dưới cùng. Theo sau đó là Linux kernel image, rồi đến bộ nhớ Ram hệ thống- chứa Root file system. Thông thường, Linux kernel và Ram disk file system image được nén lại, và được boot loader giải nén trong quá trình khởi động. - Một phần nhỏ của Flash, hoặc loại bộ nhớ không bay hơi (Non volatile) có thể dành cho các dữ liệu tạm cần được lưu lại, như các dữ liệu cấu hình trong các Wireless access point hay Router. - Flash file system - Những giới hạn của Flash được han chế bằng Flash File System tương tự như với đĩa cứng. Một trong những ưu điểm với file system là tính năng Wear leveling nhằm phân phối đều số lần ghi/xóa dữ liệu trên mỗi block nhằm kéo dài tuổi thọ của bộ nhớ. Ngoài ra File system còn nhằm hạn chế sự mất mát dữ liệu khi gặp sự cố về nguồn điện. Một trong những File system được sử dung phổ biến ngày nay đối với Flash là JFFS2- Journaling Flash File System 2. - - /bin – Thư mục này chứa các file chương trình thực thi dạng nhị phân và các chương trình khởi động của hệ thống. (binary applications), - - /boot – các tập tin cấu hình cho quá trình khởi động hệ thống (boot configuration files). 3. Chế độ hoạt động của bộ nạp khởi động : Boot Loading mode : chế độ nạp khởi động,được thiết kế cho người dùng đầu cuối Downloading Mode : sử dụng khi tải các thành phần phần mềm vào hệ thống nhúng lần đầu tiên,được thiết kế dành cho các nhà phát triển. Trình tự khởi động: Một giai đoạn (single stage) hay nhiều giai đoạn ( multi-stage).Bộ nạp khởi động nhiều giai đoạn cung cấp nhiều chức năng phức tạp hơn và khả năng di động tốt hơn. 4 Bộ nạp khởi động lưu trữ trong bộ nhớ không bay hơi thường trải qua 2 giai đoạn sau : + Giai đoạn đầu tiên : khởi tạo các thành phần phần cứng,chuẩn bị không gian bộ nhớ để tải chương trình ở giai đoạn thứ 2,sau đó copy chương trình này vào bộ nhớ,thiết lập con trỏ SP sau đó nhảy đến điểm bắt đầu của chương trình ở giai đoạn thứ 2. + Giai đoạn thứ hai :khởi tạo các thành phần phần cứng cần thiết cho giai đoạn này,sau đó kiểm tra tổ chức bộ nhớ,copy kernel và ảnh của file root hệ thống vào trong bộ nhớ, tiến hành thiết lập các thông số và khởi động kernel. III. Tìm hiểu boot loader cho kit KM926X KM926x là board nhúng trên nền vi điều khiển ARM9. Board có kích thước nhỏ gọn và có tính năng mạnh, sử dụng dòng vi điều khiển AT91SAM9 của ATMEL cho phép hệ thống chạy với các hệ điều hành nhúng Linux, WinCE và µC/OS-II RTOS. Hoặc có thể chạy chương trình ứng dụng standalone như các hệ thống vi điều khiển thông thường. Các chức năng chính của board km9260: • Bộ xử lý ARM 9260EJ-S, 8Kbyte bộ nhớ đệm lệnh, 8Kbyte bộ nhớ đệm dữ liệu. • Bus giao tiếp bộ nhớ ngoài 32 bit hỗ trợ 4 bank SDRAM/LPSDR, static memory, CompactFlash, NAND Flash với EEC. • 4Kbyte bộ nhớ SRAM nội, 32 Kbyte bộ nhớ ROM nội để chứa bootstrap. • Ma trận bus AHB 6 lớp 32 bit với tốc độ 90Mhz. • 22 kênh DMA. • Boot từ NAND Flash, SDCard, DataFlash, Serial Data Flash. • 4 bộ ADC 10 bit.bộ USART, 2 UART. • 10/100 mbps ethernet. • Giao tiếp SPI…. 1. TỔ CHỨC PHẦN MỀM TRONG HỆ THỐNG NHÚNG KM926x 5 HÌNH 4.9 : Tổ chức phần mềm trong hệ thống nhúng KM9260. 1.1 Bootstrap 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 là một module ứng dụng, nó được sử dụng để thực hiện các chức năng sau: • Khởi tạo phần cứng như tần số xung clock, thiết lập các PIO (programmable Input Output). • Thiết lập các ngoại vi như PIO, PCM, SDRAM, • Thực hiện các thực toán truy xuất vật lý các ngoại vi như DataFlash, NANDFlash, Paralell Flash • Điều khiển các tập tin hệ thống như JFFS2, FAT • Thực thi các ứng dụng như ELF, Linux, BootStrap có 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ình SAM- BA Boot. BootLoader thự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ình U-Boot. 1.2 U-boot 6 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-boot hổ 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ị bên ngoài. U-boot hỗ trợ nhiều lọai CPU và các họ CPU thông dụng hiện nay. U-boot hỗ trợ các board phát triển trên nền các vi xử lý thông dụng hiện nay. U-boot thự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ể tải 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-boot hổ 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à tải 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 ảnh của kernel, tải kernel lê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 qúa 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). Cấu trúc thư mục của U-boot. HÌNH 4.10 : Cấu trúc thư mục U-boot 1.3 Kernel Nhân được ví như trái tim của hệ điều hành . Về bản chất nhân cũng là một chương trình phần mềm máy tính nhưng ở cấp độ hệ thống có vai trò điều khiển các thành phần của hệ thống máy tính , quản lý tài nguyên của 7 hệ thống , cung cấp một số dịch vụ và phần mềm cơ bản cho máy tính , cung cấp môi trường thực thi cho các ứng dụng khác nhau chạy trên hệ thống . Nhân chính là cầu nối giữa phần cứng vật lý của máy tính với và chương trình ứng dụng . Các dịch vụ của nhân được chạy trong chế độ đặc quyền của bộ xử lý . Trái lại, các chương trình ứng dụng được chạy trong chế độ người dùng hoàn toàn cách ly với hệ điều hành . Khi ứng dụng chạy trong chế độ người dùng gọi tới một dịch vụ hệ thống thông qua một giao diện , bộ xử lý chặn lại lời gọi và thi hành dịch vụ mức nhân hệ điều hành. Thông thường việc thi thực thi ở mức nhân đơn giản và nhanh hơn bởi vì nó không bị chuyển giữa chế độ đặc quyền và không đặc quyền . Nhân Linux là phần mềm tự do được phân phối theo Giấy phép sở hữu công cộng phần mềm GNU GPL ( General Public License ) . Nhân linux được nhiều hãng phân phối đóng gói và phát triển thành nhiều bản phân phối (Distribution) khác nhau như Ubuntu, Fedora, OpenSUSE, Redhat mỗi bản phân phối đều được đóng gói với các phần mềm tiện ích hướng tới nhiều thị trường khác nhau 1.4 File system Trong hệ điều hành Linux, những tập tin mà người sử dụng nhìn thấy được đều theo cấu trúc cây thư mục, với root nằm ở trên cùng. Từ điểm này các thư mục và tập tin mới mọc nhánh ra lan dần xuống phía dưới. Thư mục cao nhất, được ký hiệu bằng vạch /, được gọi là root directory (thư mục gốc). Với người sử dụng bình thường thì cây thư mục này là một dải những tập tin và thư mục nối liền nhau. Trên thực tế, nhiều thư mục trong cây thư mục này nằm ở nhiều vị trí vật lý khác nhau, trên các partition khác nhau, và thậm chí trên các ổ đĩa khác nhau. Khi một trong các partition ấy được kết nối với cấu trúc cây tại một thư mục gọi là mount point (điểm kết nối, điểm lắp ráp), thì mount point này và tất cả các thư mục cấp dưới được gọi là file system. Hệ điều hành Linux hình thành từ nhiều thư mục và tập tin khác nhau. Các thư mục có thể lập thành nhiều file system khác nhau, tùy vào cách cài đặt bạn đã chọn. Nhìn chung, đa phần hệ điều hành nằm ở hai file system: root file system (file system gốc) được ký hiệu là /, và một file system khác được kết nối theo /usr (đọc là user). Khi dùng lệnh cd / để chuyển về thư mục gốc và gọi hiển thị danh sách thư mục, bạn sẽ thấy nhiều thư muc. Những thư mục này tạo thành nội dung của root file system, đồng thời cung cấp mount point cho các file system khác. Các thư mục được liệt kê chi tiết tại chương 2. 8 Hình 4.11 : Cấu trúc file system 2. Quá trình boot trên Board KM926x Khi cấp nguồn, AT926x chạy chương trình boot bên trong ROM (được xây dựng sẵn trong quá trình sản xuất chíp). Hình sau thể hiện lưu đồ ROM boot của AT91SAM926x: 9 Trình tự boot của MPU AT91SAM926x 1 [...]... U -Boot> setenv ipaddr 192.168.1.35 U -Boot> setenv serverip 192.168.1.34 Chú ý: Số serverip này phải trùng với ip của máy PC chứa file cần download U -Boot> setenv ethaddr 00:11:22:33:44:55 U -Boot> setenv netmask 255.255.255.0 Lưu lại bằng lệnh U -Boot> save Mục đích: để bootup tự động load kernel và rootfs 4.6 XÂY DỰNG VÀ PHÁT TRIỂN HỆ THỐNG 4.6.1 Bootstrap Bootstrap do nhà sản xuất hổ trợ, download bootstrap.bin... biến môi trường cho U -boot lần đầu sử dụng Sử dụng lệnh printenv để xem tất cả các biến môi trường đã được thiết lập trong U -boot Các lệnh được trình bày với định dạng bằng font in đậm, màu đỏ để dễ phân biệt U -Boot> printenv Thiết lập biến môi trường cho Uboot trong lần đầu sử dụng U -Boot> setenv bootcmd ‘nand read 0x20000000 0x20000 0x200000;bootm 0x20000000’ U -Boot> setenv bootargs root=/dev/mtdblock5... (SPI NPCS1) vào SRAM, thực hiện lệnh nhảy và thực thi chương trình AT91BootStrap (2) KM926x thực hiện khởi động PLL cho system clock, khởi động SDRAM controller, load u -boot. bin từ AT45DB041D-SU tại offset 0x8400 vào địa chỉ 0x21F00000 của SDRAM Sau đó thực hiện lệnh nhảy vào vùng SDRAM để chạy chương trình U -Boot (3) U -Boot load kernel Image từ nhiều nguồn khác nhau (TFTP, NAND FLASH ) chép vào địa chỉ... USB vào máy tính chương trình sẽ nhảy sang SAMBA boot Từ lưu đồ trên, ta có thể lưu trữ AT91BootStrap.bin theo 3 cách: SPI serial dataflash (NPCS0 hay NPCS1) hoặc lưu trữ trên NAND Flash KM926x sử dụng SPI serial dataflash (NPCS1) và NAND FLASH Trình tự boot Linux của KM926x Quá trình boot kernel Linux trên KM926x được thực thi qua 3 tầng,như hình sau : (1) KM926x thực thi ROM boot, load AT91AT91BootStrap.bin... của Bootstrap Nhấn nút Excute SW sẽ browse tới bootstrap.bin chọn và nhấn nút open thì bootstrap code sẽ tự động nạp vào dataflash HÌNH 4.14 : Nạp bootstrap Nạp U -Boot Tại script chọn Enable NandFlash Tại Address chọn 0x20000 địa chỉ offset của U -Boot trên NandFlash Tại Send file name : chọn đường dẫn tới U -boot. bin HÌNH 4.15 : Nạp U -boot Nạp kernel Tại script chọn: Enable NandFlash Tại Address chọn... 0x20000000 trên SDRAM, sau đó thực hiện lệnh boot hệ điều hành Linux AT91Bootstrap, các biến môi trường (U -Boot s Environment Variables), U -Boot được lưu trữ trong serial dataflash Các phân vùng chứa các bootloader được thể hiện bởi bảng sau: BẢNG 4.2 : Phân vùng memory map của NAND Flash THAM KHẢO CÀI ĐẶT CHƯƠNG TRÌNH CHO HỆ THỐNG Hướng dẫn Cài đặt SAMBA Vào thư mục DVD\SW\SAMBA trên đĩa chọn Install... nhà sản xuất hổ trợ, download bootstrap.bin tại trang của atmel.com 4.6.2 U -boot Uboot 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ợ board AT91SAM9260,ở đây ta doawload u -boot phiên bản 2009 Sau khi download u -boot về, chép nó vào một thư mục nào đó trong máy tính cài hệ điều hành linux Việc chép vào máy tính linux có thể được thực hiện thông qua nhiều cách, ví dụ bạn có thể... dịch uboot cho hệ thống • Make CROSS_COMPILE=arm-none-linux-gnueabi- distclean: Xóa hết các cấu hình biên dịch trước đó • Make at91sam9260ek_nandflash_config: Khai báo biên dịch uboot cho hệ thống board at91sam9260ek • Make CROSS_COMPPILE= arm-none-linux-gnueabiNếu quá trình biên dịch thành công trong thư mục uboot-2009 sẽ tồn tại file u -boot. bin Hình 4.18: Máy linux sau khi biên dịch xong u -boot 4.7... vào board AT91SAM9 Nếu nhận thiết bị tốt sẽ hiện driver như sau Hình 4.12 : Máy windows kết nối KM9260 qua Samba 6 Khởi động chương trình SAMBA trên máy vi tính và thực hiện các bước sau: Bước 1: Chọn tên board và kiểu kết nối ấn nút Connect Hình 4.13 : Giao diện chọn kết nối Samba Tại scripts chọn :Send Boot File: Tại Address chọn:0x0 địa chỉ offset của Bootstrap Nhấn nút Excute SW sẽ browse tới bootstrap.bin... C:\Program Files\ • Quá trình cài đặt SAMBA thành công Nạp Bootloader vào board bằng SAM-BA Gồm các bước sau: 1 Mở jumper S7 và S8 sau đó gắn cáp nguồn cho board (USB-B hoặc 5VDC) 2 Tháo Jumper S5 trên board AT91SAM9 (gần IC AT45DB041D-SU) 3 Đóng S8 cấp nguồn cho board bằng USB-B hoặc S7 nếu cấp nguồn 5VDC ngoài 4 Gắn cable USB-B kết nối board AT91SAM9 và máy vi tính (nếu dùng nguồn 5VDC) Nếu kết nối . BÁO CÁO CHUYÊN ĐỀ CÔNG NGHỆ MỚI GVHD : Thầy Phạm Văn Khoa Nhóm 5 : -Phạm Hữu Ái MSSV:09901014 -Nguyễn Thành Quang Đức MSSV:09901024 Đề tài : Bios và Boot Loader I. Tổng quan về boot loader Trong. SPI). BootStrap thực hiện load U -boot từ DataFlash lên SRAM và trỏ đến thực hiện chương trình U -Boot. 1.2 U -boot 6 U -boot (universal bootLoader) là một tập mã nguồn mở, hổ trợ bootLoader cho. dụng như ELF, Linux, BootStrap có 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ình SAM- BA Boot. BootLoader thực hiện khởi