SlideShare una empresa de Scribd logo
1 de 32
“Nghịch”U-boot


      HND
  Tháng 9, 2012
Phần 1

LÝ DO PHẢI NGHỊCH
Build U-boot: vài thắc mắc
• Configure board:
  – #make CROSS_COMPILE=arm-none-eabi-
    da850evm_config.
  – #make CROSS_COMPILE=arm-none-eabi-
• Cái gì thực sự chạy đằng sau các lệnh này?
  – File nào sẽ được khi gọi khi các lệnh trên được
    thực thi?
  – Liệu U-boot lấy từ trên mạng về, có chạy với
    board của mình hay không?
Tại sao “phá” U-boot(1)
• Vai trò quen thuộc:
  – Sử dụng U-boot như là bootloader: boot từ
    flash(nor,nand,MMC), hay boot từ cách kênh giao
    tiếp như: ethernet, uart.
  – Sử dụng U-boot để gọi linux kernel: truyền
    arguments cho kernel.
Tại sao “phá” U-boot(2)
• Vai trò “phá”
  – Dùng U-boot để học nhúng(embedded system).
  – Dùng U-boot để phát triển ứng dụng đơn(stand-
    alone application).
  – Dùng U-boot để thử nghiệm driver: GPIO,uart,spi,
    i2c, ethernet, flashs…
Ai nên “phá” U-boot(1)
• Các “tay mơ”( newbie) chưa biết gì U-boot
  nên “phá”.
• Chưa biết về nhúng.

• Các chuyên gia làm board(hardware expert)
  nên “phá”.
Ai nên “phá” U-boot(2)
• Cho Newbie:
  – Làm quen với cách làm việc của open source: cài
    đặt cross-compiler, Makefile, C source code.
  – Sau đó là làm quen với CPU: starup code, system
    configuration.
  – Làm quen với cách viết code trên C.
Ai nên “phá” U-boot(3)
• Chuyên gia sản xuất development board
  – Tạo u-boot phù hợp với board của mình( chẳng lẽ
    cứ xài u-boot của người khác).
  – Cung cấp nhanh ứng dụng để test hardware.
Phần 2

CHUẨN BỊ “NGHỊCH”
Chuẩn bị môi trường “nghịch”(1)
• Môi trường miễn phí:
  – 1 máy tính “dỏm”, có cài Ubuntu(12.04 or higher).
  – Internet: nhớ có tunnel proxy để vượt tường lửa ->
    truy cập facebook(giải thích sau).
Chuẩn bị môi trường “nghịch”(2)
• Trình biên dịch:
   – Sử dụng Code Sourcery:
      • Có phiên bản miễn phí:
      • Có phiên bản commercial(phòng khi dự án thành công,có tiền
        chuyển từ miễn phí sang).
   – Lưu ý khi download Code Sourcery:
      • Download phiên bản dành cho loại CPU nào(arm,intel,MIPS,…)
      • Môi trường để cài: Linux(Ubuntu), hay Windows.
      • Download the EABI Release: dành cho build U-boot,linux
        kernel( arm-none-eabi-)
      • Download the GNU/Linux Release: dành cho build ứng dụng để
        chạy trên linux(arm-none-linux-gnueabi-gcc- ),chưa cần thiết cho
        build U-boot,kernel linux.
Chuẩn bị môi trường “nghịch”(3)
• Cài đặt cross-compiler:
  – Chạy cài đặt Code Sourcery trên Ubuntu( chọn
    thiết lập mặc định cho chắc). Nếu Ubuntu không
    cho chạy(do thiếu quyền) thì mở Terminal, và thiết
    lập:
     • #chmod +x “file cài đặt code sourcery”
  – Test cross-compiler: mở Terminal, chạy dòng lệnh
    sau:
     • #arm-none-eabi-gcc -v
U-boot source code
• Download phiên bản U-boot mới nhất từ
  đây:http://ftp.denx.de/pub/u-boot/
• Hiện tại( Tháng 9, 2012) phiên bản an toàn
  nhất là: 2012_04 ( tuy nhiên có vấn đề với đọc
  Nand flash của TI).
• Giải nén u-boot:
  – #tar zvf u-boot-2012.04.tar.bz2
Phần 3:

B ẮT ĐẦU “NGHỊCH”
Môi trường phần cứng(1)
• SBC8018.
  – Sử dụng chip AM1808( tương đương L138,nhưng
    không có khối DSP).
  – Các tham số hardware cần lưu ý:
    • DDR: có dung lượng 128MBytes, bắt đầu từ địa chỉ:
      0xc0000000
    • UART:
    • NAND flash:
Giải mã U-boot – Configuration(1)
• Trước khi build u-boot,ta phải config source
  code bằng lệnh:
  – #make CROSS_COMPILE=arm-none-eabi-
    da850evm_config
