BOOTLOADER ARDUINO LÀ GÌ

     

Trong vài ba năm qua, vi điều khiển và tinh chỉnh đã trở thành một trong những phần thiết yếu ớt trong cuộc sống đời thường hàng ngày của bọn chúng ta. Bạn có thể không nhận thấy, tuy thế nó vẫn thực hiện một số nhiệm vụ về tối giản để nâng cao cuộc sống hàng ngày của chúng ta. Từ cpu 8-bit đơn giản điều khiển đèn điện thông minh cho tới bộ xử lý bộc lộ kỹ thuật số 32-bit (DSP) vào TV và hộp giải mã tín hiệu số, giúp họ có thêm phương tiện vui chơi giải trí và phương tiện kỹ thuật số. Nếu không tồn tại vi điều khiển, cuộc sống đời thường của bọn họ không chỉ nhát phần vui chơi giải trí mà còn mất đi kĩ năng kiểm soát. Với nhu cầu gia tăng làm tăng sự cách tân và phát triển của các sản phẩm dựa trên vi điều khiển, hàng tỷ đơn vị vi tinh chỉnh và điều khiển đã được buôn bán mỗi năm.

Bạn đang xem: Bootloader arduino là gì

 

Bây giờ câu hỏi đặt ra là, điều gì sẽ xẩy ra khi sản phẩm tỷ sản phẩm dựa bên trên vi tinh chỉnh được sản xuất và bán, và việc upgrade firmware trở thành ưu tiên mặt hàng đầu? Mỗi máy đã buôn bán có rất cần phải trả lại nhà chế tạo mỗi khi có nhu cầu nâng cấp firmware không? Câu trả lời cụ thể cho câu hỏi này là không! Và đấy là một trong số những lý do đặc trưng nhất nguyên nhân một hệ thống dựa bên trên vi điều khiển có bootloader bên trên bo mạch.

 

Bootloader là gì

Bootloader là một trong ứng dụng tất cả mục tiêu đó là nâng cấp hoặc sửa đổi phần mềm khối hệ thống mà không đề nghị sự can thiệp của các công cụ nâng cấp chương trình cơ sở chuyên dụng. Bootloader tất cả thể có nhiều chức năng, nhưng lại nó chủ yếu được sử dụng để thống trị ứng dụng. Nó cũng rất có thể sử dụng những giao thức không giống nhau như UART, CAN, I2C, I2S, Ethernet hoặc USB để cấu hình thiết lập giao tiếp và ban đầu nâng cấp firmware. Một ví dụ nổi bật là bootloader trong bo Arduino, được cấu hình để flash ứng dụng ứng dụng trong bộ nhớ lưu trữ flash của cpu ATMega.

 

Tìm hiểu khối hệ thống bootloader

*

Bootloader có không ít kích khuôn khổ và có thể được minh bạch theo các loại tác vụ cơ mà nó thực thi. Mã phân nhánh lúc khởi động quyết định thực thi mã bootloader hay mã ứng dụng bằng cách kiểm tra một chân GPIO lúc khởi động. Trong một hệ thống phức tạp hơn, bootloader tự thiết lập vào bộ nhớ cùng cùng với mã ứng dụng, tiếp nối nó kiểm tra những tham số ban đầu và tính trọn vẹn của hệ thống. Sau khi hoàn tất, nó vẫn quay trở lại quy trình thực thi mã ứng dụng. Đây là lý do tại sao các bootloader chứa mã phân nhánh.

Xem thêm: Cách Cài Nút Home Cho Iphone 8 Plus Và Iphone X, Access Denied

 

Ngay cả khi ứng dụng đang chạy, nó có thiết kế đến mức rất có thể yêu cầu upgrade firmware, tiếp nối nó sẽ triển khai các thao tác vệ sinh hệ thống nên thiết. Nó vẫn reset chip bằng cách đặt những giá trị đã biết vào thanh ghi watchdog. Ko kể ra, ứng dụng đưa ra tất cả các hướng dẫn cần thiết cho mã phân nhánh để mang thiết bị vào chế độ bootloader.


*

 

Khi bootloader tải vào bộ nhớ, nó sẽ bước đầu khởi tạo thành hướng dẫn cơ bản và các thiết bị nước ngoài vi để chuẩn bị cho việc upgrade firmware. Các thiết bị nước ngoài vi thường là đồng hồ thời trang hệ thống, ngắt và những kênh liên lạc, và cỗ lập lịch. Hồ hết thứ này được cho phép bootloader đồng ý hướng dẫn từ phía bên ngoài và nó bắt đầu quá trình nâng cấp; sau thời điểm hoàn tất, nó sẽ reset chip và lúc khởi cồn lại, nó sẽ đưa sang chế độ hoạt cồn bình thường.

Xem thêm: Làm Cách Lưu Trữ Tin Trên Facebook ? Cách Khôi Phục Kho Lưu Trữ Tin Trên Facebook

 

Lập trình cỗ nhớ

Chúng ta sẽ khám phá một chút kỹ năng về cấu trúc bộ nhớ lưu trữ và bí quyết lập trình của nó. Để làm điều này, chúng ta sẽ lấy một lấy một ví dụ về vi điều khiển và tinh chỉnh AVR, mà lại trước đó, hãy nắm rõ một số thuật ngữ rõ ràng mà bạn cũng có thể biết hoặc hoàn toàn có thể không biết. Mọi loại vi điều khiển đều có sẵn một bộ nhớ không thay đổi được dùng để làm lưu trữ chương trình. Bộ nhớ lưu trữ được sử dụng phổ biến nhất được call là bộ lưu trữ flash. Nó được phân thành các phần bé dại hơn khác nhau. Phần nhỏ nhất được gọi là một trang. Những trang được kết hợp và làm cho một cấu trúc bộ lưu trữ được gọi là 1 trong khu vực. Các quanh vùng được bố trí để tạo nên thành các kết cấu lớn rộng được call là những khối. Mỗi cỗ vi điều khiển đều không giống nhau về cách thao tác làm việc các khối này. Nhưng hầu như các bộ vi tinh chỉnh sẽ được cho phép bạn ghi một byte tuyệt nhất tại một thời điểm.

 

Bootloader trong AVR:

 

AVR đi kèm theo với một bộ nhớ lưu trữ được phân thành hai phần, một trong những phần ứng dụng, một phần bootloader. Phần vận dụng chứa mã dành riêng cho ứng dụng và phần bootloader gồm thể đựng nhiều bootloader khác nhau. Trong AVR, phần này có thể được cấu hình bằng cách thiết lập các cầu chì. Bạn có thể đặt không gian bộ nạp khởi động quan trọng theo yêu cầu của họ hoặc đặt nó được sử dụng cho mã ứng dụng. 

 

Khi AVR bước vào bootloader. Đầu tiên, nó xóa bộ nhớ trang với lấy câu chữ trang new từ UART, sau đó sẽ che đầy bộ đệm trang. Sau khi viết xong, nó sẽ chờ thêm trang từ UART; giả dụ một trang mới gồm sẵn, vượt trình bước đầu lại một lần nữa; nếu không, chương trình sẽ vào phần RWW (Read While Write) và hoàn thành hoạt động. Đây là phiên bản đơn giản hóa của chuyển động bootloader.