Thứ Sáu, Tháng 6 20, 2025
  • Về LADEC
  • Liên Hệ
No Result
View All Result
  • Home
  • Tin Tức
  • Tuyển Sinh
  • Doanh Nghiệp & Việc Làm
  • Hỏi Đáp
  • Giải Đáp Cuộc Sống
No Result
View All Result
Home Hỏi Đáp

Blog kỹ thuật máy tính

admin by admin
26 Tháng 8, 2023
in Hỏi Đáp
0
Share on FacebookShare on Twitter

Trong lập trình nhúng, chúng ta thường gặp từ khóa “volatile” khi khai báo biến. Từ khóa này rất cần thiết để tránh những lỗi khó phát hiện do tính năng optimization của compiler. Trong bài viết này, chúng ta sẽ tìm hiểu ý nghĩa của từ khóa này, cách sử dụng và lý do tại sao nó quan trọng trong lập trình với hệ thống nhúng và ứng dụng đa luồng.

Ý nghĩa và cách sử dụng từ khóa volatile

Một biến cần được khai báo dưới dạng biến “volatile” khi giá trị của nó có thể thay đổi một cách không báo trước. Thực tế có 3 loại biến có giá trị có thể bị thay đổi như vậy:

  1. Memory-mapped peripheral registers: Đây là các thanh ghi ngoại vi có ánh xạ đến ô nhớ.
  2. Biến toàn cục được truy xuất từ các tiến trình con xử lý ngắt (interrupt service routine).
  3. Biến toàn cục được truy xuất từ nhiều tác vụ trong một ứng dụng đa luồng.

Các thanh ghi ngoại vi

Trong các hệ thống nhúng, chúng ta thường gặp các thiết bị ngoại vi như GPIO, UART, SPI, … và các thiết bị này chứa các thanh ghi có giá trị có thể thay đổi ngoài ý muốn của chương trình. Ví dụ, khi ta cần kiểm tra giá trị của một thanh ghi trạng thái pStatReg đến khi nó khác 0, việc sử dụng từ khóa “volatile” đảm bảo rằng giá trị được đọc sẽ luôn là giá trị mới nhất.

Tiến trình con xử lý ngắt (Interrupt Service Routine)

Ngắt là một khái niệm quan trọng trong hệ thống nhúng. Mỗi khi xảy ra ngắt, stack pointer sẽ nhảy đến chương trình con xử lý ngắt (ISR). Thường thì các chương trình con xử lý ngắt này sẽ thay đổi giá trị của biến toàn cục và trong chương trình chính sẽ đọc những giá trị này để xử lý. Việc sử dụng từ khóa “volatile” đảm bảo rằng compiler sẽ kiểm tra giá trị của biến toàn cục này.

Ứng dụng đa luồng

Trong các ứng dụng đa luồng, chúng ta thường xảy ra trường hợp các tác vụ trao đổi thông tin với nhau thông qua một biến toàn cục. Việc sử dụng từ khóa “volatile” đảm bảo rằng compiler sẽ không loại bỏ những phần code liên quan đến biến toàn cục này khi bật tính năng optimization.

Với việc sử dụng từ khóa “volatile”, chúng ta có thể đảm bảo rằng chương trình C sẽ luôn đọc lại giá trị của các biến mà không có những giả định từ compiler. Điều này rất quan trọng trong lập trình nhúng và đảm bảo tính chính xác và đáng tin cậy của hệ thống.

LADEC

Previous Post

ĐĂNG NHẬP TÀI KHOẢN ỨNG VIÊN

Next Post

[Network] Tìm hiểu LDAP, cấu hình xác thực SSH với LDAP

admin

admin

CAO ĐẲNG CÔNG NGHỆ LADEC

Tiền thân là Trường Đào tạo Kỹ thuật-Nghiệp vụ LADECEN – Liên hiệp các Hội Khoa học Kỹ thuật Việt Nam (VUSTA) tại Tp. HCM (thành lập 05/2005).
Tháng 7/2007 Bộ trưởng Bộ Lao động-Thương binh và Xã hội cho phép thành lập Trường Cao đẳng Nghề Kỹ thuật Công nghệ LADEC. Đến nay, hệ thống các cơ sở đào tạo của Trường gồm 6 chi nhánh hoạt động tại Long An và thành phố Hồ Chí Minh

https://bet88bz.com/

TRỤ SỞ TẠI LONG AN

201 Nguyễn Văn Rành, Phường 7, TP Tân An, Long An
Điện Thoại: (0272) 3 839 177
Hotline: 0931 53 55 58
Email: ladec@ladec.com.vn
Website: www.ladec.edu.vn

TRỤ SỞ TẠI TP.HCM

130 Tân Hương, P.Tân Quý, Q.Tân Phú, TP HCM
Điện Thoại: (028)38 496 551
Hotline: 0917 39 11 55
Email: ladec@ladec.com.vn
Website: www.ladec.edu.vn

  • Chính sách bảo mật
  • Liên Hệ
  • TRƯỜNG CAO ĐẲNG CÔNG NGHỆ LADEC
  • Về LADEC

Copyright © 2023 CAO ĐẲNG CÔNG NGHỆ LADEC

No Result
View All Result
  • Home
  • Tin Tức
  • Tuyển Sinh
  • Doanh Nghiệp & Việc Làm
  • Hỏi Đáp
  • Giải Đáp Cuộc Sống

Copyright © 2023 CAO ĐẲNG CÔNG NGHỆ LADEC