• Vậy lệnh này ở đâu ra?
• Kiểm tra file board.cfg sẽ có 1 trường dữ liệu:
da850evm arm arm926ejs da8xxevm davinci
  davinci
  da850evm:MAC_ADDR_IN_SPIFLASH
Giải mã U-boot – Configuration(2)
Giá trị          Ý Nghĩa
Target           da850evm: tên của board. Do đó khi
                 config board ta phải chạy lệnh: #make
                 CROSS_COMPILE=arm-none-eabi-
                 da850evm_config
ARCH             arm
CPU              arm926ejs
Board name       da8xxevm
Vendor           davinci
Soc              davinci
Options          da850evm:MAC_ADDR_IN_SPIFLASH
Giải mã U-boot - CPU
• Từ bảng cấu hình, ta sẽ biết ngay đoạn mã
  quan trọng nhất: startup code cho CPU của
  board sẽ nằm ở:
  – /arch/arch’value/cpu/cpu’s value/soc :
    arch/arm/cpu/arm926ejs/davinci
Giải mã U-boot – Board
• Code dành để cấu hình board(sau khi start up) sẽ nằm
  ở:
   – /board/vendor/board name: /board/davinci/da8xxevm
• Vấn đề xuất hiện: trong thư mục
  /board/davinci/da8xxevm có rất nhiều file .c cho từng
  loại board khác( da830 …) vậy căn cứ vào đâu để biên
  dịch đúng file da850evm.c: kiểm tra Makefile ta thấy:
   – COBJS-$(CONFIG_MACH_DAVINCI_DA850_EVM)
      += da850evm.o
   – Điều đó chứng tỏ
     CONFIG_MACH_DAVINCI_DA850_EVM đã được
     “define” đâu đó.
Giải mã U-boot – “Đầu bự”
• U-boot giấu file config cho từng board ở nơi
  khá bí hiểm:
  – includeconfigs
• Toàn bộ các file định nghĩa cho các board phải
  nằm ở đây dưới cái tên: “board_name”.h .
  Trong trường hợp cụ thể ở đây là: da850evm.h
• Mở ra đúng phóc là có
  – #define
    CONFIG_MACH_DAVINCI_DA850_EVM
Giải mã U-boot – Xong
• Tới đây về cơ bản ta đã biết đường đi lối lại của U-boot
  khi nó configure, và biên dịch cho một board mới.
• Để cho rõ, ta nên làm một bài tập nhỏ sau: tạo “code
  base” trên u-boot hỗ trợ custom defined board như sau:
  CPU: am1808, board name: bullet, thiết kế giống như
  da850evm. Yêu cầu: các lệnh sau biên dịch thành công:
   – #make CROSS_COMPILE=arm-none-eabi-
     bullet_config
   – #make CROSS_COMPILE=arm-none-eabi-
• Có thể làm cho atmel, samsung hay freescale arm9
  đang có trên thị trường tùy ý.
Giải mã U-boot – Chữ nhiều quá
   thêm cái hình cho dễ hiểu
Giải mã U-boot: Đã thật sự xong chưa?
• Đã thật sự xong chưa? Liệu biên dịch thành
  công thì nạp xuống board có ra gì không?
• Sự cần thiết của driver.
• Các driver cần lưu ý:
  – UART.
  – Ethernet.
  – NAND flash.
Giải mã U-boot: Driver
• Điều chắc chắn: nếu board của bạn “mông má”
  từ 1 board đã chạy rồi(lưu ý phần UART phải
  giống nhé), quá trình tạo code giống như đã
  trình bày ở trên, thì console chắc cú là xuất ra
  dòng: #u-boot>
• Vậy phải làm gì tiếp theo? Driver tiếp là cái
  chắc vì:
  – Ngoại vi chắc chắn là khác với board gốc.
  – Chân cẳng cũng khác.
Giải mã U-boot: Thực thi U-boot
• U-boot được chạy như thế nào?
  – Tất cả CPU sẽ có phần bootstrap, đoạn code nhỏ này
    khởi tạo PLL, SRAM, SDRAM… Bootstrap này có
    sẵn hay có thể nạp vào SRAM của CPU bằng JTAG.
  – Nếu boot từ flash(nor, nand, spi), bootstrap sẽ truy
    cập( driver đọc flash tích hợp sẵn trong bootstrap) và
    đọc file(trong trường hợp này là u-boot) và để lên
    SDRAM.
  – Sau đó nhảy đến SDRAM tại địa chỉ vừa load để thực
    thi file.
  – Vì bootstrap chạy trên SRAM, nên nó khá nhỏ nên
    thường không có serial, ethernet …
