Bài đăng

Featured Post

[RTOS-2] TASK MANAGEMENT

  Tại sao lại phải dùng RTOS ? Chia sẻ tài nguyên một cách đơn giản: cung cấp cơ chế để phân chia các yêu cầu về bộ nhớ và ngoại vi của MCU Dễ debug và phát triển: Mọi người trong nhóm có thể làm việc một cách độc lập, các lập trình viên thì có thể tránh được các tương tác với ngắt, timer, với phần cứng (cái này mình không khuyến khích lắm vì hiểu được phần cứng vẫn sẽ tốt hơn nhiều) Tăng tính linh động và dễ dàng bảo trì: thông qua API của RTOS,… Ở trong FreeRtos thì người ta coi “task” là “thread” nhưng bạn cần phải phân biệt chúng 1 cách rạch ròi: ·        Task : tập hợp các lệnh được tải vào bộ nhớ. Có thể hiểu đơn giản đây là 1 số đơn vị công việc hoặc mục tiêu cần phải hoàn thành. ·        Thread : là 1 đơn vị của CPU với bộ đếm chương trình và bộ nhớ ngăn xếp của riêng nó. Task states: Ready Suspended: vTaskSuspend(), vTaskResume() Running Blocked void Task(void *para) {        while (1...

[RTOS-1] Introduction

Hình ảnh
A real-time operating system (RTOS) is a program that schedules execution in a timely manner, manages system resources, and provides a consistent foundation for developing application code. Application code designed on an RTOS can be quite diverse, ranging from a simple application for a digital stopwatch to a much more complex application for aircraft navigation. Good RTOSes, therefore, are scalable in order to meet different sets of requirements for different applications. For example, in some applications, an RTOS comprises only a kernel, which is the core supervisory software that provides minimal logic, scheduling, and resource-management algorithms. Every RTOS has a kernel. On the other hand, an RTOS can be a combination of various modules, including the kernel, a file system, networking protocol stacks, and other components required for a particular application, as illustrated at a high level in the below figure. Although many RTOSes can scale up or down to meet appli...

[Linux Command] - Các lệnh cơ bản

Hình ảnh
Login into your Linux machine, and do the following using a terminal: Run  "pwd"  to check the present working directory If you are not in your home directory, run the command " cd " Run " cd /etc " Run " cd ~ " Check if you are back in your home directory? You should be. If not, you did something wrong. Run " cd /usr " Run " cd $HOME " Check if you are back in your home directory? You should be. If not, you did something wrong. tạo file: touch sửa file: edit/open filename đọc file: cat filename sao chép file: cp di chuyển: mv tail -n N đọc và in ra N dòng  less   in ra nội dung của một file theo từng trang grep -i   để tìm kiếm không phân biệt hoa thường hoặc  grep -r    để tìm kiếm trong toàn thư mục  find -iname   để tìm kiếm không phân biệt hoa thường  tar -cvf    tạo file nén (.tar) từ các file có sẵn.   tar -tvf   xem nội dung file nén (.tar).    tar -xvf   ...

[C programming language] Lesson 1. Introduction

1. History of C C (/siː/, as in the letter c) is a general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, while a static type system prevents unintended operations. –Evolved from two other programming languages BCPL and B –“Typeless” languages – Dennis Ritchie (Bell Laboratories) –Development language of UNIX – Hardware independent – 1989: ANSI standard – 1990: ANSI and ISO standard published ANSI/ISO 9899: 1990