Bài giảng Lập trình hệ thống nhúng - Bùi Quốc Bảo
lượt xem 24
download
Hệ thống nhúng (Embedded system) là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay một hệ thống mẹ. Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao....
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hệ thống nhúng - Bùi Quốc Bảo
- L P TRÌNH H TH NG NHÚNG BÙI QU C B O B MÔN K THU T ðI N T -ðH BK TP.HCM M c tiêu môn h c T mình thi t k ph n m m cho m t h th ng nhúng dùng 1 hay nhi u CPU d a trên vi ñi u khi n (8051, ARM) d a trên m t ph n c ng có s n. Ph n m m ñư c thi t k có c u trúc, d a trên ngôn ng c p cao (C) ho c s d ng c h p ng và C. N m ñư c lý thuy t cơ b n v h ñi u hành nhúng; s d ng ñư c các h ñi u hành nhúng cơ b n (FreeRTOS). 1
- Tài li u tham kh o C and the 8051, 3rd Edition, Thomas Schultz Embedded C, Michael J Pont ðánh giá k t qu Gi a kỳ: 20% Bài t p l n: 30% Cu i kỳ: 50% 2
- Khái ni m v h th ng nhúng H th ng nhúng là s k t h p gi a ph n c ng máy tính và ph n m m, ñư c thi t k ñ th c hi n m t ch c năng chuyên bi t. Ngư i s d ng m t h th ng nhúng không c n bi t r ng h th ng có m t máy tính bên trong VD: remote TV, lò vi sóng,… Vi x lý trong h th ng nhúng H 8086 PowerPC MIPS H 8051 PIC … Tùy thu c vào ng d ng và giá thành, ngư i thi t k quy t ñ nh lo i vi x lý dùng trong h th ng nhúng. 3
- Vi x lý dùng trong môn h c này 8051 ARM Ngôn ng l p trình Assembler C 4
- Lý do s d ng ngôn ng C C cho phép l p trình có c u trúc. Ngôn ng C cho phép d dàng truy c p ñ n c u trúc ph n c ng (ví d thông qua con tr ) C ñư c dùng r t ph bi n. H u h t các h vi x lý ñ u ñư c h tr trình biên d ch C. R t nhi u taì nguyên tham kh o (sách, ví d , website …) v l p trình C. Lý do dùng h p ng (Assembler) Cho phép vi t nh ng chương trình có kích thư c nh nh t và ch y v i t c ñ nhanh nh t. Thích h p cho nh ng ng d ng có yêu c u nghiêm ng t v th i gian. 5
- C operator = assignment statement @ address of ? selection < less than > greater than ! logical not (true to false, false to true) ~ 1's complement + addition - subtraction * multiply or pointer reference / divide % modulo, division remainder | logical or & logical and, or address of ^ logical exclusive or . used to access parts of a structure C operator == equal to comparison = greater than or equal to != not equal to > shift right ++ increment -- decrement && boolean and || boolean or 6
- += add value to -= subtract value to *= multiply value to /= divide value to |= or value to &= and value to ^= exclusive or value to = shift value right %= modulo divide value to -> pointer to a structure Comments (chú thích) // This is a comment line /* This is a comment block */ 7
- Preprocessor Directives (ch d n ti n x lý) ðư c x lý ñ u tiên trong quá trình biên d ch B t ñ u b ng t khóa # VD: #include “LCD.h" #define LCD *(unsigned char volatile *)(0x1003) Key word (T khóa) asm Insert assembly code auto Specifies a variable as automatic (created on the stack) break Causes the program control structure to finish case One possibility within a switch statement char 8 bit integer const Defines parameter as constant in ROM continue Causes the program to go to beginning of loop default Used in switch statement for all other cases do Used for creating program loops double Specifies variable as double precision floating point else Alternative part of a conditional extern Defined in another module float Specifies variable as single precision floating point 8
- Key word (T khóa) Used for creating program loops for Causes program to jump to specified goto location Conditional control structure if 16 bit integer int 32 bit integer long store the variable onto the CPU register if register space on the register is available Leave function return 16 bit integer short Key word (T khóa) signed Specifies variable as signed (default) sizeof Built-in function returns the size of an object static Stored permanently in memory, accessed locally struct Used for creating data structures switch Complex conditional control structure typedef Used to create new data types unsigned Always greater than or equal to zero void Used in parameter list to mean no parameter volatile Can change implicitly while Used for creating program loops 9
- D u ch m ph y (semicolons) Ch m d t câu l nh VD: For (i=0;i
- D u ph y (Commas) Dùng ñ ngăn cách các ph n t . VD: unsigned short beginTime, endTime, elapsedTime; ; short add(short x, short y) D u nháy (Apostrophes) Dùng ñ xác ñ nh ký t VD: mych='a' ; 11
- D u nháy kép (Quotation marks ) Dùng ñ xác ñ nh chu i (string) VD: unsigned char Name[] = “embedded"; D u ngo c nh n (braces) Dùng ñ b t ñ u và k t thúc m t kh i câu l nh VD: For (i=0;i
- D u ngo c vuông (Brackets ) Dùng ñ ch kích thư c c a m ng (array) và ch s VD: short fifo[100]; I = fifo[0]; D u ngo c tròn (Parentheses ) Bao quanh danh sách tham s VD: add(x,y); Xác ñ nh m c ñ ưu tiên th c thi c a các bi u th c VD: X = (17+3)/2 ; 13
- Bi n tĩnh (Static) Bi n tĩnh là bi n mà giá tr c a nó ñư c gi trong su t quá trình chương trình ch y, nhưng ch truy c p ñư c bên trong chương trình mà nó ñư c ñ nh nghĩa Bi n tĩnh char sumIt(void) { static char sum = 0; sum = sum + 1; return sum; } void main(void) { char i; char result; for(i=0;i
- T khóa volatile T khóa volatile mô t 1 bi n mà giá tr có th thay ñ i không ñoán trư c ñư c. Bi n volatile ñư c dùng ñ mô t : Các ngo i vi ñư c thi t k theo ki u memory-mapped Bi n toàn c c mà b thay ñ i giá tr trong trình ph c v ng t Bi n toàn c c ñư c truy c p b i nhi u tác v trong các ng d ng ña tác v T khóa volatile void main(void) { unsigned char xdata *p = (char xdata *) 0x8000; while (*p == 0); } void main(void) { volatile unsigned char xdata *p = (char xdata *) 0x8000; while (*p == 0); } 15
- T khóa extern Dùng ñ ch bi n ñư c ñ nh nghĩa trong 1 module khác. VD: Trong module LCD.h, khai báo bi n char LCD_value; Trong module main.h extern char LCD_value; Bi n ñư c kh i t o trư c short Temperature = -55; const unsigned short Steps[4] = {10, 9, 6, 5}; char Name[4] = "Jon"; char Name[6] = "Jon"; char Name[] = "Jon"; char *NamePt = "Jon"; 16
- Con tr (pointer) Con tr là 1 bi n ch a m t ñ a ch Giá tr c a con tr có th thay ñ i ñư c Question: Khai báo bi n a: int a; ð a ch c a bi n a: &a có ph i là con tr hay không? Con tr int *p; p = 0x8000; int *p = (int *)0x8000; int k; p = &k; #define SW *(unsigned char volatile *)(0x2000) 17
- Phép toán v i con tr Phép c ng: Con tr luôn ch vào ñ a ch ñ u c a m t ñ i tư ng (object). C ng 1 vào con tr làm nó ch ñ n ñ i tư ng ti p theo. Phép so sánh: Khi so sánh 2 con tr , giá tr chúng ñang mang ñư c coi như s không d u p int *p; 0x2000 0x01 0x00 0x2001 int *k; k 0x02 0x2002 p = 0x2000; 0x00 0x2003 *p = 1; k = p+1; *k = *p+1; 18
- M ng và chu i (array and string) M ng là t p h p các bi n gi ng nhau có cùng tên g i. Các ph n t c a m ng ñư c xác ñ nh b ng ch s (b t ñ u t 0). Kích thư c c a m ng là c ñ nh. VD: int a[4] = {1,2,3,4}; int b = a[0]; M ng và chu i (array and string) Chu i tương t m ng, ngo i tr : Chu i có th có s lư ng ph n t thay ñô . Các ph n t c a chu i là ký t ASCII k t thúc b ng giá tr 0. Chu i ñư c khai báo như 1 con tr ki u char char * mystring = “embedded”; 19
- Ki u c u trúc (structure) M t structure là t p h p c a nhi u bi n. Các bi n trong struct có th khác ki u nhau. struct theport { int mode; // 0 for I/O, 1 for in only -1 for out only unsigned char volatile *addr; // pointer to its address unsigned char volatile *ddr; // pointer to its direction reg }; struct theport PortA, PortB, PortC; Structure struct theport { int mode ; // 0 for I/O, 1 for in only -1 for out only unsigned char volatile *addr ; // pointer to its address unsigned char volatile *ddr ; // pointer to its direction //reg } PortA, PortB, PortC; 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hệ thống nhúng sử dụng vi điều khiển MSP430 - TS. Lê Mạnh Hải
120 p | 312 | 53
-
Bài giảng Tích hợp hệ thống: Bài 3 - ĐH Kinh tế Tp HCM
21 p | 155 | 21
-
Bài giảng Lập trình hệ nhúng: Chương 8 - Phạm Ngọc Hưng
59 p | 108 | 19
-
Bài giảng Lập trình hướng đối tượng - Huỳnh Thị Thu Thủy
48 p | 157 | 17
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Tổng Quan về phương pháp luận hướng đối tượng
33 p | 170 | 15
-
Bài giảng Lập trình trên Windows: Chương 2 - Trần Minh Thái (Phần 1)
141 p | 100 | 15
-
Bài giảng Lập trình hệ điều hành: Chương 1 - Hà Duy Anh
52 p | 125 | 14
-
Bài giảng Lập trình hướng đối tượng: Chương 9 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
59 p | 97 | 10
-
Bài giảng Lập trình hệ nhúng: Chương 7 - Phạm Ngọc Hưng
13 p | 81 | 10
-
Bài giảng Lập trình hệ điều hành: Chương 4 - Hà Duy Anh
44 p | 98 | 8
-
Bài giảng Lập trình hệ nhúng: Chương 5 - Phạm Ngọc Hưng
12 p | 85 | 6
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - TS. Trương Quốc Định
24 p | 66 | 5
-
Bài giảng Lập trình mạng: Chương 5 - Phạm Trần Vũ
32 p | 59 | 4
-
Bài giảng Lập trình hệ điều hành: Chương 2 - Hà Duy Anh
45 p | 92 | 3
-
Bài giảng Lập trình mạng - Chương 5: Lập trình với hệ thống web
41 p | 30 | 3
-
Bài giảng Lập trình mạng - Chương 6: Hệ thống email
46 p | 29 | 3
-
Bài giảng Lập trình môi trường Window - Chương 3: Lập trình GUI
114 p | 25 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn