# Enable Ulog for FinSH

<figure><img src="/files/9jvQxOAsJwI7Ucey0oaR" alt=""><figcaption></figcaption></figure>

## Device driver

RT-Thread provides a set of I/O device framework. It is divided into three layers:

* I/O device management layer implements the encapsulation of device drivers.
* Device driver framework layer is an abstraction of the same kind of hardware device driver.
* Device driver layer is a set of programs that drive the hardware devices to work, enabling access to hardware devices.

## FinSH Console

FinSH is the command line component of RT-Thread. It provides a set of operation interfaces for users to call from the command line. It is mainly used to debug or view system information. It can communicate with a PC using serial/Ethernet/USB, etc. FinSH will read the device input command, parse and automatically scan the internal function table, find the corresponding function name, and execute the function. The response is output, the response is returned through the original path, and the result is displayed on the control terminal.

## Ulog Log

Ulog is a very simple and easy to use C/C++ log component. It can achieve the lowest ROM<1K, RAM<0.2K resource usage. For the operating system, because the complexity of the software is very large, the log component is almost standard part on the operating system. The log output is designed to be thread-safe and supports asynchronous output mode. The logging system is highly reliable and is still available in complex environments such as interrupted ISRs and Hardfault.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dev.tesa.or.th/tesa-developer/tesa-university-program/rt-thread-iot-os/university-program/edge-ai-workshop/enable-ulog-for-finsh.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
