ThanhNT Blog's

Computer, Networking, Embedded Systems, PCB Design

Embedded Development Posts

RTOS - Lắp thêm cánh cho vi điều khiển

Vi điều khiển (MCU) chính là trung tâm của hệ thống nhúng và sức mạnh của hệ thống này sẽ được tiêm thêm liều “doping” với một hệ điều hành thời gian thực RTOS (Real Time Operating System). Vậy RTOS là gì? RTOS là một hệ điều hành đa nhiệm trong đó các tác vụ được thực thi một cách song song đối với người dùng. Ở đây ta không đi sâu vào kiến trúc bên trong của Kernel, cách thức chuyển tác vụ,… mà tập trung vào giới thiệu cách thức triển khai một RTOS trên một platform của vi điều khiển.

Kinh nghiệm debug lỗi khi làm lập trình nhúng - Phần 1

Debug lỗi khi làm lập trình nhúng Đối với người lập trình nhúng, việc viết driver cho 1 ngoại vi (ví dụ USART, SPI, I2C, CAN…), giao tiếp giữa các module phần cứng, là công việc khá quen thuộc. Tuy nhiên, chúng ta cũng thường xuyên gặp những lỗi khá “vớ vẩn” làm mất rất nhiều thời gian và công sức. Đặc biệt là khi làm việc với 1 board mạch mới được thiết kế (ver 0.

Một số khái niệm khi làm việc với RTOS

Chú ý khi làm việc với RTOS Mutex Mutex là gì Trên một hệ điều hành thường có nhiều chương trình (hay tác vụ - task) chạy đồng thời. Mutex giúp ngăn chặn việc hai task cùng truy cập vào 1 tài nguyên (memory, register gọi chung là critical section) của hệ thống trong cùng một thời điểm. Ví dụ, ta có 1 cái FIFO, task 1 đang read FIFO, task 2 lại write FIFO, nếu task 1 chưa lấy xong phần dữ liệu cần thiết mà task 2 lại write đè vào đúng vị trí task 1 đang read, nó sẽ làm sai lệch dữ liệu mà task 1 đang đọc.

RTOS là gì - Nó hoạt động như thế nào?

RTOS là gì Khi chúng ta nghe thấy ai đó nhắc tới hệ điều hành (Operating System - OS) thì chúng ta sẽ nghĩ ngay tới chiếc máy tính chạy Windows XP, Windows 7, Windows 8 hay chạy một distro Linux và Android hoặc iOS cho điện thoại. Chúng ta biết đến hệ điều hành chủ yếu là dành cho máy tính. Tuy nhiên trong thực tế, có rất nhiều thiết bị điện tử có chạy một dạng hệ điều hành rút gọn bên trong nó.

5 Lý Do Bạn Nên Chọn Embedded Software

Có nên chọn Embedded Software Bài viết được blog lại từ itviecblog Dưới đây là bài phỏng vấn Timo Krokowski, Tổng Giám Đốc của HELLA Việt Nam, ông đã chia sẻ 5 lý do vì sao developer Việt Nam nên học Embedded Software. HELLA là công ty hàng đầu trong lĩnh vực embedded software của ngành công nghiệp tự động của Đức. Embedded software là gì? Embedded software là software được viết cho một mục đích cụ thể dựa vào một phần của hardware.

Cài lại firmware cho router Buffalo thông qua TFTP

Reflash phần mềm cho router Buffalo Phương pháp cài lại firmware cho router thông qua tftp sử dụng khi cần unbrick, cài lại firmware stock, hoặc khi router bị lỗi không thể cài firmware thông qua giao diện web. Bài viết này hướng dẫn cài lại firmware gốc (stock) từ Buffalo cho router WHR-HP-G300N sau khi đã được cài firmware DD-WRT trên hệ điều hành Windows. Chuẩn bị Tool TFTP: TFTP client hoặc TFTP Utility hoặc TFTPD32 đã bao gồm tftp client.

Lập trình STM32 - Cài đặt IDE và chương trình đầu tiên BlinkLed

Chương trình đầu tiên với STM32 Phần mềm Để bắt đầu vào làm việc với dòng STM32, ngoài công cụ hỗ trợ cấu hình là STM32CubeMX thì còn có phần mềm lập trình và biên dịch nữa. Các phần mềm hỗ trợ viết code và biên dịch nổi tiếng như Keil C, IAR, Cocos Code IDE… (Các bạn có thể dễ dàng tìm và tải về các phiên bản cũ mới của các phần mềm này trên Internet - Hiện tôi dùng Keil C ver 5).

Lập trình STM32 - Tạo Project mới với STM32CubeMX

Tạo Project với STM32CubeMX Như bài trước đã giới thiệu, STM32CubeMX là công cụ giúp khởi tạo phần cứng, ngoại vi, xung nhịp… cho vi điều khiển (MCU) STM32 một cách nhanh chóng. Sử dụng phần mềm này đã giúp mình có tốc độ tiếp cận với dòng vi điều khiển này phải nói là rất nhanh. Hầu như mình không cần phải nhớ bất cứ thanh ghi hay thiết lập từng bit, các API được hỗ trợ sẵn từ nhà sản xuất thực sự dễ dùng, và dễ tiếp cận.

STM32CubeMX - Công cụ hỗ trợ cấu hình MCU STM32

STM32CubeMX Khi bước đầu chuyển sang làm quen với dòng vi điều khiển ARM từ các dòng vi điều khiển truyền thống như AVR, PIC… chúng ta sẽ dễ cảm thấy bị choáng ngợp vì sự phức tạp và khổng lồ của nó. Nếu học ARM bằng tư duy của AVR hay PIC, nhớ từng register, từng công dụng của từng bit chắc chúng ta sẽ bỏ cuộc sớm. Thay vì phải nhớ từng bit buồn tẻ nhàm chán đó, các nhà sản xuất đã phát triển các thư viện/driver chuẩn cho các con chip của họ.

Xem Size code nạp vào VĐK trên CCS

Dung lượng code trên CCS Vi điều khiển là đơn vị xử lý cỡ nhỏ, có tài nguyên giới hạn. Vì vậy khi lập trình cho vi điều khiển, việc kiểm soát mức độ sử dụng tài nguyên là khá quan trọng. Xem dung lượng code nạp vào VDK trên IAR Với các dòng vi điều khiển chung của TI (Texas Instruments), nhà sản xuất có hỗ trợ luôn cả môi trường lập trình (IDE) là Code Composer Studio (CCS).