Giải mã U-boot: Driver
• Vị trí source driver thường dùng:
  – /driver/serial: dành cho serial
  – /driver/mtd: memory technology device, nor nand
    và các loại flash vào đây.
  – /driver/gpio
  – /driver/net: lưu ý là các driver cho PHY device
    thường lại được đặt khá lung tung
     • /driver/net/phy.
     • Đôi khi nằm cùng vị trí với CPU,hoặc board( đề cập
       slide 17/18).
Giải mã U-boot: Driver UART
• Nhớ lại file “đầu bự” da850evm.h ở slide 19
  – CONFIG_SYS_NS16550
  – CONFIG_SYS_NS16550_SERIAL
• Tham chiếu vào Makefile ở /drivers/serial ta sẽ
  biết những file nào sẽ biên dịch để sử dụng là
  driver cho board.
Giải mã U-boot: Driver ethernet(1)
• U-boot chia ethernet làm 2 phần:
  – /net : có thể nói đây là lớp TCP/IP , phần này chắc
    chắn đúng, và ít khi cần port lại.
  – /drivers/net và /drivers/net/phy: tương ứng cho lớp
    MAC và PHY, cần port mỗi khi làm cho board
    mới.
  – Đầu mối kết hợp giữa 2 phần trên được thực hiện
    trong phần khởi tạo board, với sbc8018 thì trong
    hàm davinci_emac_initialize gọi bởi cpu_eth_init
Giải mã U-boot: Driver ethernet(2)
• Việc cần làm khi port:
   – Driver cho MAC quan trọng hơn PHY ( PHY gần như
     không cần, chỉ cần theo đúng generic PHY).
   – Nếu liên kết giữa MAC và PHY theo truyền thống( MII
     hay RMII).
      • MAC phát hiện,điều khiển PHY sử dụng MDC.
      • Dữ liệu trao đổi giữa MAC và PHY qua các đường IO độc lập với
        MDC -> MAC có thể không phát hiện PHY nhưng vẫn giao tiếp dữ
        liệu được.
   – Các loại khác: usb, com … : chưa biết.
   – Với sbc8018: căn cứ và Makefile trong /drivers/net để biết
     driver MAC nào được sử dụng:
      • COBJS-$(CONFIG_DRIVER_TI_EMAC) += davinci_emac.o
Giải mã U-boot: Driver NAND
               flash(1)
• Define: CONFIG_USE_NAND nếu sử dụng
  NAND.
• Makefile trong /drivers/mtd/nand cho ta biết file
  driver của NAND:
   – COBJS-$(CONFIG_NAND_DAVINCI) +=
     davinci_nand.o
• Cung cấp các tham số để driver cấu hình:
   – #define CONFIG_SYS_NAND_BASE
      DAVINCI_ASYNC_EMIF_DATA_CE3_BASE
   – #define CONFIG_SYS_NAND_PAGE_2K
   – #define CONFIG_SYS_NAND_CS        3
Giải mã U-boot: Driver NAND
               flash(2)
• Flash rất quan trọng:
  – Nơi chứa biến môi trường.
  – Nới chứa bản thân u-boot, đồng thời là các app được
    gọi bởi u-boot( user app hay linux kernel , rootfs).
• Cấu hình environment:
  – CONFIG_ENV_IS_IN_NAND : biến môi trường
    trong nand flash.
  – CONFIG_ENV_OFFSET: có thể ở đầu flash(block 0
    hay ở đoạn cuối flash).
  – CONFIG_ENV_SIZE: kích cỡ.
Giải mã U-boot: Hết
• Các điểm lưu ý:
  – Khai báo Board : boards.cfg
  – Board config: /include/configs/”boardname.h”
  – CPU/Board initialize: /arch/arch’value/cpu/cpu’s
    và /board/vendor/”boardname”
  – Makefile ở trong các thư mục driver.
     • /drivers/serial
     • /drivers/mtd/nand, /drivers/mtd/nor
     • /drivers/net, /drivers/net/phy

Más contenido relacionado

La actualidad más candente

Scada deep inside: protocols and security mechanisms
Scada deep inside: protocols and security mechanismsScada deep inside: protocols and security mechanisms
Scada deep inside: protocols and security mechanismsAleksandr Timorin
 
Lab 1 xay dung ftp server
Lab 1 xay dung ftp serverLab 1 xay dung ftp server
Lab 1 xay dung ftp serverhoangpuon
 
How to Implement Modbus TCP Protocol using VBA with Excel
How to Implement Modbus TCP Protocol using VBA with ExcelHow to Implement Modbus TCP Protocol using VBA with Excel
How to Implement Modbus TCP Protocol using VBA with ExcelACC Automation
 
Wpa supplicant introduction
Wpa supplicant introductionWpa supplicant introduction
Wpa supplicant introductionawkman
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: IntroductionJollen Chen
 
