Redboot được xây dựng như một ứng dụng đầu tiên của eCos. Các quy tắc sử dụng makefile để xây dựng RedBoot là một phần của gói CDL của ecos, vì vậy ta có thể xây dựng eCos từ các công cụ cấu hình, cũng như từ dòng lệnh sử dụng câu lệnh ecosconfig.
Xây dựng Redboot chỉ thực hiện một vài bước đơn giản: lựa chọn các nền tảng và các mẫu Redboot; xây dựng một tập tin cấu hình platform cụ thể, và cuối cùng là bắt đầu xây dựng.
Các tập tin cấu hình cụ thể cho platform phải đảm bảo thiết lập đúng để xây dựng redboot trên platform nhất định. Mỗi platform nên cung cấp ít hai trong số những tập tin cấu hình: redboot_RAM.ecm cho việc cấu hình redboot với bộ nhớ RAM và redboot_ROM.ecm hoặc redboot_ROMRAM.ecm cho việc cấu hình Redboot với ROM hoặc ROMRAM. Ngoài ra, có thể có thêm các tập tin cấu hình bổ sung theo yêu cầu đối với các platform cụ thể.
Kết quả của quá trình xây dựng Redboot là một số files trong thư mục install bin. File EFL redboot.elf là kết quả chủ yếu. Độc lập với platform CDL, nó cũng sinh ra một vài file về versions của Redboot với các định dạng khác, như redboot.bin (binary format, tốt khi ta update image chính của Redboot), và redboot.img(stripped ELF format, tốt khi ta đang download image RAM mode để thực thi, nó nhỏ hơn file .srec). Một vài platform có thể cung cấp thêm các định dạng file khác và cũng di chuyển một số file vào một địa chỉ cụ thể để chúng phù hợp hơn để download sử dụng một màn hình khởi động khác nhau hoặc các công cụ lập trình flash.
Xây dựng lại RedBoot sử dụng ecosconfig.
Để xây dựng lại Redboot sử dụng công cụ ecosconfig, tạo một thư mục tạm thời để xây dựng Redboot, đặt tên cho nó theo cấu hình mong muốn của Redboot, ở đây là RAM:
$mkdir /tmp/redboot_RAM
$cd /tmp/redboot_RAM
Tạo build tree thông qua việc chọn platform, ở đây ta sử dụng board Hitachi Solution Engine 7751 như một ví dụ:
Chú ý: Ta đang giả định rằng đã có biến môi trường ECOS_REPOSITORY chỉ đến địa chỉ của nguồn eCos/Redboot.
$ ecosconfig new se7751 redboot
U CYGPKG_HAL_SH_7750, new inferred value 0
U CYGPKG_HAL_SH_7751, new inferred value 1
U CYGHWR_HAL_SH_IRQ_USE_IRQLVL, new inferred value 1
U CYGSEM_HAL_USE_ROM_MONITOR, new inferred value 0
U CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM, new inferred value 0
U CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS, new inferred value 1
U CYGFUN_LIBC_STRING_BSD_FUNCS, new inferred value 0
U CYGPKG_NS_DNS_BUILD, new inferred value 0
Thay thế tên platform ("se7751") với tên platform mà ta sử dụng.Sau đấy,
Xây dựng lại RedBoot từ các công cụ cấu hình.
Không có nhận xét nào:
Đăng nhận xét