RTOS - Hầu hết giống như một thư viện

Trước kia, đã từng học rất nhiều thứ về hệ điều hành. Nhưng hầu hết những nguyên lý được nói đến đều lấy Windows, hoặc Linux(*Unix), hoặc Mac làm tham chiếu đến những nội dung được học. Ai cũng biết sẽ có một phần mềm hệ thống gọi là Kernel, nó rất quan trọng nó lập lịch các tiến trình, quản lý bộ nhớ, các driver… Thực sự cũng từng đọc code tham khảo (dành cho Academy của M$ về Windows NT), nhưng thực sự vẫn chưa có một hình dung tương đối về cái Kernel kia. ...

tháng 3 1, 2016

Một chút về RGB VGA, Digital RGB

MCU phải giao tiếp với chip ADV7401, tìm mãi tài liệu tiếng Việt mà không tìm được (chắc do tìm kém). Mất hơn 1 hôm mới hiểu được cơ bản chức năng của nó làm gì. Mô tả ngắn gọn ở đây để sau đỡ quên vậy: ADV7401 : Chip chuyển đổi tín hiệu truyền hình Analog (PAL, NTSC…) sang dạng số, hoặc số hóa tín hiệu RGB/VGA về dạng Digital RGB. ...

tháng 2 3, 2016

Hiểu thêm về HID Report Descriptor

Đang hì hục đọc sách các kiểu con đà điều để hiểu kĩ hơn về HID Report Descriptor (Đặc tả cấu trúc dữ liệu trao đổi của HID). Thì tìm được bài này, nó giải thích hầu hết những chỗ khó hiểu một cách dễ hiểu, và đặc biệt có ví dụ minh họa. Giờ xin dịch lại bài này một cách khái quát nhất. Vì để hiểu bài này cần biết đến một vài khái niệm về USB, về HID Device, nữa nên để xin tóm tắt nội dung bên dưới như sau. Qua giao tiếp USB, máy tính có thể giao tiếp với rất nhiều thiết bị từ USB Flash Memory (hay gọi là USB), chuột, bàn phím,..etc. Vì có rất nhiều thiết bị có thể kết nối được, nên để dễ phân biệt và dễ dàng cho việc phát triển Driver trên máy tính, người ta chia thành các lớp thiết bị. Có rất nhiều lớp không thể kể hết được, nhưng xin có 2 lớp chính đó là Mass Storage Device (chính là USB Flash Memory đấy), và HID Device (chính là chuột, bàn phím). ...

tháng 1 28, 2016

Bộ nhớ Flash

Để thành 1 bài thì hơi nhiều, những thôi đã để thành 1 bài thì vẫn phải viết. Lập trình với bộ nhớ Flash Nếu là Flash memory, khi lập trình nhất định phải có một thao tác xóa trước một thao tác ghi. Sau khi xóa, giá trị tất cả các ô nhớ là 1, tức là nếu đọc ra ta sẽ thấy toàn 0xFF thôi. Serial Flash Có rất nhiều loại Flash, nhưng trên các ứng dụng embedded thì Serial Flash được sử dụng phổ biến nhất. Vì giao tiếp được bằng các chuẩn Serial như SPI, I2C nên nó dễ dàng ghép nối với các chip trên board. ...

tháng 1 25, 2016

USB cho Dev (Chp.01 - Giới thiệu)

