RK3399开发板丨迅为3399交叉编译器的安装和使用

发布时间:2021-8-18 10:14    发布者:就是塔塔
我们写了 linux 上第一个 c 程序 heollo world ,是使用 gcc 编译器进行代码的编译,编译得到的可执行文件只能在 X86 结构的 PC 上运行,不能在开发板上运行,如果要在 arm 开发板上运行,则需要交叉编译这个 C 程序。
什么是交叉编译呢?
如果我们想在 ARM 上运行,就要使用 ARM 的编译器,然后在 X86 上进行编译。因为我们使用 ARM 的编译器编译完了之后,是把我们的可执行程序放到开发板上来运行,而不是在 PC 上运行的,这个过程大家可以把它理解成交叉,然后再和我们的编译器结合起来就叫做交叉编译器。
接下来我们来看下,如何来交叉编译 C 程序呢?首先我们要安装交叉编译器,RK3399 的 Linux 系统的交叉编译器并未单独提供,是和 Linux 的 BSP 源码包一起提供的,路径为“iTOP-3399 开发板/01_iTOP-3399光盘资料/20210512/05 Linux 源码”。所以我们只需要在环境变量里面把在 BSP 源码包提供的交叉编译器加到环境变量里面或者直接使用绝对路径编译即可。
我们现在 ubuntu 系统的任意目录下创建一个 hello.c 文件 ,这个程序也非常简单,就是一个 helloworld ,我们来编译一下,然后运行下可执行文件,这个可执行文件可以在 PC 上运行的。如下图所示。
1.jpg
然后我们使用 file 命令来看下这个文件,这个文件可以在 X86 上运行的,但是它不能在 ARM 上运行,因为它这里写的是 X86。如下图所示。
2.jpg
接下来我们来设置并使用交叉编译器编译。这里一共有俩种方法,我们先来看第一种方法。
方法一:
把 Linux 的 BSP 源码包中的交叉编译器添加到环境变量中去,然后使用交叉编译器编译。
1 作者将资料中的 rk3399_linux_sdk_v2.0 源码放于 Ubuntu16.04 的/home/work/3399/linux/no_ai/目录下(此路径没有要求,大家可自行任意放置), 如下图所示:
3.jpg
2 交叉编译工具在 linux 源码 rk3399_linux_sdk_v2.0 中
prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin 目录下,如下图所示:
4.jpg
所以我们设置临时环境变量如下图所示:
export
PATH=/home/work/3399/linux/no_ai/rk3399_linux_sdk_v2.0/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-20
17.05-x86_64_aarch64-linux-gnu/binPATH
如下图所示:
5.jpg
注意:/home/work/3399/linux/no_ai/rk3399_linux_sdk_v2.0/此路径是自己 Linux 源码所放置的路径,大家依据自己的实际路径改写。
检查是否添加成功
echo $PATH
如下图所示
6.jpg
从图中我们可以发现,环境变量 PATH 里面已经有了我们交叉编译的路径,所以我们可以继续往下进行。
注意! 第一步设置交叉编译工具是设置临时环境变量,只在当前设置的窗口有效,如果第一步设置交叉编译工具的窗口关闭了,请按照第一步再次打开并设置环境变量
回到 hello.c 所在的路径,使用命令交叉编译 hello.c
7.jpg
输入命令“file hello” ,如下图所示:
8.jpg
此时我们编译出来的可执行文件就是 arm 的了,就可以在开发板上运行了。
方法二:
不设置环境变量,直接使用绝对路径编译。
我 们 要 使 用 的 交 叉 编 译 器 aarch64-linux-gnu-gcc , 在 虚 拟 机 ubuntu 的/home/work/3399/linux/no_ai/rk3399_linux_sdk_v2.0/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05- x86_64_aarch64-linux-gnu/bin 这个路径下,所以我们可以直接使用绝对路径找到这个编译器来编译,回到hello.c 所在的路径,使用命令交叉编译 hello.c
如下图所示:
9.jpg
同样我们也可以编译出来可执行文件 hello,但是需要注意的是,编译器所在的绝对路径以大家电脑上的实际路径为准。
总结
方法一步骤较多,但是输入命令短小精悍。方法二输入命令路径很深,每次编译很繁琐,但是不受环境变量影响。两个方法均可实现交叉编译。大家可权衡选择。 10.jpg
11.jpg

核心板参数
尺寸:6.5*5.5cm
高度:连同连接器在内0.26cm
CPU:Rockchip RK3399 28纳米HKMG制程 双核Cortex-A72 1.8/2.0GHz;四核Cortex-A53 1.4GHz
内存:2GB 双通道DDR3(4GB可选)
存储:16GB EMMC
电源管理:官方推荐RK808芯片
工作电压:3.3V供电
系统支持:Android8.1系统;Ubuntu16.04系统;Debian9系统
接口:支持双USB3.0 Type-C接口;支持PCIe 2.1 (4 full-duplex lanes );内置低功耗MCU;8路数字麦克风阵列输入
引角扩展:引出脚多达320个,满足用户各类扩展需求
多媒体:支持4K VP9 and 4K 10bits H265/H264 视频解码,高达60fps;1080P 多格式视频解码 (VC-1, MPEG-1/2/4, VP8)
运行温度:0度至+80度区间,设备工作正常,运行良好!
应用范围:可广泛用于人脸识别设备、无人机、机器人、游戏终端、广告机/一体机、金融POS类、车载控制业、云端服务、VOIP视频会议系统、医疗类、安防/监控/警务、工控类、IoT物联网领域、VR等近百行业应用产品。

底板参数
尺寸:19cm*12cm        PCB板:4层
POWER:电直流电源输入接口,12V/2A电源输入        
GPS模块:支持(选配)
SWITCH:电源开关        
WIFI/BT:双频2.4G/5G WIFI、Bluetooth4.1二合一模块
HDMI接口:1路 HDMI2.0输出接口        
EDP LCD:1路
Type-C:1路 Type-C USB3.0接口,兼容OTG功能        
MIPI_TX:1路
TF卡槽:1个        
MIPI_TX/RX:1路
USB HOST:4路 USB2.0接口;1路 USB3.0接口;        
SPDIF:光纤输出接口
串口:2路RS232串口        
BUZZER        1个蜂鸣器
网口:1路千兆以太网(10/100/1000Mbps)        
RTC:实时时钟
IRDA:1个        
GPIO接口:20PIN,包括1路SPI和2路I2C
SIM卡槽:1个        
LED:3个
PHONE:支持耳机输出        
PCIE:PCIE M.2接口
MIC:支持MIC输入        
陀螺仪:支持
按键:6个        
电子罗盘:支持
4G模块:全网通(选配)        
光线传感器:支持
CAMERA接口:CAMERA 1路、MIPI CAMERA 1路                  


本文地址:https://www.eechina.com/thread-772570-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • Dev Tool Bits——使用MPLAB® Discover浏览资源
  • Dev Tool Bits——使用条件软件断点宏来节省时间和空间
  • Dev Tool Bits——使用DVRT协议查看项目中的数据
  • Dev Tool Bits——使用MPLAB® Data Visualizer进行功率监视
  • 贸泽电子(Mouser)专区
关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表