本帖最后由 huerli- 于 2023-6-15 16:03 编辑
正点原子RV1126-编译源码以及修改串口波特率
准备开发环境
以下部分内容根据正点原子《ATK-DLRV1126 系统开发手册 V1.3》P48
换源
打开终端(可以右键打开也可以Ctrl+Alt+T)
sudo gedit/etc/apt/sources.list
删除文件中内容,替换成如下:
deb https:
# deb-src https:
deb https:
# deb-src https:
deb https:
# deb-src https:
deb https:
# deb-src https:
# deb https:
# deb-src https:
sudo apt update && sudo apt upgrade
输入密码后敲入回车会开始更新,耐心等待。
出现确认段,点击键盘y键再回车。
出现done字眼就说明更新成功了
安装依赖
复制对应代码后进入终端,可以使用右键粘贴也可以使用Ctrl+Shift+V的方式粘贴(复制 Ctrl+Shift+C)
sudo apt-get install device-tree-compiler git-core u-boot-tools mtools parted libudev-dev libusb-1.0-0-dev autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make binutils build-essential gcc g++ bash patch gzip gawk bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libglib2.0-devlibgtk2.0-dev libglade2-dev cvs git mercurial openssh-client subversionasciidoc w3m dblatex graphviz libc6:i386 libssl-dev expect fakeroot cmakeflex bison liblz4-tool libtool keychain net-tools adb lib32gcc-7-dev g++-7libstdc++-7-dev libncurses5-dev libncursesw5-dev openssh-server
需要输入y并回车确认继续
出现done,安装完成
使用ftp
根据正点原子《ATK-DLRV1126 系统开发手册 V1.3》P51进行操作,可以实现Windows和Ubuntu的文件互传
安装交叉编译器
编译SDK
SDK包组成
文件夹 |
介绍 |
app |
存放上层应用程序的目录 |
buildroot |
SDK 包使用的文件系统为 buildroot |
build.sh |
编译用的脚本,使用方法后面会教。 |
device/rockchip |
存放每个平台的一些编译和打包固件的脚步和预备文件。 |
docs |
存放 RK 开发指导文件、平台支持列表、工具使用文档、Linux 开发指南等。 |
envsetup.sh |
要修改文件系统时候要设置的环境脚本。 |
external |
存放相关的库,包括音频,视频等。 |
kernel |
kernel 源码。 |
makefile |
整个 SDK 包编译的 Makefile。 |
mkfirmware.sh |
固件打包使用的脚本,默认在当前路径下的 rockdev 目录。 |
prebuilts |
存放交叉编译工具链。 |
rkbin |
存放固件和工具。 |
rkflash.sh |
linux 下的系统烧录脚本。 |
tools |
存放固件和工具的目录。 |
u-boot |
U-boot 源码目录。 |
rockdev |
存放编译输出固件的目录(整个 SDK 包编译完成后就会创建)。 |
SDK板级文件
将正点原子提供的SDK文件通过FTP发送到对应文件夹中,进行解压。
将打包的sdk文件解压。
乱码了改个名字吧
进入sdk目录进行解压,文件夹很大有5个G多,所以在参数中添加 -v 显示以下进度。
cd sdk
tar -axvf a(tab补全)
在解压过程中出现了一些不好的情况,虚拟机卡死了。。。。(CPU占用100%)
内存占用也挺高
这时候可以挂起虚拟机,再打开。
补全文件
创建文件夹
在该目录找到对应文件复制到dl文件夹下
开发板光盘 A-基础资料→01、程序源码→02、buildroot 下载源码包→bl.tar.gz
修改配置文件(非必要)
为了用上波特率为115200,这里进行波特率修改
涉及的配置文件 device/rockchip/rv1126_rv1109/BoardConfig-alientek-rv1126.mk
rkbin/RKBOOT/RV1126MINIALL.ini
需要修改的文件有
./rkbin/bin/rv11/rv1126_ddr_924MHz_v1.08.bin
./rkbin/tools/ddrbin_tool_user_guide.txt
./rkbin/tools/ddrbin_param.txt
./kernel/arch/arm/boot/dts/rv1126.dtsi
./boot/configs/alientek_rv1126_defconfig
./u-boot/arch/arm/dts/rv1126.dtsi
./buildroot/configs/rockchip/rv1126_rv1109_arm.config
修改DDR初始化和SPL初始化波特率
需要修改/rkbin/tools/ddrbin_param.txt中将下方划线位置参数修改为115200
从rkbin/RKBOOT/RV1126MINIALL.ini文件中得知用到的是rv1126_ddr_924MHz_v1.08.bin这个文件,所以需要重新生成bin文件。在如下目录执行如下操作($后为执行命令)。
huerli@ubuntu:~/RV1126/sdk_1_3/rkbin/tools$ ./ddrbin_tool ddrbin_param.txt ../bin/rv11/rv1126_ddr_924MHz_v1.08.bin
执行后出现修改成功。
修改buildroot部分
buildroot/configs/rockchip/rv1126_rv1109_arm.config,找到1500000参数,改为115200.
修改uboot部分参数
把u-boot/configs/rv1126_defconfig中的CONFIG_BAUDRATE,由1500000改为115200
把u-boot/arch/arm/dts/rv1126.dtsi中的fiq_debugger,串口参数部分的1500000改为115200
修改linux部分
找到linux/arch/arm/boot/dts/rv1126.dtsi文件中的 fiq_debugger 串口参数,修改1500000为115200
编译
进行编译前先更新一下环境:
huerli@ubuntu:~/RV1126/sdk_1_3$ source envsetup.sh
选择1并回车
编译时间持续很长。编译完成如下
产物文件
将编译的产物拷贝到windows下进行烧录
其实只需要将loader、uboot、kernel文件进行替换即可
再次上电!
配置MobaXterm
打开电源
可以在终端看到打印信息以及正常
ls也可以正常查看命令
最后
不知道是什么原因,我给虚拟机分配的(8核+16G+400GB)也会在拷贝的时候卡死,但是还是完成了。接下来就看看这块板子在视觉方面的表现了。我会采用网络摄像头以及网络查看图像的方式进行(我不会说是因为正点原子摄像头和屏幕太贵了)。