
Practical Tutorial: Running 32-Bit Applications on RK3568 Development Board
The Rockchip RK3568 processor has established itself as a benchmark chip in the mid-range AIoT market, thanks to its well-balanced performance, power efficiency, and interface scalability, achieving remarkable market success since its launch. The RK3568 is a 64-bit processor, and the cross-compiler provided by the embedded system is also 64-bit. However, some users may need to run 32-bit applications on the RK3568 development board. This tutorial will provide a detailed walkthrough on how to use a 32-bit cross-compiler to compile 32-bit applications and ensure their seamless operation on the Forlinx Embedded RK3568 development board.
The following demonstrates the process using the gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf cross-compilation toolchain as an example.
1. Method Steps
(1) Kernel Configuration
The Forlinx Embedded RK3568 development board’s kernel is pre-configured with EL0 enabled by default, so no additional kernel configuration is required.
(2) 32-Bit Runtime Library Preparation
Since the system lacks 32-bit runtime libraries, the following steps are necessary:
- ① Package the lib directory from the libc folder in the cross-compilation toolchain. The specific path is:
gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc - ② Manually create the /lib32 folder in the root directory of the Forlinx Embedded RK3568 development board.
- ③ Execute the following command to copy the packaged library files to the /lib32 directory on the development board as runtime libraries: cp ./* /lib32/ -rf
- ④ Add the environment variable to include /lib32 in the library search path: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib32
- ⑤ Create a symbolic link: ln -s /lib32/ld-linux-armhf.so.3 /lib
(3) Application Testing
- ① Use the
ld-linux-armhf.so.3 --list command instead of ldd to verify the required library files for the test program.
If all libraries are detected, proceed to execute the test program.
The test executable runs successfully.
- ② Check the test program in the development environment to confirm it is a 32-bit ELF format.
- ③ If manual library path specification is required, use the following command: /lib/ld-linux-armhf.so.3 --library-path /lib32 --list /home/forlinx/test
2. Key Considerations
(1) Glibc Version Compatibility
Ensure the glibc version in the cross-compilation toolchain matches the application’s requirements. Mismatched versions may cause runtime failures.
(2) Operational Accuracy
Double-check all commands during execution to avoid system issues on the development board due to misoperations.
(3) Development Environment Verification
Confirm proper configuration of the development environment, including installation of the cross-compilation toolchain and environment variable settings, before compiling and testing.
By following these steps, users can successfully run 32-bit applications on the Forlinx Embedded RK3568 development board, leveraging its high performance and low power consumption for diverse embedded development needs.
3. RK3568 Development Board Description
In the field of embedded development, the choice of development platform is critical to the success of a project. OK3568-C development board based on Rockchip RK3568 processor has become the first choice of many engineers because of its high performance, low power consumption and rich functional interfaces.
The RK3568 processor uses a quad-core 64-bit Cortex-A55 architecture with a main frequency of up to 2.0 GHz, and integrates Rockchip's self-developed NPU with 1 TOPS computing power. It also supports multi-format HD video decoding and multi-channel display output, meeting diverse application needs ranging from industrial control to intelligent security.
In addition to its powerful hardware capabilities, the Forlinx Embedded RK3568 development board offers extensive development tools and documentation, allowing engineers to effectively complete development, optimization, and project deployment.