USB - Một chuẩn giao tiếp phổ biến nhất (tính đến 2016), hãy cùng tìm hiểu một chút về nó. Bài này không phải dành cho người sử dụng bằng nhứng con số về tốc độ, hay cách cắm vật lý. Bài này là một bài dịch, mình thấy cần rất hữu ích khi bắt đầu phát triển sử dụng USB. Link gốc tại http://www.beyondlogic.org/usbnutshell/usb1.shtml Tóm tắt về USB Hiểu chuẩn USB để sử dụng trong phát triển Nếu bạn là người bắt đầu công việc phát triển sử dụng USB, thì quả thật nó không dễ dàng gì. Có đến 650 trang tài liệu đặc tả USB 2.0 specification, mà đó mới chỉ là mô tả chuẩn chung thôi. Nếu phát triển một thiết bị cụ thể, giả sử là HID (bàn phím, chuột..etc) thì có khi bạn phải đọc thêm 97 trang tài liệu đặc tả thiết bị USB Class Standards nữa. Nếu bạn là nhà phát triển Driver cho phía Host, thì bạn phải số tài liệu tương đương. Nhưng thật ra mà nói, chẳng có gì ở mấy cái tài liệu đặc tả đâu. ...

tháng 1 25, 2016

Khái quát về FAT

Trong quá trình porting sang hệ điều hành ITRON-based (NORTi), đã có dịp tìm hiểu về FAT, thấy bài của anh ELMちゃん này đầy đủ những thứ mình muốn biết về FAT nên sẽ dịch lại cả bài ở đây. Link gốc: http://elm-chan.org/docs/fat.html Trong tài liệu này, về cơ bản là dựa trên tài liệu vể FAT32 Spec , nhưng sẽ được giản luợc và bô sung thêm phần giải thích khái niệm mà bản gốc không có. Trong thực tế, các hệ thống chuẩn (DOS/Windows) cũng hoạt động không hoàn toàn giống với tài liệu Spec, tôi sẽ giải thích các khái niệm dựa trên hoạt động thực tế. Thêm một điều nữa là, trong tài liệu có thể có những nội dung theo ý cá nhân của tôi, nên khi triển khai hệ thống thực tế thì cần confirm chắc chắn yêu cầu thực tế rồi mới làm. ...

tháng 12 27, 2015

[OE] Tại sao vẫn dùng FAT

Bài hôm nay nói về một hệ thống file được sử dụng khá nhiều trên các phần mềm chạy trên mạch. Dù hiện nay có rất nhiều hệ thống file được nói đến như NTFS, Ext3, Ext4…Hầu hết những hệ thống file đó được sử dụng chủ yếu trên các máy có năng lực tính toán cao và khả năng lưu trữ lớn. Thế còn với những máy có năng lực tính toán hạn chế, dung lượng lưu trữ nhỏ thì sẽ sử dụng hệ thống file nào. Theo ý kiến cá nhân, hầu hết sẽ là FAT, một hệ thống file được ra đời từ những năm 1970. ...

tháng 12 27, 2015

[USB]Các khái niệm về USB

Kết nối USB, chắc chắn ai cũng biết. Mỗi người đểu sở hữu ít nhất một thiết bị có kết nối này. Tôi cũng đã từng nghĩ nó sẽ khá dễ dàng để hiểu, để lập trình giống như người dùng vẫn hiểu về nó. Đúng là với người dùng cuối, một thiết bị có kết nối thì khả năng có nó có thể kết với máy tính như smartphone, máy nghe nhạc, bộ sạc…. rất dễ hiểu, dễ gần. ...

tháng 12 22, 2015

Giao thức MQTT

Bài này dự là sẽ dịch lại đặc của giao thức MQTT này, nhằm có một cách hiểu tổng quát về MQTT protocol. Link gốc : http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html Update 2017/03/24: Bản dịch của MQTT đã được chuyển sang địa chỉ sau: http://minatu2d.github.io/

tháng 8 4, 2015

Cơ bản về pthread

Ngày trước, khi tìm hiểu về Java, rồi Qt, nghe đến thuật ngữ đa nền (multi-platform). kì thực cái multi platform đó sẽ được phát triển như thế nào. Nó có thực sự dễ dàng như họ quảng cáo? Họ thường quảng cáo rằng, chỉ cần thay đổi cấu hình bằng một vài click chuột thì có thể build lại một dự án bất kì của Qt từ OS này sang OS khác. ...

tháng 7 16, 2015