Ipmi Server Management
Ipmi Server ManagementIpmi Server Management
Ipmi Server Managementsjtu1234567
 
Embedded Android Workshop with Pie
Embedded Android Workshop with PieEmbedded Android Workshop with Pie
Embedded Android Workshop with PieOpersys inc.
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android EmbarcadoOdair Sousa
 
[PyConKR][2020]이 선 넘으면 침범이야, BEEP!
[PyConKR][2020]이 선 넘으면 침범이야, BEEP![PyConKR][2020]이 선 넘으면 침범이야, BEEP!
[PyConKR][2020]이 선 넘으면 침범이야, BEEP!Ji Hyung Moon
 
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsXPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsThe Linux Foundation
 
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...Customizing AOSP For Different Embedded Devices And Integration at Applicatio...
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...ijafrc
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編OESF Education
 
Chuyển đổi đĩa cứng ảo của hyper v to vmware workstation
Chuyển đổi đĩa cứng ảo của hyper v to vmware workstationChuyển đổi đĩa cứng ảo của hyper v to vmware workstation
Chuyển đổi đĩa cứng ảo của hyper v to vmware workstationlaonap166
 

La actualidad más candente (20)

Building aosp
Building aospBuilding aosp
Building aosp
 
Scada deep inside: protocols and security mechanisms
Scada deep inside: protocols and security mechanismsScada deep inside: protocols and security mechanisms
Scada deep inside: protocols and security mechanisms
 
Embedded C programming session10
Embedded C programming  session10Embedded C programming  session10
Embedded C programming session10
 
Lab 1 xay dung ftp server
Lab 1 xay dung ftp serverLab 1 xay dung ftp server
Lab 1 xay dung ftp server
 
Laravel 5 framework
Laravel 5 frameworkLaravel 5 framework
Laravel 5 framework
 
How to Implement Modbus TCP Protocol using VBA with Excel
How to Implement Modbus TCP Protocol using VBA with ExcelHow to Implement Modbus TCP Protocol using VBA with Excel
How to Implement Modbus TCP Protocol using VBA with Excel
 
Wpa supplicant introduction
Wpa supplicant introductionWpa supplicant introduction
Wpa supplicant introduction
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: Introduction
 
Ipmi Server Management
Ipmi Server ManagementIpmi Server Management
Ipmi Server Management
 
Embedded Android Workshop with Pie
Embedded Android Workshop with PieEmbedded Android Workshop with Pie
Embedded Android Workshop with Pie
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android Embarcado
 
[PyConKR][2020]이 선 넘으면 침범이야, BEEP!
[PyConKR][2020]이 선 넘으면 침범이야, BEEP![PyConKR][2020]이 선 넘으면 침범이야, BEEP!
[PyConKR][2020]이 선 넘으면 침범이야, BEEP!
 
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsXPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
 
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...Customizing AOSP For Different Embedded Devices And Integration at Applicatio...
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編
 
Linux systems - Getting started with setting up and embedded platform
Linux systems - Getting started with setting up and embedded platformLinux systems - Getting started with setting up and embedded platform
Linux systems - Getting started with setting up and embedded platform
 
GMSL in Linux
GMSL in LinuxGMSL in Linux
GMSL in Linux
 
Chuyển đổi đĩa cứng ảo của hyper v to vmware workstation
Chuyển đổi đĩa cứng ảo của hyper v to vmware workstationChuyển đổi đĩa cứng ảo của hyper v to vmware workstation
Chuyển đổi đĩa cứng ảo của hyper v to vmware workstation
 
Ccna s2
Ccna s2Ccna s2
Ccna s2
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 

Similar a U boot

tài liệu Mã nguồn mở 02 sudung
tài liệu Mã nguồn mở  02 sudungtài liệu Mã nguồn mở  02 sudung
tài liệu Mã nguồn mở 02 sudungThuyet Nguyen
 
Báo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mớiBáo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mớiPhạm Ái
 
Chương 2 căn bản cisco ios
Chương 2 căn bản cisco iosChương 2 căn bản cisco ios
Chương 2 căn bản cisco iosnguyenhoangbao
 
Mô phỏng vi điều khiển
Mô phỏng vi điều khiểnMô phỏng vi điều khiển
Mô phỏng vi điều khiểnNguyễn Trung
 
L C D Demo Cho Microblaze
L C D Demo Cho MicroblazeL C D Demo Cho Microblaze
L C D Demo Cho Microblazeiuui
 
Linux07 khoidong&dongtat
Linux07 khoidong&dongtatLinux07 khoidong&dongtat
Linux07 khoidong&dongtatanhbinhminhpro
 
Bao cao thuc tap tuan2
Bao cao thuc tap tuan2Bao cao thuc tap tuan2
Bao cao thuc tap tuan2duytruyen1993
 
