Tạ Lục Gia Hoàng

Writing Reusable Drivers (Phần 1)

Viết một driver có thể được sử dụng từ application này sang application khác có thể rất hữu ích cho các embedded-software developer. Một khi driver được viết xong, các developer có thể tập trung vào application code và không phải lo lắng gì về các bit và byte. Các mẫu thiết kế (design pattern) driver có thể được sử dụng lại không chỉ trên cùng một phần cứng (hardware) mà còn trên nhiều nền tảng (platform) khác, chỉ bằng những thay đổi nhỏ cần thiết để điều chỉnh driver để truy cập các vùng bộ nhớ (memory region) khác nhau.

Trong chương này, chúng ta sẽ xem xét các phương pháp luận (methodology) khác nhau mà developer có thể sử dụng để ánh xạ (map) vào bộ nhớ ngoại vi (peripheral memory) và sau đó chúng ta sẽ chứng minh cách sử dụng từng kỹ thuật.

Cấu trúc chương trình (Phần 2)

(Phần 1) , (Phần 2) Nội dung 1. Vai trò của hàm (function) 2. Sử dụng lưu đồ để thiết kế cấu trúc chương trình 3. Mã giả (pseudo code) 4. Chia chương trình thành các module 5. Quá trình biên dịch chương trình 6. Chỉ dẫn tiền biên dịch Chỉ dẫn #include Chỉ dẫn …

Cấu trúc chương trình (Phần 2) Read More »

Khái niệm lập trình Portable Firmware (Phần 3)

10. Embedded-Software Architecture Trong những ngày đầu, lập trình firmware sử dụng các bộ vi điều khiển cực kỳ hạn chế về tài nguyên. Mỗi từng bit phải được tách ra khỏi không gian bộ nhớ code và data. Khả năng tái sử dụng phần mềm là một mối quan tâm nhỏ và các chương …

Khái niệm lập trình Portable Firmware (Phần 3) Read More »

Khái niệm lập trình Portable Firmware (Phần 2)

3. Sự Module hóa Nhiều lần trong vài năm qua, tôi từng làm việc với một khách hàng mà nguyên cả ứng dụng của họ, hơn 50,000 dòng code, chỉ để trong một module là main.c. Nỗ lực bảo trì phần mềm hoặc tái sử dụng các đoạn code nhanh chóng trở thành một cơn …

Khái niệm lập trình Portable Firmware (Phần 2) Read More »

Cấu trúc chương trình (Phần 1)

Có rất nhiều khó khăn mà người lập trình sẽ gặp phải khi thiết kế một chương trình hệ thống nhúng. Thông thường, trước khi bắt tay vào việc viết mã nguồn, điều đầu tiên phải làm là xem xét thiết kế cấu trúc của chương trình, đặc biệt là với các hệ thống lớn, có nhiều chức năng.

Bootloader: Những điều bạn cần biết về trình quản lý khởi động hệ thống

Để một bộ xử lý máy tính (computer processor) có thể khởi chạy các ứng dụng, nó dựa vào các dịch vụ của bộ nhớ truy cập ngẫu nhiên (Random Access Memory – RAM), còn được gọi là bộ nhớ chính (main memory). Dữ liệu cần thiết được tải vào bộ nhớ chính cho mục đích này, đó là lý do tại sao dung lượng, tốc độ truyền và tốc độ truy cập của nó đóng vai trò quyết định đến khả năng hoạt động tối đa của toàn bộ máy tính.

Icons made by Freepik from www.flaticon.com