Embedded Software and Hardware Development: The Importance of Quality Documentation

I am Lao Wen, an embedded engineer who loves learning.

Follow me to become better together!

In the previous article, we had a preliminary understanding of the data framework for the Feilin OK3588-C development kit. For the content of the previous article,
you can click here: The performance of embedded ARM chips is getting more explosive!
Due to my usual embedded development work, I mainly focus on embedded Linux and Qt application development,
therefore, in this article, we will try to refer to the embedded Linux + Qt related materials provided by Feilin, to write a Qt application and run it on the OK3588-C development board.

Embedded Software and Hardware Development: The Importance of Quality Documentation

The Feilin OK3588-C development board, along with the development materials related to embedded Linux + Qt, mainly resides in the folder “OK3588-C_Linux5.10.66+Qt5.12.8_User_Materials_R2”,
the detailed description of the contents in the folder is shown in the image below. Embedded Software and Hardware Development: The Importance of Quality Documentation
The development manuals written by Feilin mainly include the following three documents:
1. “OK3588-C_Linux_User_Compilation_Manual_V1.0_20230327.pdf”, this document mainly introduces the software environment setup for the Feilin OK3588-C development board, including virtual machine installation, installing cross-compilers, configuring the Qt compilation environment, and compiling related SDK code.
2. “OK3588-C_Linux5.10.66+Qt5.12.8_User_Manual_V1.0_20230327.pdf”, this document mainly focuses on the OK3588-C development board, detailing how to quickly power on the OK3588-C development board, how to test the board’s functions, and test multimedia hardware encoding and decoding. The last chapter describes how to burn the system through OTG and TF cards.
3. “Pin Multiplexing Comparison Table & Pin Function Comparison Table Download Information.pdf”, this document mainly provides a download link for a table describing the pin functions of the core board. If developers want to make their own functional baseboard or want to understand the function multiplexing of certain pins, they can download the table via the link.
Setting Up the Development Environment
Referring to “OK3588-C_Linux_User_Compilation_Manual_V1.0_20230327.pdf”, Feilin provides a complete Ubuntu 20.04 virtual machine image,
if developers do not want to set up the OK3588-C development environment themselves, they can directly use this pre-configured virtual machine.
I have always preferred to set up my own Ubuntu virtual machine and configure the development environment, so I directly referred to Chapter 3 of this document and installed and configured Ubuntu 20.04 myself.
The key content of this chapter is to install the libraries required for compiling the Linux system on the Ubuntu system, as shown in the image below.
Embedded Software and Hardware Development: The Importance of Quality Documentation
When I was installing the above dependency libraries on the Ubuntu 20.04 system, it prompted that the repo and python-pip packages could not be found,
the solution is to manually install the repo tool (there are many reference materials online) and replace python-pip with python3-pip.
According to the installation method suggested in the document, install the cross-compilation toolchain. After installation, you also need to execute the export command in the serial terminal to write the toolchain path into the PATH environment variable,
or you can do it all at once by directly modifying the ~/.bashrc file, so that every time you start the bash terminal, the path of the cross-compiler is automatically configured, as shown in the image below.
Embedded Software and Hardware Development: The Importance of Quality Documentation
Restart the bash terminal and execute the command aarch64-linux-gcc –version to check the version of the cross-compiler corresponding to the OK3588-C, indicating that the cross-compiler has been successfully installed, as shown in the image below.
Embedded Software and Hardware Development: The Importance of Quality Documentation
Compiling the SDK Software Package for the Development Board
Referring to the content of Chapter 4, OK3588_Linux_fs.tar.bz2 is the SDK software package for the development board. After unpacking, directly compile this software package. The compilation speed depends on the performance of the computer. After successful compilation, the necessary image files for the OK3588-C development board will be generated in the rockdev directory, as shown in the image below.
Embedded Software and Hardware Development: The Importance of Quality Documentation
You can refer to Chapter 5 of the document “OK3588-C_Linux5.10.66+Qt5.12.8_User_Manual_V1.0_20230327.pdf”,
using OTG or TF card methods to burn the successfully compiled image files into the OK3588-C development board for operation.
The compiled image files, with the root-fs file system, support Qt5.12.8 by default, and in the reference materials provided by Feilin, it also explains how to use Qt Creator to set up the development environment for embedded Linux + Qt.
Writing Test Applications
We can try to compile a Qt project to test the Qt runtime environment of the development board. The download link for the project is:https://gitee.com/embediot/smartlight_system.git
Execute the git clone command to download the Qt sample project to the Ubuntu system, as shown in the image below.
Embedded Software and Hardware Development: The Importance of Quality Documentation
Then use the Qt Creator software configured with the cross-compilation suite to open the Qt project, perform cleaning, execute qmake, and rebuild. This series of operations can basically compile successfully, as shown in the image below.
Embedded Software and Hardware Development: The Importance of Quality Documentation
After successful compilation, you can find the application firmware of the project in the build-xxxx-Debug directory,
use the file command to check the firmware information, indicating that the firmware was generated through cross-compilation, as shown in the image below.
Embedded Software and Hardware Development: The Importance of Quality Documentation
You can use USB drives, SD cards, ADB, SFTP, and other file transfer methods to transfer the executable file of smartlight_system to the development board for execution,
connect to an HDMI display, and the executable file running on the OK3588-C development board is shown in the image below.

Embedded Software and Hardware Development: The Importance of Quality DocumentationImage 1: Boot startup screen

Embedded Software and Hardware Development: The Importance of Quality DocumentationImage 2: Interface 1

Embedded Software and Hardware Development: The Importance of Quality DocumentationImage 3: Interface 2

Embedded Software and Hardware Development: The Importance of Quality DocumentationImage 4: Interface 4

In summary, following the entire development process based on the materials provided by Feilin for the development board, we completed the evaluation of the embedded Linux + Qt environment for the OK3588-C development board, from setting up the development environment to compiling the software SDK package, writing and testing the Qt application.

Overall, the materials provided for the Feilin OK3588-C development board (or core board) are more suitable for engineers with embedded Linux experience for product development,

and not very suitable for beginners to get started. This development board (or core board) is aimed at commercial or industrial-level product development, rather than educational entry-level use.

Embedded Software and Hardware Development: The Importance of Quality Documentation

Regarding the materials accompanying this development board (or core board), currently, u-boot does not provide source code and lacks content for customizing root-fs through buildroot,
but it is believed that Feilin’s official team has comprehensively weighed the market positioning of the entire product when configuring various development materials.
From the hardware craftsmanship, quality, and supply cycle of the development board (or core board), it is believed that this development board (or core board) will be worth more than its price and will not disappoint engineers.
Disclaimer: The above embedded Linux + Qt related documents and content are provided by Feilin and this public account for reference and learning purposes only. Developers who need to use them for commercial purposes should comply with the relevant agreements of Qt.

-END-

Previous Recommendations: Click the image to jump to read
Embedded Software and Hardware Development: The Importance of Quality Documentation

The performance of embedded ARM chips is getting more explosive!

Embedded Software and Hardware Development: The Importance of Quality Documentation

Common methods for finding bugs in embedded software

Embedded Software and Hardware Development: The Importance of Quality Documentation

Comparing which embedded development debugging terminal is stronger?

I am Lao Wen, an embedded engineer who loves learning.
Follow me to become better together!

Leave a Comment