6. Trace Hook Macros
PHẦN III CÁC BƯỚC THIẾT KẾ ỨNG DỤNG MINH HỌA
Hình 3.1: Thiết kế mô phỏng ứng dụng -Mạch mô phỏng gồm: 1 VĐK Atmega 128 8 Transitor NPN 8 Điện trở thuần 8 LED đơn
Bộ tạo dao động gồm thạch anh và 2 tụ
-Nguyên lý hoạt động:
Khi được tác động bằng xung ra từ chân VĐK, cực B của Transitor sẽ mở nếu mức điện áp ra tương ứng là 1, và sẽ đóng nếu điện áp ra là 0. Khi transitor mở, dòng điện từ nguồn sẽ qua transitor, xuống qua trở, gây sụt áp trên LED làm led sáng. Khi transitor đóng, điện áp trên LED bằng 0, LED không sáng.
III.2 LỰA CHỌN CẤU HÌNH CHO HĐH QUA FreeRTConfig.h
Hình 3.2: Cấu hình HĐH bằng FreeRTOS.h
File FreeRTConfig.h là file cấu hình cho HĐH, sau đây là chức năng của các dòng lệnh trong FreeRTConfig.h
1,configUSE_PREEMPTION
Đặt là 1 nếu sử dụng hạt nhân ưu tiên, 0 nếu dùng hạt nhân hợp tác
2,configUSE_IDLE_HOOK
đặt là 1 nếu sử dụng IDLE_HOOK, 0 nếu không sử dụng
3,configUSE_TICK_HOOK
đặt là 1 nếu sử dụng một TICK_HOOK, 0 nếu không sử dụng
4,configCPU_CLOCK_HZ
đặt tần số đồng hồ cho lõi xử lý , giá trị này dùng để cấu hình thiết bị ngoại vi
5,configTICK_RATE_HZ
đặt tần số đánh dấu ngắt của RTOS
đánh dấu ngắt để đo thời gian, tất cả các ứng dụng của RTOS đều sử dụng tần số 1000Hz
6,configMAX_PRIORITIES
đặt số ưu tiên lớn nhất cho các task
7,configMINIMAL_STACK_SIZE
đặt kích cỡ của stack đã được sử dụng bởi idle task, không nên đặt thấp hơn khuyến cáo trong ứng dụng bạn tải về cho cổng bạn sử dụng
8,configTOTAL_HEAP_SIZE
tổng số lượng Ram có sẵn cho hạt nhân sử dụng
9,configMAX_TASK_NAME_LEN
chiều dài tối đa cho tên các task , khi task được tạo ra, bao gồm cả ký tự null
10,configUSE_TRACE_FACILITY
đặt 1 nếu muốn sử dụng trace thông dụng, đặt 0 nếu sử dụng trace theo dõi, nếu là trace theo dõi thì cần sung cấp bộ đệm
11,configUSE_16_BIT_TICKS
đánh dấu sự gián đoạn của hạt nhân kể từ khi bắt đầu
tham số này kiểm soát task ở độ ưu tiên cho idle, nó ngăn cản các idle task từ khi kết thúc thời gian xử lý của process trước đến process sau.
13,configUSE_MUTEXES
đặt 1 nếu sử dụng mutex ,hoặc 0 nếu không sử dụng
14,configUSE_RECURSIVE_MUTEXES
đặt 1 nếu sử dụng mutex đệ quy ,hoặc 0 nếu không sử dụng
15,configUSE_COUNTING_SEMAPHORES
đặt 1 nếu sử dụng đếm semaphore, nếu không thì đặt 0
16,configUSE_ALTERNATIVE_API
đặt 1 nếu dùng hàng đợi thay thế, 0 nếu không dùng
17,configCHECK_FOR_STACK_OVERFLOW
sử dụng để phát hiện tràn stack
18,configQUEUE_REGISTRY_SIZE
Việc xếp hàng đăng ký có hai mục đích khác nhau, cả hai điều này được liên kết với các hạt nhân nhận thức được gỡ lỗi:
Nó cho phép một textual tên để được liên kết với một hàng đợi cho các hàng dễ dàng xác định trong vòng một gỡ lỗi GUI.
Nó chứa các thông tin theo yêu cầu của một debugger để xác định vị trí xếp hàng từng đăng ký và semaphore.
Việc xếp hàng đăng ký không có mục đích, trừ khi bạn đang sử dụng một hạt nhân nhận thức được debugger.
19, configUSE_CO_ROUTINES
đặt 1 nếu muốn dùng co-routine, đặt 0 nếu không muốn dụng, nếu dùng thì cần phải có tệp coutine.c trong chương trình
20, configMAX_CO_ROUTINE_PRIORITIES đặt độ ưu tiên tối đa cho co-routine
21, configKERNEL_INTERRUPT_PRIORITY và configMAX_SYSCALL_INTERRUPT_PRIORITY
III.3 VIẾT PHẦN ỨNG DỤNG BẰNG AVR Studio
Hình 3.3: Viết ứng dụng bằng AVR Studio
Để viết phần mềm ứng dụng trên HĐH, bạn phải cài AVR Studio và WinAVR, sau đó bạn khởi động AVR Studio, và lập trình ứng dụng.
III.4 DỊCH PHẦN ỨNG DỤNG THÀNH FILE .hex
Để dịch phần ứng dụng, từ cửa sổ AVR Studio bạn chọn Build =>
Build
Hình 3.4: Cửa sổ AVR Studio