Cài đặt quản trị hệ điều hành Ubuntu 12.0
Cài đặt quản trị  hệ điều hành Ubuntu 12.0Cài đặt quản trị  hệ điều hành Ubuntu 12.0
Cài đặt quản trị hệ điều hành Ubuntu 12.0Cường Nguyễn Tam
 
Tai lieu quan tri he thong erp oracle
Tai lieu quan tri he thong erp oracleTai lieu quan tri he thong erp oracle
Tai lieu quan tri he thong erp oracleKiet Tran
 
Báo cáo thực tập tuần 1
Báo cáo thực tập tuần 1Báo cáo thực tập tuần 1
Báo cáo thực tập tuần 1tran thai
 
Thực hành cơ sở mạng truyền thông
Thực hành cơ sở mạng truyền thôngThực hành cơ sở mạng truyền thông
Thực hành cơ sở mạng truyền thôngAi Tôi
 
Lesson 2 - Install Linux & Command Line Environment
Lesson 2 - Install Linux & Command Line EnvironmentLesson 2 - Install Linux & Command Line Environment
Lesson 2 - Install Linux & Command Line EnvironmentThang Man
 
Cau hinh router coban
Cau hinh router coban Cau hinh router coban
Cau hinh router coban Hate To Love
 
Linux Network Administration (LPI-1,LPI-2)
Linux Network Administration (LPI-1,LPI-2)Linux Network Administration (LPI-1,LPI-2)
Linux Network Administration (LPI-1,LPI-2)laonap166
 
Bai1laprapcaidat ttth
Bai1laprapcaidat ttthBai1laprapcaidat ttth
Bai1laprapcaidat ttthut1101833
 
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intelCài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intellaonap166
 
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intelCài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intellaonap166
 
Cấu hình Router cơ bản(Cisco)
Cấu hình Router cơ bản(Cisco)Cấu hình Router cơ bản(Cisco)
Cấu hình Router cơ bản(Cisco)NamPhmHoi1
 
Spartan 3e-vietnamese
Spartan 3e-vietnameseSpartan 3e-vietnamese
Spartan 3e-vietnamesebuianhminh
 
07 booting and shutting down
07  booting and shutting down07  booting and shutting down
07 booting and shutting downCơn Gió
 

Similar a U boot (20)

tài liệu Mã nguồn mở 02 sudung
tài liệu Mã nguồn mở  02 sudungtài liệu Mã nguồn mở  02 sudung
tài liệu Mã nguồn mở 02 sudung
 
Báo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mớiBáo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mới
 
Chương 2 căn bản cisco ios
Chương 2 căn bản cisco iosChương 2 căn bản cisco ios
Chương 2 căn bản cisco ios
 
Mô phỏng vi điều khiển
Mô phỏng vi điều khiểnMô phỏng vi điều khiển
Mô phỏng vi điều khiển
 
L C D Demo Cho Microblaze
L C D Demo Cho MicroblazeL C D Demo Cho Microblaze
L C D Demo Cho Microblaze
 
Linux07 khoidong&dongtat
Linux07 khoidong&dongtatLinux07 khoidong&dongtat
Linux07 khoidong&dongtat
 
Bao cao thuc tap tuan2
Bao cao thuc tap tuan2Bao cao thuc tap tuan2
Bao cao thuc tap tuan2
 
Cài đặt quản trị hệ điều hành Ubuntu 12.0
Cài đặt quản trị  hệ điều hành Ubuntu 12.0Cài đặt quản trị  hệ điều hành Ubuntu 12.0
Cài đặt quản trị hệ điều hành Ubuntu 12.0
 
Tai lieu quan tri he thong erp oracle
Tai lieu quan tri he thong erp oracleTai lieu quan tri he thong erp oracle
Tai lieu quan tri he thong erp oracle
 
Báo cáo thực tập tuần 1
Báo cáo thực tập tuần 1Báo cáo thực tập tuần 1
Báo cáo thực tập tuần 1
 
Thực hành cơ sở mạng truyền thông
Thực hành cơ sở mạng truyền thôngThực hành cơ sở mạng truyền thông
Thực hành cơ sở mạng truyền thông
 
Lesson 2 - Install Linux & Command Line Environment
Lesson 2 - Install Linux & Command Line EnvironmentLesson 2 - Install Linux & Command Line Environment
Lesson 2 - Install Linux & Command Line Environment
 
Cau hinh router coban
Cau hinh router coban Cau hinh router coban
Cau hinh router coban
 
Linux Network Administration (LPI-1,LPI-2)
Linux Network Administration (LPI-1,LPI-2)Linux Network Administration (LPI-1,LPI-2)
Linux Network Administration (LPI-1,LPI-2)
 
