安丘营销型网站建设,阜宁网站制作哪家好,文登建设局网站,西宁网页设计1. RK1126 SDK开发环境搭建全攻略 刚拿到RK1126开发板时#xff0c;我最头疼的就是环境搭建。折腾了整整两天才把编译环境配好#xff0c;这里把踩过的坑都总结出来#xff0c;让你少走弯路。 Ubuntu系统选择#xff1a;官方推荐18.04版本#xff0c;但我实测20.04和22.04…1. RK1126 SDK开发环境搭建全攻略刚拿到RK1126开发板时我最头疼的就是环境搭建。折腾了整整两天才把编译环境配好这里把踩过的坑都总结出来让你少走弯路。Ubuntu系统选择官方推荐18.04版本但我实测20.04和22.04也能用。不过要注意22.04需要额外处理一些依赖包冲突。建议新手直接用18.04最省心。安装系统时记得勾选安装开发者工具选项能自动装好基础编译环境。依赖包安装是第一个拦路虎。有次我漏装了device-tree-compiler编译到一半报错不得不从头开始。完整的依赖清单如下sudo apt-get install -y repo git-core gitk git-gui gcc-arm-linux-gnueabihf \ u-boot-tools device-tree-compiler gcc-aarch64-linux-gnu mtools parted \ libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools \ 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 libqt4-dev libglib2.0-dev \ libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-client \ subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 \ libssl-dev expect lib32gcc-7-dev g-7 libstdc-7-dev flex bisonSDK目录结构解析buildroot定制根文件系统的核心目录kernel内核源码修改驱动主要在这里u-bootbootloader相关代码device/rockchip平台特定的编译脚本和配置文件external多媒体、AI等扩展库prebuilts交叉编译工具链rockdev编译输出目录环境变量配置有个小技巧在~/.bashrc最后添加以下内容避免每次开终端都要重新设置export PATH$PATH:/path/to/sdk/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin export RK_PROJECT_PATH/path/to/your/project2. 首次编译实战指南第一次编译RK1126 SDK就像拆盲盒永远不知道下一个报错是什么。我记录下最完整的流程帮你一次通关。初始化配置source envsetup.sh # 选择对应板型比如rockchip_rv1126_rv1109_spi_nand ./build.sh lunch # 选择对应的BoardConfig比如BoardConfig-38x38-spinand.mk全自动编译适合首次./build.sh all这个过程会持续1-3小时取决于你的机器性能。建议用nohup ./build.sh all 放到后台运行避免网络中断导致失败。模块化编译后续开发推荐# 单独编译U-Boot ./build.sh uboot # 单独编译Kernel ./build.sh kernel # 单独编译Buildroot ./build.sh buildroot # 生成完整固件 ./build.sh firmware常见报错处理Python版本问题确保系统有python2.7或python3可通过ln -s创建软链接工具链缺失检查prebuilts目录权限确保可执行内存不足在swap分区建议至少16GB物理内存8GB swap网络超时修改repo的镜像源或者用proxychains加速编译成功后固件会生成在rockdev目录下update.img就是完整的升级镜像。我习惯用ls -lh rockdev/查看生成的文件大小正常应该在100MB左右。3. U-Boot深度配置与编译U-Boot相当于嵌入式设备的BIOS掌握它的配置能解决很多启动问题。有次我的板子无法从TF卡启动就是通过修改U-Boot配置解决的。进入配置界面cd u-boot make rv1126_defconfig make menuconfig关键配置项Boot options - Boot media选择SPI NAND/eMMC/SD卡Device Tree Control - Device Tree Source确认是rv1126对应的dtsRockchip options - DDR初始化配置保存配置时要用这个命令序列make savedefconfig cp defconfig configs/rv1126_defconfig编译与烧写# 在SDK根目录执行 ./build.sh uboot # 生成的uboot.img在u-boot目录下调试技巧通过串口查看启动日志注意DDR初始化信息修改include/configs/rv1126.h可以调整启动参数使用md和mw命令可以查看和修改内存内容遇到过最坑的问题是uboot无法保存环境变量后来发现是存储介质配置错误。建议新手先用默认配置等跑通后再逐步定制。4. Linux内核定制化编译RK1126的Linux内核经过Rockchip深度定制包含很多专用驱动。我遇到摄像头无法识别的问题就是通过重新配置内核解决的。内核配置步骤cd kernel make ARCHarm rv1126_defconfig make ARCHarm menuconfig重点配置区域Device Drivers - Multimedia support - Rockchip ISP驱动Device Drivers - Graphics support - RGA2加速器Device Drivers - Staging drivers - Rockchip NPU驱动保存配置make ARCHarm savedefconfig cp defconfig arch/arm/configs/rv1126_defconfig编译命令# 返回SDK根目录 cd .. ./build.sh kernel内核调试经验使用dmesg | grep error快速定位启动错误修改设备树文件arch/arm/boot/dts/rv1126.dtsi调整硬件配置通过make ARCHarm dtbs单独编译设备树记得上次调试MIPI摄像头发现时钟配置不对通过修改dts里的camera0节点就解决了。内核编译一般需要10-30分钟可以用-j$(nproc)加速。5. Buildroot文件系统定制Buildroot可以生成超轻量级的根文件系统我做过最小化配置只有8MB大小。但实际项目可能需要添加各种软件包。基础配置make menuconfig关键配置路径Target packages - Audio/Video添加ffmpeg、gstreamer等Target packages - Graphic支持Qt/LVGL等GUI框架Target packages - Hardware handling添加GPIO工具添加自定义软件包在package目录创建新目录比如myapp编写Config.in和myapp.mk文件在menuconfig中选择该软件包保存配置make savedefconfig cp defconfig configs/rv1126_defconfig编译命令./build.sh buildroot实用技巧通过output/rockchip_rv1126/build/buildroot-fs/查看生成的文件系统内容使用make busybox-menuconfig定制busybox在board/rockchip/common/overlay添加自定义文件我曾经需要添加一个Python脚本到文件系统直接在overlay目录创建对应路径就行比修改Buildroot配置更简单。6. 应用程序开发实战RK1126的SDK提供了丰富的多媒体开发框架比如rkmedia。我开发过一个视频监控应用分享下具体步骤。编译官方示例./build.sh external/rkmedia示例代码在external/rkmedia/examples目录编译好的可执行文件会输出到buildroot/output/rockchip_rv1126/build/rkmedia/examples添加自定义应用在external/rkmedia/examples下新建your_app.c修改CMakeLists.txt添加add_executable(your_app your_app.c ${COMMON_SRC}) target_link_libraries(your_app easymedia)重新编译./build.sh external/rkmedia交叉编译技巧# 设置工具链路径 export PATH$PATH:$(pwd)/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin # 编译单个文件 arm-linux-gnueabihf-gcc test.c -o test调试方法使用gdbserver远程调试通过strace查看系统调用在buildroot中启用core dump功能记得第一次调试rkmedia时发现视频无法显示原来是忘记配置环境变量export DISPLAY:0。建议新手先从官方示例入手再逐步修改。7. 固件打包与烧录技巧当所有组件编译完成后需要打包成完整固件。我遇到过多次烧录后无法启动的情况总结出这些经验。生成完整固件./build.sh firmware生成的update.img位于rockdev目录这个文件可以直接用工具烧录。分区表解析 parameter.txt定义了分区布局例如0x000020000x00004000(uboot) 0x000100000x0000e800(boot) 0x000300000x0001e800(recovery) 0x002d00000x000e8800(system)前是分区大小后是起始位置单位是sector512字节烧录方法使用RKDevTool工具Windows使用upgrade_toolLinuxupgrade_tool ul update.img通过maskrom模式强制烧录调试经验烧录前务必核对parameter.txt与实际硬件匹配使用upgrade_tool ef命令可以擦除flash串口日志是诊断启动问题的关键有次烧录后无法启动发现是parameter.txt里的uboot地址配置错误。建议修改分区表前先备份原始文件。