Month: August 2021

Bài 2: Lập trình GPIO STM32

1. Giới thiệu về GPIO General-purpose Input/Output (GPIO) rất phổ biến, là một chức năng ngoại vi cơ bản của mỗi loại vi điều khiển, bao gồm các chân đầu vào và chân đầu ra, có thể được điều khiển bởi người dùng. Đối với chip STM32F107VC gồm có 5 Port chính đó là GPIOA, …

Bài 2: Lập trình GPIO STM32 Read More »

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.

Icons made by Freepik from www.flaticon.com