Hi all,
I successfully build and ran RT-Thread (a small embedded OS) on the RISC-V Allwinner D1H SoC.
Experimenting on ClockworkPi DevTerm R-01 device and Sipeed Lichee RV board.
Also @jusentari made ClockworkPi uConsole R-01 display work in RTT (experimental parameters, use with caution).
Intention was to make RT-Thread portable terminal with working display and keyboard.
I manage to:
- Create a working LCD MIPI DSI Display driver with frame buffer.
- Create a working LCD RGB Display driver with frame buffer.
- Make some progress on a USB keyboard driver.
- Boot from SD card and communicate via UART
- Debugging with GDB
The code is available at: https://github.com/ylyamin/RT-Thread-on-Allwinner-D1H
If you enjoy brainteaser and some low-level stuff, you’re welcome.
Ready images for SD card:
- DevTerm R01: sd_image_devterm.img
- uConsole R01: sd_image_uconsole.img (experimental display parameters, use with caution)
- Sipeed Lichee RV: sd_image_lichee.img
Please note: The DevTerm/uConsole battery charging/discharging controller is not yet configured in the driver, so I’m unsure how it affects the battery. I suggest not using the battery with RT-Thread and powering it via USB instead.
I’m writing a series of articles covering the knowledge and experience I’ve gained:
- D1-1. Introduction - Motivation and intention.
- D1-2. Boot process - Existing Allwinner D1H bootloaders best practice in example with booting Linux and RT-Thread, also JTAG and GDB.
- D1-3. RT-Thread overview and Build - Overview of RT-Thread structure and libraries. Compile RT-Thread for Allwinner D1H platform.
- D1-4. Makefile and Hardware changes - My repository structure, Makefile and Hardware changes was needed to be done.
- D1-5. LCD Display driver - Display driver for DevTerm R-01, uConsole R-01 and Sipeed Lichee RV.
- D1-6. USB Keyboard - USB Keyboard driver for ClockworkPi DevTerm, still not working.
Finally, I dare to ask for help from the community, please:
I’m really stuck with the USB driver. It can detect device connections, but communication has not started.<br>
Perhaps someone would enjoy diving deep into the USB driver to solve this riddle. Ready for issue reports and pull requests.
Picture of LCD Display test in RT-Thread running on uConsole R-01:
Picture of LCD Display test in RT-Thread running on Devterm R-01: