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.2 Biên dịch lại u-boot:
Sau khi thiết kế một hệ thống nhúng mới, quá trình biên dịch lại u-bootđể thực thi trên hệ thống mới là hết sức cần thiết. Quá trình này hay con gọi bằng một thuật ngữ porting. Porting
u-boot là q trình tạo ra một u-boot với các thơng số phù hợp cho bộ xử lý và các thiết bị ngoại
vi. Một cách chung nhất để thực hiện vấn đề này là tạo ra từ các u-boot có sẵn từ các board có cấu hình gần giống với hệ thống mà bạn đang thiết kế.
Trước hết tạo một số tập tin và thư mục phục vụ cho việc cấu hình hệ thống: u-boot/board/<boardname>
u-boot/include/configs/<boardname>.h u-boot/Makefile
Chép các tập tin và thay đổi makefile và kiến trúc nền cho board như include, cpu, lib_arch, và board.
Trong thư mục include, tập tin config/<boardname>.h sẽ bao gồm các tập tin cấu hình phần cứng cho hệ thống như ánh xạ bộ nhớ và các ngoại vi. Cấu hình bộ xử lý, cấu hình bộ nhớ khởi động, cấu hình Nor hay Nand flash, cấu hình bộ nhớ SDRAM, các giao tiếp nối tiếp, ethernet và network...tập tin <core>.hnhư arm926ejs.h bao gồm các định nghĩa cần thiết cho bộ xử lý như địa chỉ các thanh ghi...
Trong thư mục cpu bao gồm các tập tin như cpu.c chưa các khai báo cho bộ xử lý, các hoạt động đọc và ghi IO, Reset CPU, cho phép hay không cho phép hoạt động của bộ nhớ đệm lệnh và bộ nhớ đệm dữ liệu, khởi tạo ngăn xếp cho các ngắt. Thư mục interrupt.c bao gồm các hàm phục vụ cho ngắt và timer, như cho phép ngắt hay không cho phép ngắt, các hàm liên quan
đến bộ định thời. Tập tin start.S là chương trình khởi động cho lõi của bộ xử lý. Tập tin < boardname >/flash.c chứa các hàm liên quan đến bộ nhớ flash như khởi tạo flash, các hàm reset, xóa, đọc và ghi bộ nhớ flash.
Sau khi tạo ra một tập mã nguồn của u-boot, bước cuối cùng là biên dịch u-boottạo ra tập tin thực thi u-boot.bin.
Tài liệu sẽ trình bày các bước biên dịch u-boot phiên bản 1.3.4 cho hệ thống nhúng sử dụng vi điều khiển ARM91SAM9260của Atmel.
Trước hết download mã nguồn u-boot dưới dạng tập tin nén về từ một số trang web như http://www.denx.de/wiki/U-Boot/SourceCode. bạn được file u-boot-1.3.4.tar.bz2
Chép vào thư mục trên máy Linux. Ví dụ /sontruong. Chúng ta có thể download mã nguồn trực tiếp trên một máy Linux kết nối với mạng internet, thực hiện các thao tác trên một máy tính chạy hệ điều hành Linux. Tuy nhiên trong thực tế thì nhiều nhà phát triển phần mềm lại dùng máy tính với hệ điều hành Windows XP. Vista. Điều này hoàn toàn thích hợp vì sự thơng thạo cũng như quen thao tác trên hệ điều hành Windows. Linux chỉ có nhiệm vụ biên dịch mã nguồn mà thơi. Chính vì thế mà người ta thường kết nối một máy Linux với nhiều máy Windows để cùng lúc nhiều người có thể phát triển hệ thống nhúng, nhiều người có thể truy cập và máy Linux tại một thời điểm do Linux là một hệ điều hành đa nhiệm, đa người dùng. Các máy tính trên Windows có thể giao tiếp và truy xuất vào máy Linux thông qua một số phần mềm hổ trợ như
SSH client..
Trên máy tính sử dụng hệ điều hành windows, việc chép một tập tin từ giữa 2 máy tính được thực hiện một cách đơn giản thông qua việc kéo thả các tập tin, thư mục.
Sau khi cài đặt SSH secure File Transfer, thực hiện kết nối đến máy Linux thông qua tên
Cửa sổ bên trái là các thư mục và tập tin trên máy Windows, bên phải là các tập tin và thư mục trên máy Linux
Giải nén gói mã nguồn u-bootbằng dịng lệnh:Tar –xjvf u-boot-1.3.4.tar.bz2
Biên dịch uboot cho ARM không sử dụng trình biên dịch gcc có sẵn trên máy tính cài linux. Trước hết bạn cần cài gói phần mềm biên dịch arm-linux-gcc. Để cài đặt gói phần mềm biên dịch, download gói phần mềm arm-linux-gcc-3.4.3.tar.bz2về và giải nén vào thư mục gốc của máy Linux.
Gói phần mềm biên dịch bạn có thể tải về từ trên mạng.
Trước khi biên dịch, cần thiết lập biến môi trường về đường dẫn cho trình biên dịch, ví dụ như sau:
PATH=/usr/local/arm/3.4/bin:$PATH
Trong đó thư mục PATH=/usr/local/arm/3.4/binchứa các trình biên dịch như arm-linux-
gcc…
Biên dịch uboot cho hệ thống:
Make clean:xóa hết các cấu hình biên dịch trước đó.
Make at91sam9260ek_config: khai báo biên dịch uboot cho hệ thống board at91sam9260ek.
Make all
Nếu quá trình biên dịch thành cơng trong thư mục u-boot-1.3.4 sẽ tồn tại file u-boot.bin