【Rockchip】二、linuxSDK开发:开发板固件的内核dts修改+编译打包+固件烧写——以个人修改过程为例
项目需要,要对rv1109/rv1126的开发板硬件资源进行定制修改,同步对软件设备树dts文件进行修改,并编译打包生成新的固件,将新的固件烧录进开发板,从而使用所需的硬件资源实现需求。
接上一篇:【Rockchip】一、瑞芯微 Linux SDK软件包的解压和部署
概述
项目需要,要对rv1109/rv1126的开发板硬件资源进行定制修改,同步对软件设备树dts文件进行修改,并编译打包生成新的固件,将新的固件烧录进开发板,从而使用所需的硬件资源实现需求。
注:由于是低电压换高电压,需要先烧入内核文件,再动手修改硬件供电电路,否则会造成芯片损坏
本人需求:雷达硬件与1109开发板的通信,包括下发雷达指令和接收雷达数据,至少需要两个UART串口,但开发板并未直接开放串口。因此需要把一个CIF摄像头接口改为串口使用,且开发板与雷达IO口的电压需要适配。
内核文件修改
串口修改
其目的是将原有默认开启的cfi摄像头屏蔽掉,然后开启串口的复用。
即开发板的这个口,原来是接摄像头的,现在改成接串口
具体操作:
- 屏蔽:对rv1109_SDK\rv1109_new\kernel\arch\arm\boot\dts\rv1126-evb-v10.dtsi文件,把摄像头的部分注释掉:
- 增加uart3,uart4开启
在dts文件中添加如下内容
&uart3 {
status = "okay";
};
&uart4 {
status = "okay";
};
因为对应在嵌入式demo的uart.cc中,ttySn就是串行端口终端,ttyS4发送雷达配置、控制信号,ttyS3负责接收雷达信号
供电修改
根据《RV1126_RV1109_IO_电源域配置指南.pdf》:
仍在rv1109_SDK\rv1109_new\kernel\arch\arm\boot\dts\rv1126-evb-v10.dtsi中
Vccio6从1v8改成3v3
内核文件编译生成
将修改好的rv1126-evb-v10.dtsi复制替换到linux里面对应位置里面
然后根据《Rockchip_RV1126_RV1109_Quick_Start_Linux_CN.pdf》
返回SDK根目录,在终端执行./build.sh kernel
(如果build出现bug,请确保安装了【Rockchip】一、瑞芯微 Linux SDK软件包的解压和部署中的所有依赖库)
几分钟后出现:
说明已经编译好了
然后需要打包,才会生成boot.img
./mkfirmware.sh
然后在rockdev文件夹中,就会出现固件了!
内核文件烧写到开发板
将boot.img以及SDK中的tools,通过共享文件夹拿到Windows里,打开瑞芯微开发工具/RKDevTool.exe
打开上图中生成的parameter.txt,在工具中输入对应地址和名字
(为了方便,输入一次之后可以右键导出配置,下次烧一样的固件可以直接右键选择导入配置)
导入开发板对应的配置
注意后面的路径,是boot文件相对于exe的绝对路径。
比如我把要烧录的固件放在
则我把boot路径改成
这边工作做好后,有两种烧录模式,两种方法,有一种能烧进去就好
Loader烧写模式
开发板连接2.7.1版本工具后,(注意一定是先打开开关通电,过一阵子后插入usb口)显示发现一个ADB设备,这个时候点击切换按钮,约2min后:
显示切换成功
然后导入配置和正确设置固件路径后,点击执行
就烧写进去了
Maskrom烧写模式
开发板连接2.7.1版本工具后,(注意一定是先打开开关通电,过一阵子后插入usb口)显示发现一个ADB设备,这个时候按住开发板上update键不放情况下,按reset按键一下,然后松开所有按键,软件将会变成显示:发现一个MASKROM设备
如上文一样配置,注意maskrom模式烧写必须加选loader,也选择默认的loader文件和对应路径,然后点击执行,即可烧写。
这个部分做的时候步骤很乱,官方固件烧写工具版本不一,手册讲述的步骤也不一,我用的是2.7.1版本的烧写工具可行,2.8.4就经常不行,还是要结合实际开发板资料,自己多试试。
下面为参考
《Rockchip_RV1126_RV1109_EVB_User_Guide_V1.0_CN.pdf》
《Android开发工具手册_v1.2.pdf》
硬件供电电路修改
将1109开发板,背面的电阻换个位置即可
等软件固件,硬件电路都修改完成,就可以尝试编写linux端demo,并在开发板上编译运行了!见下一篇
end
更多推荐
所有评论(0)