Bai1laprapcaidat ttth
Bai1laprapcaidat ttthBai1laprapcaidat ttth
Bai1laprapcaidat ttth
 
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intelCài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
 
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intelCài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
 
Cấu hình Router cơ bản(Cisco)
Cấu hình Router cơ bản(Cisco)Cấu hình Router cơ bản(Cisco)
Cấu hình Router cơ bản(Cisco)
 
Spartan 3e-vietnamese
Spartan 3e-vietnameseSpartan 3e-vietnamese
Spartan 3e-vietnamese
 
07 booting and shutting down
07  booting and shutting down07  booting and shutting down
07 booting and shutting down
 

Último

sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢImyvh40253
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanmyvh40253
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxNhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxhoangvubaongoc112011
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngYhoccongdong.com
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...Nguyen Thanh Tu Collection
 
CD21 Exercise 2.1 KEY.docx tieng anh cho
CD21 Exercise 2.1 KEY.docx tieng anh choCD21 Exercise 2.1 KEY.docx tieng anh cho
CD21 Exercise 2.1 KEY.docx tieng anh chonamc250
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfNguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảohoanhv296
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...Nguyen Thanh Tu Collection
 

Último (20)

sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxNhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
CD21 Exercise 2.1 KEY.docx tieng anh cho
CD21 Exercise 2.1 KEY.docx tieng anh choCD21 Exercise 2.1 KEY.docx tieng anh cho
CD21 Exercise 2.1 KEY.docx tieng anh cho
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
 

