🌱 Một vài tip optimize code (2)
Ở post trước mình đã giới thiệu về một số tip giúp optimize code của bạn trong các ứng dụng nhúng. Đối với các ứng dụng nhúng - vi điều khiển, việc kiểm soát bộ nhớ là rất quan trọng, vì bộ nhớ của các vi điều khiển là rất có hạn, và khi chọn được bộ nhớ tiết kiệm nhất có thể tiết kiệm chi phí cho dự án của bạn. Ở post này mình sẽ giới thiệu thêm về một số tip hữu ích nữa!
👉 Tip 5. Hạn chế tính toàn với kiểu float
Tính toán với kiểu dữ liệu float sẽ mất nhiều thời gian và bộ nhớ hơn so với kiểu integer. Vì vậy, hãy tìm cách hạn chế tính toán với kiểu dữ liệu float.
Ví dụ dưới đây cho thấy điều đó. Bài toán đặt ra là đọc dữ liệu cảm biến bằng hàm Measure(). Hàm này trả về kiểu integer là giá trị thanh ghi ADC Data. Yêu cầu trong main là tính toán giá trị trung bình của Điện áp đo được mỗi phút (1s sẽ đọc ADC 1 lần), như vậy cứ mỗi 60 lần đọc điện áp sẽ tính trung bình 1 lần.
➤➤ Nếu cứ mỗi lần đọc giá trị ADC rồi tính ra giá trị điện áp, chúng ta sẽ phải tính toán với kiểu float 60 lần mỗi phút, như vậy sẽ rất tốn bộ nhớ. Ở ví dụ bên phải, chúng ta sẽ tính toán giá trị đọc được rồi cộng dồn lại, sau 60 lần thì mới quy ra điện áp để tính trung bình!
👉 Tip 6. Sử dụng kiểu dữ liệu Unsigned int/long
Lí do chúng ta thường thấy trong các ứng dụng nhúng sử dụng kiểu uint thay vì int là do kiểu dữ liệu int sẽ tiêu tốn bộ nhớ và tốc độ nhiều hơn trong các phép toán.
👉 Tip 7. Sử dụng hợp lý các điều kiện trong if, for, while, ...
Việc sử dụng không hợp lý các điều kiện trong các câu lệnh if, for, while, ... cũng có thể ảnh hưởng đến tốc độ chương trình và bộ nhớ sử dụng.
🔺 Ví dụ sử dụng các phép toán trong if, điều này nên được hạn chế bằng cách chỉ sử dụng các phép so sánh.
🔺 Các điều kiện trong vòng lặp for cũng vậy
🔺 Vòng lặp While cũng vậy, chúng ta chỉ cần sử dụng tiền tố/hậu tố một cách hợp lý cũng có thể giảm kích thước chương trình
👉 Tip 8. Sử dụng Biến Local & Global hợp lý
Biến Global thì tiêu tốn bộ nhớ, còn Local thì chỉ lưu tạm thời trên Stack, vì vậy nếu có thể hãy sử dụng biến Local thay vì các biến Global. Nhưng hãy lưu ý sử dụng biến Local quá nhiều cũng có thể gây tràn stack, và Global cũng có những tác dụng riêng của nó.
👉 Tip 9. Sử dụng biến Global Static
Với các biến Global, hãy cố gắng sử dụng từ khóa Static nếu có thể. Vì Global Static được lưu trên SRAM và giúp tiết kiệm bộ nhớ.
Trên đây là các tip còn lại mà mình muốn chia sẻ với các bạn để tối ưu hóa code trong lập trình C nhúng. Vẫn còn rất nhiều tip khác mà trong phạm vi 2 bài viết ngắn ngủi này không thể bao quát hết được, các bạn nên tự thực hành và trải nghiệm.
💚 Kênh Youtube Lập trình - Điện tử 💚
Để nhận được những bài học miễn phí mới nhất nhé 😊Chúc các bạn học tập tốt 😊