Hằng số trong ‘Embedded C’

Một phần của tài liệu Bài giảng Xây dựng các hệ thống nhúng: Phần 2 (Trang 74 - 75)

3. The OS must be fast

3.5.15 Hằng số trong ‘Embedded C’

Dữ liệu khụng đổi (Constant Data): Dữ liệu khụng đổi thụng bỏo rằng dữ liệu được giữ bởi một biến luụn là hằng số và khụng thể được sửa đổi bởi ứng dụng. Cỏc hằng số được sử dụng như cỏc biến tỷ lệ, cỏc yếu tố tỷ lệ, cỏc hằng số tớnh toỏn khoa học khỏc nhau (vớ dụ: hằng số Plank), v.v. được biểu diễn dưới dạng dữ liệu khụng đổi. Hỡnh thức chung của khai bỏo một biến khụng đổi được đưa ra dưới đõy.

const data type variable name; or

data type const variable name;

const là từ khúa thụng bỏo trỡnh biờn dịch / trỡnh biờn dịch chộo mà biến khụng đổi. kiểu dữ liệu

cho kiểu dữ liệu của biến. Nú cú thể là int, char, float, v.v ... variable name là biến khụng đổi. E.g. const float PI = 3.1417; float const PI = 3.1417;

Cả hai cõu lệnh này đều khai bỏo PI là hằng số dấu phẩy động và gỏn giỏ trị 3.1417 cho nú. Biến số cũng cú thể được xỏc định bằng cỏch sử dụng chỉ thị tiền xử lý #define như được đưa ra dưới đõy.

#define PI 3.1417

/*No assignment using = operator and no ‘;’ at end*/

Con trỏ tới dữ liệu khụng đổi: Con trỏ tới dữ liệu khụng đổi là con trỏ trỏ đến dữ liệu chỉ đọc. Con trỏ trỏ đến dữ liệu cú thể được thay đổi nhưng dữ liệu khụng thể sửa đổi. Vớ dụ về con trỏ tới dữ liệu khụng đổi

const int* x; //Integer pointer x to constant data int const* x //Same meaning as above definition

Con trỏ liờn tục đến dữ liệu: Con trỏ liờn tục cú tầm quan trọng đỏng kể trong cỏc ứng dụng nhỳng C. Một hệ thống nhỳng đang được xem xột cú thể cú nhiều chip bờn ngoài khỏc nhau, như bộ nhớ dữ liệu, Đồng hồ thời gian thực (RTC), v.v. giao tiếp với bộ xử lý / bộ điều khiển đớch, sử dụng kỹ thuật ỏnh xạ bộ nhớ. Phạm vi địa chỉ được gỏn cho mỗi chip và cỏc thanh ghi của chỳng phụ thuộc vào thiết kế phần cứng. Tại thời điểm tự thiết kế phần cứng, phạm vi địa chỉ được phõn bổ cho cỏc chip khỏc nhau và phần cứng đớch được phỏt triển theo cỏc phõn bổ địa chỉ này.

213

// Constant character pointer x to constant/variable data char *const x;

/*Explicit declaration of character pointer pointing to 8bit memory location, mapped at location 0x3007; RTC example illustrated above*/

char *const x= (char*) 0x3007;

Con trỏ liờn tục đến dữ liệu khụng đổi: Con trỏ liờn tục trỏ đến dữ liệu khụng đổi được sử dụng rộng rói trong cỏc ứng dụng lập trỡnh nhỳng. Sử dụng điển hỡnh là đọc dữ liệu cấu hỡnh được giữ ở cỏc chip ROM được ỏnh xạ bộ nhớ ở dải địa chỉ cụ thể, Chỉ đọc cỏc thanh ghi trạng thỏi của cỏc chip khỏc nhau, bộ nhớ được ỏnh xạ ở một mức cố định địa chỉ. Cỳ phỏp khai bỏo một con trỏ khụng đổi đến dữ liệu khụng đổi được đưa ra dưới đõy.

/*Constant character pointer x pointing to constant data*/ const char *const x;

char const* const x; //Equivalent to above declaration

/*Explicit declaration of constant character pointer* pointing to constant data/ char const* const x = (char*) 0x3007;

Một phần của tài liệu Bài giảng Xây dựng các hệ thống nhúng: Phần 2 (Trang 74 - 75)

Tải bản đầy đủ (PDF)

(196 trang)