U boot

  • 1. “Nghịch”U-boot HND Tháng 9, 2012
  • 2. Phần 1 LÝ DO PHẢI NGHỊCH
  • 3. Build U-boot: vài thắc mắc • Configure board: – #make CROSS_COMPILE=arm-none-eabi- da850evm_config. – #make CROSS_COMPILE=arm-none-eabi- • Cái gì thực sự chạy đằng sau các lệnh này? – File nào sẽ được khi gọi khi các lệnh trên được thực thi? – Liệu U-boot lấy từ trên mạng về, có chạy với board của mình hay không?
  • 4. Tại sao “phá” U-boot(1) • Vai trò quen thuộc: – Sử dụng U-boot như là bootloader: boot từ flash(nor,nand,MMC), hay boot từ cách kênh giao tiếp như: ethernet, uart. – Sử dụng U-boot để gọi linux kernel: truyền arguments cho kernel.
  • 5. Tại sao “phá” U-boot(2) • Vai trò “phá” – Dùng U-boot để học nhúng(embedded system). – Dùng U-boot để phát triển ứng dụng đơn(stand- alone application). – Dùng U-boot để thử nghiệm driver: GPIO,uart,spi, i2c, ethernet, flashs…
  • 6. Ai nên “phá” U-boot(1) • Các “tay mơ”( newbie) chưa biết gì U-boot nên “phá”. • Chưa biết về nhúng. • Các chuyên gia làm board(hardware expert) nên “phá”.
  • 7. Ai nên “phá” U-boot(2) • Cho Newbie: – Làm quen với cách làm việc của open source: cài đặt cross-compiler, Makefile, C source code. – Sau đó là làm quen với CPU: starup code, system configuration. – Làm quen với cách viết code trên C.
  • 8. Ai nên “phá” U-boot(3) • Chuyên gia sản xuất development board – Tạo u-boot phù hợp với board của mình( chẳng lẽ cứ xài u-boot của người khác). – Cung cấp nhanh ứng dụng để test hardware.
  • 9. Phần 2 CHUẨN BỊ “NGHỊCH”
  • 10. Chuẩn bị môi trường “nghịch”(1) • Môi trường miễn phí: – 1 máy tính “dỏm”, có cài Ubuntu(12.04 or higher). – Internet: nhớ có tunnel proxy để vượt tường lửa -> truy cập facebook(giải thích sau).
  • 11. Chuẩn bị môi trường “nghịch”(2) • Trình biên dịch: – Sử dụng Code Sourcery: • Có phiên bản miễn phí: • Có phiên bản commercial(phòng khi dự án thành công,có tiền chuyển từ miễn phí sang). – Lưu ý khi download Code Sourcery: • Download phiên bản dành cho loại CPU nào(arm,intel,MIPS,…) • Môi trường để cài: Linux(Ubuntu), hay Windows. • Download the EABI Release: dành cho build U-boot,linux kernel( arm-none-eabi-) • Download the GNU/Linux Release: dành cho build ứng dụng để chạy trên linux(arm-none-linux-gnueabi-gcc- ),chưa cần thiết cho build U-boot,kernel linux.
  • 12. Chuẩn bị môi trường “nghịch”(3) • Cài đặt cross-compiler: – Chạy cài đặt Code Sourcery trên Ubuntu( chọn thiết lập mặc định cho chắc). Nếu Ubuntu không cho chạy(do thiếu quyền) thì mở Terminal, và thiết lập: • #chmod +x “file cài đặt code sourcery” – Test cross-compiler: mở Terminal, chạy dòng lệnh sau: • #arm-none-eabi-gcc -v
  • 13. U-boot source code • Download phiên bản U-boot mới nhất từ đây:http://ftp.denx.de/pub/u-boot/ • Hiện tại( Tháng 9, 2012) phiên bản an toàn nhất là: 2012_04 ( tuy nhiên có vấn đề với đọc Nand flash của TI). • Giải nén u-boot: – #tar zvf u-boot-2012.04.tar.bz2
  • 14. Phần 3: B ẮT ĐẦU “NGHỊCH”
  • 15. Môi trường phần cứng(1) • SBC8018. – Sử dụng chip AM1808( tương đương L138,nhưng không có khối DSP). – Các tham số hardware cần lưu ý: • DDR: có dung lượng 128MBytes, bắt đầu từ địa chỉ: 0xc0000000 • UART: • NAND flash:
  • 16. Giải mã U-boot – Configuration(1) • Trước khi build u-boot,ta phải config source code bằng lệnh: – #make CROSS_COMPILE=arm-none-eabi- da850evm_config • Vậy lệnh này ở đâu ra? • Kiểm tra file board.cfg sẽ có 1 trường dữ liệu: da850evm arm arm926ejs da8xxevm davinci davinci da850evm:MAC_ADDR_IN_SPIFLASH
  • 17. Giải mã U-boot – Configuration(2) Giá trị Ý Nghĩa Target da850evm: tên của board. Do đó khi config board ta phải chạy lệnh: #make CROSS_COMPILE=arm-none-eabi- da850evm_config ARCH arm CPU arm926ejs Board name da8xxevm Vendor davinci Soc davinci Options da850evm:MAC_ADDR_IN_SPIFLASH
  • 18. Giải mã U-boot - CPU • Từ bảng cấu hình, ta sẽ biết ngay đoạn mã quan trọng nhất: startup code cho CPU của board sẽ nằm ở: – /arch/arch’value/cpu/cpu’s value/soc : arch/arm/cpu/arm926ejs/davinci
  • 19. Giải mã U-boot – Board • Code dành để cấu hình board(sau khi start up) sẽ nằm ở: – /board/vendor/board name: /board/davinci/da8xxevm • Vấn đề xuất hiện: trong thư mục /board/davinci/da8xxevm có rất nhiều file .c cho từng loại board khác( da830 …) vậy căn cứ vào đâu để biên dịch đúng file da850evm.c: kiểm tra Makefile ta thấy: – COBJS-$(CONFIG_MACH_DAVINCI_DA850_EVM) += da850evm.o – Điều đó chứng tỏ CONFIG_MACH_DAVINCI_DA850_EVM đã được “define” đâu đó.
  • 20. Giải mã U-boot – “Đầu bự” • U-boot giấu file config cho từng board ở nơi khá bí hiểm: – includeconfigs • Toàn bộ các file định nghĩa cho các board phải nằm ở đây dưới cái tên: “board_name”.h . Trong trường hợp cụ thể ở đây là: da850evm.h • Mở ra đúng phóc là có – #define CONFIG_MACH_DAVINCI_DA850_EVM
  • 21. Giải mã U-boot – Xong • Tới đây về cơ bản ta đã biết đường đi lối lại của U-boot khi nó configure, và biên dịch cho một board mới. • Để cho rõ, ta nên làm một bài tập nhỏ sau: tạo “code base” trên u-boot hỗ trợ custom defined board như sau: CPU: am1808, board name: bullet, thiết kế giống như da850evm. Yêu cầu: các lệnh sau biên dịch thành công: – #make CROSS_COMPILE=arm-none-eabi- bullet_config – #make CROSS_COMPILE=arm-none-eabi- • Có thể làm cho atmel, samsung hay freescale arm9 đang có trên thị trường tùy ý.
  • 22. Giải mã U-boot – Chữ nhiều quá thêm cái hình cho dễ hiểu
  • 23. Giải mã U-boot: Đã thật sự xong chưa? • Đã thật sự xong chưa? Liệu biên dịch thành công thì nạp xuống board có ra gì không? • Sự cần thiết của driver. • Các driver cần lưu ý: – UART. – Ethernet. – NAND flash.
  • 24. Giải mã U-boot: Driver • Điều chắc chắn: nếu board của bạn “mông má” từ 1 board đã chạy rồi(lưu ý phần UART phải giống nhé), quá trình tạo code giống như đã trình bày ở trên, thì console chắc cú là xuất ra dòng: #u-boot> • Vậy phải làm gì tiếp theo? Driver tiếp là cái chắc vì: – Ngoại vi chắc chắn là khác với board gốc. – Chân cẳng cũng khác.
  • 25. Giải mã U-boot: Thực thi U-boot • U-boot được chạy như thế nào? – Tất cả CPU sẽ có phần bootstrap, đoạn code nhỏ này khởi tạo PLL, SRAM, SDRAM… Bootstrap này có sẵn hay có thể nạp vào SRAM của CPU bằng JTAG. – Nếu boot từ flash(nor, nand, spi), bootstrap sẽ truy cập( driver đọc flash tích hợp sẵn trong bootstrap) và đọc file(trong trường hợp này là u-boot) và để lên SDRAM. – Sau đó nhảy đến SDRAM tại địa chỉ vừa load để thực thi file. – Vì bootstrap chạy trên SRAM, nên nó khá nhỏ nên thường không có serial, ethernet …
  • 26. Giải mã U-boot: Driver • Vị trí source driver thường dùng: – /driver/serial: dành cho serial – /driver/mtd: memory technology device, nor nand và các loại flash vào đây. – /driver/gpio – /driver/net: lưu ý là các driver cho PHY device thường lại được đặt khá lung tung • /driver/net/phy. • Đôi khi nằm cùng vị trí với CPU,hoặc board( đề cập slide 17/18).
  • 27. Giải mã U-boot: Driver UART • Nhớ lại file “đầu bự” da850evm.h ở slide 19 – CONFIG_SYS_NS16550 – CONFIG_SYS_NS16550_SERIAL • Tham chiếu vào Makefile ở /drivers/serial ta sẽ biết những file nào sẽ biên dịch để sử dụng là driver cho board.
  • 28. Giải mã U-boot: Driver ethernet(1) • U-boot chia ethernet làm 2 phần: – /net : có thể nói đây là lớp TCP/IP , phần này chắc chắn đúng, và ít khi cần port lại. – /drivers/net và /drivers/net/phy: tương ứng cho lớp MAC và PHY, cần port mỗi khi làm cho board mới. – Đầu mối kết hợp giữa 2 phần trên được thực hiện trong phần khởi tạo board, với sbc8018 thì trong hàm davinci_emac_initialize gọi bởi cpu_eth_init
  • 29. Giải mã U-boot: Driver ethernet(2) • Việc cần làm khi port: – Driver cho MAC quan trọng hơn PHY ( PHY gần như không cần, chỉ cần theo đúng generic PHY). – Nếu liên kết giữa MAC và PHY theo truyền thống( MII hay RMII). • MAC phát hiện,điều khiển PHY sử dụng MDC. • Dữ liệu trao đổi giữa MAC và PHY qua các đường IO độc lập với MDC -> MAC có thể không phát hiện PHY nhưng vẫn giao tiếp dữ liệu được. – Các loại khác: usb, com … : chưa biết. – Với sbc8018: căn cứ và Makefile trong /drivers/net để biết driver MAC nào được sử dụng: • COBJS-$(CONFIG_DRIVER_TI_EMAC) += davinci_emac.o
  • 30. Giải mã U-boot: Driver NAND flash(1) • Define: CONFIG_USE_NAND nếu sử dụng NAND. • Makefile trong /drivers/mtd/nand cho ta biết file driver của NAND: – COBJS-$(CONFIG_NAND_DAVINCI) += davinci_nand.o • Cung cấp các tham số để driver cấu hình: – #define CONFIG_SYS_NAND_BASE DAVINCI_ASYNC_EMIF_DATA_CE3_BASE – #define CONFIG_SYS_NAND_PAGE_2K – #define CONFIG_SYS_NAND_CS 3
  • 31. Giải mã U-boot: Driver NAND flash(2) • Flash rất quan trọng: – Nơi chứa biến môi trường. – Nới chứa bản thân u-boot, đồng thời là các app được gọi bởi u-boot( user app hay linux kernel , rootfs). • Cấu hình environment: – CONFIG_ENV_IS_IN_NAND : biến môi trường trong nand flash. – CONFIG_ENV_OFFSET: có thể ở đầu flash(block 0 hay ở đoạn cuối flash). – CONFIG_ENV_SIZE: kích cỡ.
  • 32. Giải mã U-boot: Hết • Các điểm lưu ý: – Khai báo Board : boards.cfg – Board config: /include/configs/”boardname.h” – CPU/Board initialize: /arch/arch’value/cpu/cpu’s và /board/vendor/”boardname” – Makefile ở trong các thư mục driver. • /drivers/serial • /drivers/mtd/nand, /drivers/mtd/nor • /drivers/net, /drivers/net/phy