用交叉编译工具链编译出一个简单的DEMORV1126应用开发手册的重点知识
交叉编译工具链
介绍
交叉编译器指的是在一种计算机环境中编译的程序需要在另外一个环境中运行起来。比方说你在X86环境中编译出一个ARM环境的程序,这种就是交叉编译。
从上面的图可知,在x86环境下通过arm交叉编译的可执行程序在arm板子上可以直接运行demo。
RV1126交叉编译工具链在UBuntu的位置
/opt/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin里面为RV1126的交叉编译工具链,这里面有好多个交叉编译工具,但学习中用的最多的是arm-linux-gnueabihf-g++和arm-linux-gnueabihf-gcc进行开发。arm-linux-gnueabihf-g++是编译C++文件编译器,arm-linux-gnueabihf-gcc是编译C文件的编译器。
RV1126交叉编译出一个DEMO
- 用c语言交叉编译一个简单的demo打印输出"hello world!":
#include<stdio.h>intmain(){printf("hello world!\n");return0;}- 下面是Makefile的具体实现。Makefile就是自动化编译的脚本,它的最大作用是可以批量编译C和C++源文件,写完这个脚本直接用make命令就可以批量编译文件。
CC=/opt/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc all:$(CC)rv1126_helloworld.c-o rv1126_helloworld这里CC是使用的交叉编译链工具所在位置,all的内容是执行的具体内容
- make文件之后按照指令生成了可执行文件rv1126_helloworld,这个可执行文件就是一个ARM32位的文件:
- 编译完成之后将该可执行文件拷贝到共享文件夹所在位置然后为方便复制到桌面,把这个文件通过SSH的方式上传到/tmp目录:
- chmod 777 rv1126_helloworld改变该文件的权限为可读可写可执行,再执行该文件
最后显示打印"hello world!"说明用交叉编译工具链编译出该DEMO成功
RV1126应用开发手册的重点知识
前言
RV1126应用开发手册在开发中发挥着至关重要的作用,不懂的知识点都可以在这个手册找到解决方法。在这个手册中重点要看以下内容:VI模块、RGA模块、VENC模块、VDEC模块、VO模块、AI模块、AENC模块、AO模块。
VI视频输入模块
VI模块是视频输入模块,是摄像头SENSOR和硬件连接的第一个模块,VI视频输入模块能够直接读取摄像头的数据。下面是VI模块的截图:
RGA模块
RGA模块主要运用于视频图像的裁剪、缩放等功能,它也是RV1126开发中一个非常重要的模块,下面是RGA截图:
VENC模块
VENC模块主要运用于视频编码,进行视频编码工作,下面是VENC截图:
VDNC模块
VDEC模块主要运用于视频编码,进行视频解码工作,下面是VDEC截图:
VO模块
VO模块主要运用于视频输出,比方说把摄像头的数据输出到屏幕,下面是VO截图:
AI模块
AI模块主要运用于音频输入,如把麦克风的数据采集到开发板,下面是AI模块截图:
AENC模块
AENC模块主要运用于音频编码,把音频输入的数据编码成音频压缩数据,下面是AENC模块截图:
AO模块
AO模块主要运用于音频输出模块,把音频数据输出到声卡,下面是AO模块截图:
