Tránh sự cố trong lập trình
ứng dụng nhúng
Mặc dù việc viết phần mềm cho máy tính nhúng thoạt đầu
nghe có vẻ đơn giản, đặc biệt là với các lập trình viên dày
dạn kinh nghiệm, tuy nhiên có những trở ngại mà họ cần phải
biết cách tránh:
(1) Sử dụng quá nhiều bộ nhớ flash của máy tính nhúng,
(2) Rò rỉ bộ nhớ do bộ nhớ động không sử dụng đến không
được tháo ra
(3) Tạo ra các ứng dụng không lường được các lỗi có thể xảy
ra.
Do các hệ thống nhúng thường phải hoạt động mà không có
giám sát đồng thời trong một thời gian dài, máy tính nhúng
thường được đặt ở xa nơi đi lại, một trong những mục đích
chính của người lập trình h thống nhúng là bảo vệ độ ổn
định của hệ thống.
Embedded PC và PC-khác biệt ở bộ nhớ
Vấn đề lớn nhất với việc viết code cho máy tính nhúng là
hiểu sai vai trò ca máy tính nhúng. Điều này đặc biệt đúng
đối với người phát triển phần mềm lại là những người lập
trình PC có kinh nghiệm. Trong khi đó, PC hiện đại cực
nhanh và ứng dụng của PC có thể tận dụng được lượng bộ
nhtrên một PC điển hình, các h thng nhúng lại cung cấp
nguồn bộ nhớ có hạn. Trên thực tế, người lập trình hệ thống
nhúng thường gặp rắc rối khi ứng dụng của họ trở nên thiếu
ổn định, không nhận ra rằng vấn đề có liên quan đến bộ nhớ.
Sau đây là một ví dụ đơn giản. Khi viết phần mềm cho các
ứng dụng PC, sẽ là bình thường khi viết 100 MB dữ liệu lên
đĩa cứng 1 GB. So sánh điều này với việc viết 10 MB dữ liệu
n ổ flash 15 MB cho một ứng dụng nhúng. Mặc dù chỉ sử
dụng 2/3 dung lượng có sẵn, vẫn cần thận trọng để tránh
nhng sự cố xảy ra, viết dữ liệu nhiều lần cùng một lúc sẽ
dẫn đến “khóa chết” trong ổ flash. Nguyên nhân là do các
thiết bị bộ nhớ flash có vòng đời hoạt động ghi dữ liệu hạn
chế, và do nhiều vùng của bộ nhớ flash sẽ thường không
hỏng cùng lúc, thiết bị bộ nhớ flash sẽ vẫn hoạt động cho tới
khi số lượng bộ nhớ còn dùng được bị xuống cấp dưới mức
cần thiết để chạy ứng dụng. Khi điều đó xảy ra, ứng dụng của
bạn sẽ trở nên thiếu ổn định và sau đó là hỏng.
Cách tốt nhất để sử dụng ổ nhớ flash của một máy tính nhúng
là lưu các file chương trình trên đĩa và lưu dữ liệu được tạo ra
bởi chương trình trên CF card hay SD card mở rộng. Card
mở rộng đem đến dung lượng lưu trữ lớn hơn và cùng lúc đó
tránh được vấn đề vòng đời ổ cứng. Nếu vì một số lý do bạn
phải sử dụng bộ nhớ flash để lưu trữ dữ liệu, chúng tôi muốn
khuyên bạn rằng bạn nên s dụng một nửa dung lượng flash.
Rò rỉ bộ nhớ
Một sự cố khác cần tránh là rò rỉ bộ nhớ. Máy tính nhúng
thực sự nhạy với việc sử dụng bộ nhớ và việc rò rỉ bộ nhớ
làm giảm công suất hệ thống do việc phân trang bộ nhớ tăng
cao khi các chương trình khác nhau tìm cách chiếm bộ nh
sẵn có.
Vấn đề rò rỉ bộ nhớ cũng có thể xuất hiện khi bộ xử file
không được sử dụng hay bộ mô tả không được đóng lại.
Trong các ng dụng truyền thông, mỗi kết nối TCP hay serial
phải liên quan tới một bộ mô tả file chiếm một lượng bộ
nhớ.
Khi bộ mô tả file không được đóng đúng cách và kết nối
được thiết lập đi thiết lập lại nhiều lần, việc tiêu tốn bộ nh
thậm chí sẽ dẫn đến rò rbộ nhớ.