本帖最后由 Tronlong创龙科技 于 2024-7-19 17:15 编辑
哪些应用场景需要快速启动很多应用场景对系统启动时间都有严苛的要求,例如在
工业组态屏、工业HMI、机器人示教器、工业PLC、物联网网关、通讯管理机等应用场景对系统启动的时间都会有所要求。
当系统启动时间过长时,用户需要很长时间才能开始使用系统,不仅会对产品的精准度和实时性有所影响,而且过长时间的启动也会导致系统资源浪费,例如电力和硬件资源。而
优化启动时间可节省这些资源,从而提高系统的效率和可靠性。另外,在某些嵌入式系统和设备中,启动时间对于系统的稳定性和可靠性至关重要,因此尽可能缩短启动时间,以确保系统能够在最短的时间内启动至关重要。
T113-i 系统快速启动实测数据
为了满足客户需求,我司对T113-i原生系统进行剪裁,得到一个可快速启动的程序镜像。经测试,eMMC配置核心板从上电至进入文件系统的时间为4.3秒,从上电至显示Qt界面的时间为7.7秒。详细数据请参考如下表格:
图1
T113-i系统快速启动优化方法
本节内容对T113-i(其他嵌入式平台亦可参考)Linux系统快速启动优化方法进行说明,主要通过对U-Boot、内核以及rcS启动脚本的修改,实现系统快速启动。下面以NAND FLASH配置TLT113-EVM评估板为例进行方法示例,
TLT113-MiniEVM或eMMC配置评估板注意修改的文件路径有所不同。
(1) U-Boot快速启动优化。
修改延时bootdelay为0秒,可缩减bootdelay延时。在LinuxSDK解压目录T113-i_v1.0下修改如下文件:
"device/config/chips/t113_i/configs/tlt113-evm-nand/longan/env.cfg".
图2
关闭boot0和U-Boot调试信息打印,启动时间可缩短约1秒。在LinuxSDK解压目录T113-i_v1.0下修改如下文件:
"device/config/chips/t113_i/configs/tlt113-evm-nand/uboot-board.dts"
"device/config/chips/t113_i/configs/tlt113-evm-nand/sys_config.fex"
图 3 uboot-board.dts文件
图 4 sys_config.fex文件
(2) 内核快速启动优化。
由于random设备初始化太慢,应用程序调用random的函数时可能被阻塞,导致应用启动慢,因此可通过关闭crng_ready()功能从而缩短启动时间,关闭crng_ready()功能后启动时间可缩短2~3秒。在LinuxSDK解压目录T113-i_v1.0下修改如下文件:
"kernel/linux-5.4/drivers/char/random.c"
图5
通过修改串口打印优先级,关闭串口内核启动信息打印从而缩短启动时间。在LinuxSDK解压目录T113-i_v1.0下修改如下文件:
"device/config/chips/t113_i/configs/tlt113-evm-nand/longan/env.cfg"
图6
(3) 文件系统快速启动优化。
通过取消相关服务启动以及自动挂载功能,优先执行Qt程序,并且延时一段时间再执行其他功能。启动时间可缩短约10秒。在LinuxSDK解压目录T113-i_v1.0下修改如下文件:
"platform/framework/auto/rootfs/etc/init.d/rcS"
图7
如需关闭Qt Launcher,优化上电启动至进入文件系统的时间,需修改rcS脚本。修改内容如下:
图8
修改完成后,请参考我司的T113-i产品资料《Linux系统使用手册》文档,重新编译生成Linux系统镜像,同时参考《Linux系统启动卡制作及系统固化》文档,将Linux系统镜像文件固化至NAND FLASH或eMMC,再从NAND FLASH或eMMC上电启动即可。