Thiết bị điện thoại thông minh bạn đang sử dụng là một ví dụ về hệ thống nhúng, có thể chạy trên Linux nhúng. nó thực hiện các thao tác cụ thể, không giống như các máy tính cá nhân không có các tính năng cụ thể. Xem bài hướng dẫn Linux Embedded này, trong đó chúng tôi sẽ giải thích lý do tại sao thành phần này phù hợp nhất với các hệ thống nhúng.
nội dung
nhúng linux là gì?
tại sao bạn chọn linux cho hệ thống nhúng?
phân loại hệ thống linux nhúng
các yêu cầu phần cứng tối thiểu cho linux trên các bộ xử lý nhúng
kiến trúc linux nhúng
các thành phần chính của các hệ thống nhúng linux
kết luận
nhúng linux là gì?
hình 1: hệ điều hành linux
các hệ thống nhúng là các hệ thống máy tính được chỉ định để thực hiện một thao tác cụ thể. vì vậy, hầu hết các thiết bị điện tử tiêu dùng là các hệ thống nhúng.
Linux nhúng là một dạng thức của hạt nhân Linux, rất hữu ích trong các ứng dụng của các hệ thống nhúng. ví dụ, phần mềm phát triển ứng dụng điện thoại thông minh phổ biến android chạy trên mã lõi. vì vậy, phần mềm ứng dụng là một hệ thống nhúng linux.
ngoài ra, các đối tượng hạt nhân đại diện cho lõi của hệ điều hành và là chìa khóa để chạy phần cứng đích. nó bao gồm cpu và bộ nhớ.
tại sao bạn chọn linux cho hệ thống nhúng?
hạt nhân linux thường là ứng dụng phổ biến nhất trong nhiều thiết bị điện tử tiêu dùng. và đây là một vài lý do tại sao nó lại phổ biến.
mã nguồn mở
bản đồ 2: kernel linux rất phổ biến vì nó là một hệ điều hành nguồn mở
đầu tiên, phần mềm linux là mã nguồn mở. vì vậy, bạn có thể dễ dàng tùy chỉnh mã nguồn cho nhu cầu riêng của bạn. ngoài ra, khi bạn tạo một hình ảnh linux cho phần cứng đích, bạn có thể tự do xóa hoặc thêm các thành phần của đối tượng hạt nhân.
Do vậy, những người sở hữu có thể tự do tạo hình ảnh hạt nhân cho các thiết bị điện tử tiêu dùng Linux có bộ nhớ hạn chế.
khả năng tái sử dụng
Sử dụng các ứng dụng nguồn mở làm cho việc thiết kế các đối tượng nhúng dễ dàng hơn. điều này chủ yếu là do linux có sự hỗ trợ rộng rãi của cộng đồng dành cho các ứng dụng khác nhau.
Do vậy, chúng có thể sử dụng nhiều phần mềm ứng dụng như i2C, thư viện đồ họa, thư viện SPI, các bậc TCP/ IP, v. v.. Vì vậy, cho dù bạn đang làm việc với loại hệ thống tập tin nào, cộng đồng Linux sẽ phân loại cho bạn. nó giải phóng thời gian, chủ yếu tập trung vào phát triển ứng dụng chính.
chi phí thấp/ miễn phí
hình 3: cộng đồng hệ điều hành linux phát triển hầu hết các ứng dụng
với linux, bạn có thể bỏ qua các bước phát triển ứng dụng vì hầu hết các ứng dụng được sẵn sàng. vì vậy, bạn chỉ cần chọn ứng dụng dựa trên phần cứng đích của bạn.
Do tất cả các ứng dụng tùy chỉnh được cung cấp một cách tự do, chi phí phát triển các ứng dụng trên hệ điều hành Linux rất rẻ. do đó, nó làm giảm giá của các thiết bị nhúng. hỗ trợ/ mở rộng phần cứng
đảm bảo tính tương thích
linux hỗ trợ nhiều cấu trúc bộ xử lý, bao gồm:
Siêu anh hùng
RiscV
cánh tay, vũ khí, tay áo, trang bị
Máy tính để bàn cá nhân
x86
hàng triệu mệnh lệnh mỗi giây
Đầu tiên, hệ điều hành chạy trên một bộ vi xử lý kiến trúc MMS, nhưng nó cũng có thể chạy trong kiến trúc không-MMS, mặc dù có một số hạn chế.
phân loại hệ thống linux nhúng
hình 4: các hệ thống nhúng linux chủ yếu được phân loại theo kích thước.
các tiêu chuẩn phân loại của các hệ thống nhúng chủ yếu dựa trên cấu trúc hệ thống. tuy nhiên, bạn có thể phân loại chúng theo quy mô và giới hạn thời gian. sau đây là ba phân loại chính dựa trên kích thước.
hệ thống nhỏ
Chúng có CPU tiêu thụ năng lượng thấp và ROM khởi động tối đa 4MB. Ngoài ra, hệ thống này có RAM từ 8MB đến 16MBs.
hệ thống trung bình
CPU của nó là trung bình, với hệ thống tập tin RAM ban đầu 32MB. ngoài ra, nó có thẻ nhớ di chuyển.
hệ thống lớn
hầu hết sẽ có một cpu mạnh, hoặc trong một số trường hợp, nhiều cpu. RAM cũng lớn hơn hệ thống cỡ trung bình. và cuối cùng, nó có một hệ thống lưu trữ vĩnh viễn.
các yêu cầu phần cứng tối thiểu cho linux trên các bộ xử lý nhúng
hình 5: lập trình viên sử dụng linux
các đối tượng hạt nhân linux chủ yếu hỗ trợ các cấu trúc bộ xử lý sau:
Ngoài ra, chạy các ứng dụng Linux trên bộ xử lý nhúng đích không yêu cầu hệ thống tập tin RAM ban đầu ít nhất 32 MBs. ngoài ra, quá trình khởi động thành công đòi hỏi hệ thống tệp bộ nhớ 4 mb.
Đối với các yêu cầu lưu trữ, bạn có thể chọn một thẻ flash NOR RAW, SD card hoặc MMC card.
kiến trúc linux nhúng
hình ảnh khung dưới đây thể hiện cấu trúc của các phần mềm linux nhúng.
hình 6: cấu trúc nhúng linux
quá trình xây dựng các hệ thống nhúng được thực hiện trên máy chủ, và các công cụ biên dịch chéo là quan trọng trong quá trình này. đầu tiên, phần cứng đích không có các công cụ cần thiết để tạo hình ảnh nhị phân để chạy phần cứng nhúng.
Do vậy, biên dịch chéo chủ yếu bao gồm việc biên dịch mã (tệp khởi tạo) trên một hệ thống máy chủ. tiếp theo, mã từ hệ thống máy chủ chạy trên một hệ thống máy chủ khác.
các thành phần chính của các hệ thống nhúng linux
Hệ thống tập tin gốc
hình 7: các lập trình viên làm việc trên linux
hệ thống tệp gốc là cần thiết để tổ chức dữ liệu dưới dạng các tệp và các thư mục trong thiết bị lưu trữ của bo mạch phát triển. về cơ bản, trong linux, mọi thứ đều là tập tin gốc.
ngoài ra, mô-đun hạt nhân có thể nạp được yêu cầu một hệ thống tệp gốc trong quá trình khởi động. hệ thống tệp gốc là một thư viện tệp cấu hình mà thuận tiện cho việc tạo ra môi trường thực thi của các thiết bị nhúng.
ngoài ra, nó là cơ sở của quá trình khởi tạo/ khởi tạo tiêu chuẩn cho các chương trình chạy trên linux.
lõi
nó là ứng dụng chính của hệ thống nhúng. phần mềm được chia thành hai phần: không gian bộ nhớ nhân và không gian người dùng.
chức năng bao gồm:
quản lý tập tin.
quản lý quy trình và lập lịch trình.
để tạo ra sự kết nối.
giao tiếp giữa các tiến trình.
quản lý đầu ra.
kết nối phần cứng qua trình điều khiển thiết bị.
quản lý bộ nhớ.
cây thiết bị
hình 8: các biểu tượng cây thiết bị
cây thiết bị là một kênh trong các hệ thống hạt nhân linux nhúng và rất quan trọng để nhận biết sự tồn tại của các thiết bị khác. Do vậy, cây thiết bị thể hiện một cấu trúc dữ liệu dạng cây giúp nhận dạng các thiết bị bổ sung mà khó phát hiện.
Lưu ý rằng một số thiết bị bổ sung có thể được tìm thấy theo mặc định, trong khi các thiết bị bổ sung khác thì không được tìm thấy. Các thiết bị ngoại vi không phát hiện được bao gồm các giao diện Ethernet, UART, I2C, và SP.
Mặt khác, các linh kiện như các thiết bị USB có thể được tìm thấy theo mặc định.
Bộ nạp khởi động
Các tệp mã/ khởi tạo được thực hiện sau khi áp dụng nguồn điện đầu tiên trên thể loại phần cứng nhúng. chức năng bao gồm:
khởi tạo phần cứng đích và nạp các ứng dụng nhị phân,
thúc đẩy sự kết nối giữa ram bên ngoài và soc và thực hiện mã hệ điều hành chính.
chuỗi công cụ phát triển chéo
Nó có các công cụ như thư viện C, trình biên dịch GCC và bộ gỡ lỗi GNU. các công cụ chuỗi công cụ này là cơ sở của việc tạo mã nguồn cho thiết bị bo mạch đích.
lưu ý rằng các chuỗi công cụ biên dịch chéo chỉ có thể được sử dụng trong linux. điều này chủ yếu là vì hầu hết các thiết bị ngoại vi mục tiêu thiếu các nguồn tài nguyên cần thiết để hỗ trợ chuỗi công cụ.
Do vậy, để hoàn thành biên dịch chéo, bạn cần một giao diện Ethernet để chuyển mã nguồn sang thiết bị gắn kết đích. nếu giao diện ethernet mac không có sẵn, bạn có thể sử dụng bất cứ giao diện nối tiếp nào khác có sẵn.
Các cấu phần quan trọng khác bao gồmchương trình hệ thốngvàỨng dụng.
kết luận
chương trình hướng dẫn nhúng linux của chúng tôi đã bao gồm tất cả những hiểu biết quan trọng về chủ đề này. Tuy nhiên, nếu bạn muốn gửi một vùng màu xám hoặc một câu hỏi, xin vui lòng liên hệ với chúng tôi và chúng tôi sẽ phản hồi ngay lập tức.